ubuntu中从同一个文件夹中读取无命名规则的多个文件
2014-09-10 22:27
323 查看
#include <stdio.h>
#include <string>
#include <math.h>
#include <glob.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
using namespace std;
using namespace cv;
int main(int argc,char **argv)
{
IplImage *pFrame;
string InputPath;
InputPath=argv[1];
// InputPath="/home/gxb/build/bin/0123"; 直接传入路径
if (InputPath.at(InputPath.length()-1)!='/')
InputPath+='/';
glob_t g={0};
char patt[1024];
snprintf(patt, 512, "%s%s", InputPath.c_str(),"*.jpg");
glob(patt, GLOB_DOOFFS, NULL, &g);
for(int i=0;i<g.gl_pathc;i++)
{
char *p = g.gl_pathv[i];
pFrame=cvLoadImage(p,-1);
vector<int> labels;
vector<string> image_name;
string label_name=basename(p); //The images must be named as 'label_name.jpg'
string label,name,temp;
int split=label_name.find('_');
if (split>0)
{
label=label_name.substr(0,split); //返回一个从指定位置开始的指定长度的字符串
temp=label_name.substr(split+1,label.find('.'));
name=temp.substr(0,temp.find('.')); //或者直接name=label_name.substr(split+1, label.find('.')); //copy from '_" to '.jpg'
}
//printf("%d, %s\n", atoi(label.c_str(),name.c_str());
cout<<label<<endl;
cout<<name<<endl;
labels.push_back(atoi(label.c_str());
image_name.push_back(name);
system(0);
}
}
#include <string>
#include <math.h>
#include <glob.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
using namespace std;
using namespace cv;
int main(int argc,char **argv)
{
IplImage *pFrame;
string InputPath;
InputPath=argv[1];
// InputPath="/home/gxb/build/bin/0123"; 直接传入路径
if (InputPath.at(InputPath.length()-1)!='/')
InputPath+='/';
glob_t g={0};
char patt[1024];
snprintf(patt, 512, "%s%s", InputPath.c_str(),"*.jpg");
glob(patt, GLOB_DOOFFS, NULL, &g);
for(int i=0;i<g.gl_pathc;i++)
{
char *p = g.gl_pathv[i];
pFrame=cvLoadImage(p,-1);
vector<int> labels;
vector<string> image_name;
string label_name=basename(p); //The images must be named as 'label_name.jpg'
string label,name,temp;
int split=label_name.find('_');
if (split>0)
{
label=label_name.substr(0,split); //返回一个从指定位置开始的指定长度的字符串
temp=label_name.substr(split+1,label.find('.'));
name=temp.substr(0,temp.find('.')); //或者直接name=label_name.substr(split+1, label.find('.')); //copy from '_" to '.jpg'
}
//printf("%d, %s\n", atoi(label.c_str(),name.c_str());
cout<<label<<endl;
cout<<name<<endl;
labels.push_back(atoi(label.c_str());
image_name.push_back(name);
system(0);
}
}
相关文章推荐
- LINUX文件和文件夹的命名规则
- windows下读取一个文件夹下面所有文件的名字
- JAVA读取一个文件夹下所有某类型文件
- 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数
- SharePoint中文件夹命名和文件命名的规则
- 建立一个当前date 命名的文件夹,copy文件到此文件夹中,并记录log
- 读取文件夹下的子文件夹的所有文件名,并保存成以子文件命名的txt文件
- C#控制台控制台将一个文件夹中的所有txt文件中的数据读取出来
- matlab读取一个文件夹下的所有文件…
- matlab中怎样读取一个文件夹里面的指定类型的所有文件的名称?
- C#.NET读取一个文件夹下所有excel文件的代码
- 读取一个文件夹下所有的txt文件,并保存到一个txt文本中
- 发布一个自己写的文件重命名工具,支持正则表达式替换和自定义规则。
- Java读取一个目录(文件夹)下的文件例子
- Matlab批量读取一个文件夹里的文件
- Ubuntu下创删除文件及文件夹,强制清空回收站方建、重命名、法
- Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法
- Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法
- C语言创建一个文件,写入数据并换行,再依次读取每行的数据,将读取的行数据以一定的格式命名为另一文件的文件名
- matlab连续读取一个文件夹中的多个文件