OpenCV C++ 计算文件夹中对象文件数目及批量处理后保存到txt文件

时间:2020-12-02 16:51:59

 //采用windows控制台实现计算文件夹中对象总数以及批量读取对象

 //#include <afx.h> //和windows.h是一样的作用
#include <opencv2/opencv.hpp>
#include <windows.h> using namespace cv;
using namespace std; int CBRelationship(string buffer); int main()
{ int count = ; //记录文件夹中对象数目 WIN32_FIND_DATA p; //p是一个用于保存文件信息的结构体
HANDLE h = FindFirstFile("C:/Users/Administrator/Desktop/区分高架定位/*.jpg",&p);
cout<<p.cFileName<<endl;//打印被找到的第一个*.jpg的文件名
while(FindNextFile(h,&p)) //p不断后移,寻找下一个、下下一个*.jpg
{
cout<<p.cFileName<<endl;
count++;
}
cout<<"count="<<count<<endl; //依次自动的对每一幅图像进行相应处理
int i;//处理图像的序号
int result;//处理图像得到的结果
char buffer[];
char imageDirectory[] = "C:/Users/Administrator/Desktop/区分高架定位";//存放图像的目录
char imageFileType[] = "jpg";//图像类型 FILE *fp=fopen("C:/Users/Administrator/Desktop/区分高架定位/result.txt","w");//打开并写入文件 for ( i = ;i <= count;i++)
{ sprintf(buffer,"%s/%d.%s", imageDirectory,i, imageFileType); //创建可变得图像路径buffer result = CBRelationship( buffer);//函数处理后返回值result fprintf(fp,"%d\t",result);//将result存入到文件中 } fclose(fp); //关闭文件
return ;
}

OpenCV C++ 计算文件夹中对象文件数目及批量处理后保存到txt文件  OpenCV C++ 计算文件夹中对象文件数目及批量处理后保存到txt文件

2. 利用OpenCV类批量处理文件夹及文件图像并重命名

代码:

 #include <opencv2/opencv.hpp>
#include <iostream>
#include <vector> using namespace cv;
using namespace std; int main()
{
//用于存储训练的数据
cv::Directory TrainDir;//用于遍历路径下文件的类
string path1 = "E:/train/9";//训练样本所在文件夹 9为手动修改文件夹
string exten1 = "*.bmp";//训练样本的后缀名
bool addPath1 = true;//true; //是true则函数返回文件绝对路径和文件名,是false则返回文件名 vector<string> Train_pathnames = TrainDir.GetListFiles(path1, exten1, addPath1);//存储所有待训练样本的路径+文件名 char image_name[] = { };
int digit_tag = path1[path1.size() - ] - ; //遍历目标文件夹,读入所有待训练样本,
for (int i = ; i < Train_pathnames.size(); i++)
{
Mat Image = imread(Train_pathnames[i]);
sprintf_s(image_name, "E:/%d/%d-%d.bmp", digit_tag, digit_tag, i);//定义文件名 可变
imwrite(image_name, Image);
}
return ;
}