• OpenCV2类批量处理文件夹及文件图像 及批量处理后保存到txt文件


    
    
     1 //采用windows控制台实现计算文件夹中对象总数以及批量读取对象
     2 
     3 //#include <afx.h> //和windows.h是一样的作用
     4 #include <opencv2/opencv.hpp>
     5 #include <windows.h>
     6 
     7 using namespace cv;
     8 using namespace std;
     9 
    10 int CBRelationship(string buffer);
    11 
    12 int main()
    13 {
    14     
    15     int count = 1; //记录文件夹中对象数目
    16 
    17     WIN32_FIND_DATA p; //p是一个用于保存文件信息的结构体
    18     HANDLE h = FindFirstFile("C:/Users/Administrator/Desktop/区分高架定位/*.jpg",&p);
    19     cout<<p.cFileName<<endl;//打印被找到的第一个*.jpg的文件名
    20     while(FindNextFile(h,&p)) //p不断后移,寻找下一个、下下一个*.jpg
    21     {
    22        cout<<p.cFileName<<endl;
    23        count++;
    24     }
    25     cout<<"count="<<count<<endl;
    26 
    27     //依次自动的对每一幅图像进行相应处理
    28     int i;//处理图像的序号
    29     int result;//处理图像得到的结果
    30     char buffer[200];
    31     char imageDirectory[] = "C:/Users/Administrator/Desktop/区分高架定位";//存放图像的目录  
    32     char imageFileType[] = "jpg";//图像类型
    33 
    34     FILE *fp=fopen("C:/Users/Administrator/Desktop/区分高架定位/result.txt","w");//打开并写入文件
    35 
    36     for ( i = 1;i <= count;i++)
    37     {
    38         
    39         sprintf(buffer,"%s/%d.%s", imageDirectory,i, imageFileType);  //创建可变得图像路径buffer
    40 
    41         result = CBRelationship( buffer);//函数处理后返回值result
    42         
    43         fprintf(fp,"%d	",result);//将result存入到文件中
    44  
    45     }
    46 
    47     fclose(fp);  //关闭文件
    48     return 0;
    49 }
    
    

      

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

    代码:

     1 #include <opencv2/opencv.hpp>
     2 #include <iostream>
     3 #include <vector>
     4 
     5 using namespace cv;
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     //用于存储训练的数据
    11     cv::Directory TrainDir;//用于遍历路径下文件的类
    12     string path1 = "E:/train/9";//训练样本所在文件夹 9为手动修改文件夹
    13     string exten1 = "*.bmp";//训练样本的后缀名
    14     bool addPath1 = true;//true;  //是true则函数返回文件绝对路径和文件名,是false则返回文件名
    15 
    16     vector<string> Train_pathnames = TrainDir.GetListFiles(path1, exten1, addPath1);//存储所有待训练样本的路径+文件名
    17 
    18     char image_name[20] = { 0 };
    19     int digit_tag = path1[path1.size() - 1] - 48;
    20 
    21     //遍历目标文件夹,读入所有待训练样本,
    22     for (int i = 0; i < Train_pathnames.size(); i++)
    23     {
    24         Mat Image = imread(Train_pathnames[i]);
    25         sprintf_s(image_name, "E:/%d/%d-%d.bmp", digit_tag, digit_tag, i);//定义文件名 可变
    26         imwrite(image_name, Image);
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    AppBoxFuture(六): 前端组件化开发
    AppBoxFuture(五): 分布式文件存储-Store Everything
    Mysql自动填充测试数据
    萌新带你开车上p站(番外篇)
    B站百大UP主党妹被黑客勒索!!!
    合天网络靶场-大规模网络环境仿真服务平台
    XSS语义分析的阶段性总结(二)
    想学习CTF的一定要看这篇,让你学习效率提升80%
    XSS语义分析的阶段性总结(一)
    逆向入门分析实战(二)
  • 原文地址:https://www.cnblogs.com/ggYYa/p/5694914.html
Copyright © 2020-2023  润新知