您的位置:首页 > 其它

如何将图片文件里的图片名转换为TXT文档

2017-01-11 20:19 525 查看
**

如何将图片文件里的图片名转换为TXT文档

**

随着PASCAL VOC, ImageNet等数据集的逐渐扩充,国际上的大神对目标检测的研究已经达到出神入化的境界。我自己也是研究目标检测这一个方向,主要攻克其中的行人检测模块,所以经常需要使用大量数据集。有很多需要把图片名称转换为对应的txt文档的地方,所以在此把我用过的方法贴出来供大家参考,有的是借助大神的思想,我会在后面贴出链接~

CODE1:将文件夹里的图片一一转换为对应的文档格式保存:

#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>

using namespace std;

int main(){
ofstream myfile;

myfile.open("D:\\opencv\\manhole\\OpenBOW1\\OpenBOW\\BOWDataSet2\\Manhole\\cutcut.txt"); //*这里是你要保存txt文档的路径,自己先新建一个txt文档;*
if (!myfile){
cout << "unable to open myfile" << endl;
exit(1);
}

/*int i;*/
/*for (int i =0; i <=143; i++){

myfile << i  << ".jpg" << endl;
}*/
for (int i = 1; i <= 8; i++){
myfile << "08010137" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111132" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111143" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <=8;i++){
myfile <<"08111145"<<"("<<i<<")"<<".jpg"<< endl;
}

for (int i = 1; i <=8; i++){
myfile << "08111175" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111178" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111179" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111217" << "(" << i << ")" << ".jpg" << endl;
}
for (int i = 1; i <= 8; i++){
myfile << "08111233" << "(" << i << ")" << ".jpg" << endl;
}

cout << "it has been worked" << endl;
}


举个栗子哈~



转换之后:



这个方法不好的地方在于,你的图片名必须是一系列连续的,所以局限性很大,后来我在研究其他训练方法的时候发现有个博主的转换方法更简单也适用,在这里也贴出来:

CODE2:

#include<iostream>
#include <fstream>
#include <stdio.h>
#include<io.h>
using namespace std;
#define F_path "D:\\opencv\\INRIAPerson\\Train\\neg\\*.*"//要读取的图片文件夹路径
#define F_info "D:\\opencv\\VOCdevkit\\negdata.txt"//存放目标文档的路径
int main()
{
_finddata_t file;
long lf;
//创建文件流
fstream output_stream;

//输入文件夹路径
if ((lf = _findfirst(F_path, &file)) == -1)
cout << "Not Found!" << endl;
else{

//cout << "file name list:" << endl;

//打开文件, ios::out表示输出,ios::app表示输出到末尾;
output_stream.open(F_info, ios::out | ios::app);
//输出文件名
do
{
//cout << file.name << endl;
output_st
4000
ream << file.name << endl;
} while (_findnext(lf, &file) == 0);
}
_findclose(lf);
//system("pause");
return 0;
}


该程序不限制原文件中的图片名,任何名字都会被读取并保存为相应的txt文档。非常好用!

参考链接:http://blog.csdn.net/ppp036/article/details/51236425
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片 数据