遍历多个文件夹,统一输出图像到一个文件夹
发布日期:2021-06-29 13:43:35 浏览次数:3 分类:技术文章

本文共 2783 字,大约阅读时间需要 9 分钟。

制作样本级的时候需要用,统一把采集的乱七八糟的文件夹遍历,并统一输出统一命名;

留个档,以后也许自己会用到

Mac xcode

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace cv;using namespace std;inline void get_dirs_files(string dir ,vector
&vec_dir, vector
&vec_file){ if( dir.empty() ) { cout<<" dir is null ! "<
d_name , "." ) == 0 || strcmp( filename->d_name , "..") == 0 ) continue; if(filename->d_type == 4)//dir { //cout<< "dir: " << filename->d_name <
d_name)); } else if(filename->d_type == 8)//file { //cout<< "file: " << filename->d_name <
d_name)); } }}int main(int argc, const char * argv[]) { vector
vec_dir; vector
vec_file; static vector
vec_image; string dir_root = "/Users/TNC/Desktop/codebase/traincascade/traincascade/data/ng"; get_dirs_files(dir_root,vec_dir,vec_file); // printf("含有文件夹数目:%d\n",vec_dir.size()); //遍历所有文件夹的文件名 /* 目前只是遍历一级目录,若有其他需求自行修改 */ for(int i=0;i
vec_dir2; vector
vec_file2; get_dirs_files(dir_root+"/"+vec_dir[i],vec_dir2,vec_file2); for(int j=0;j
::iterator iter = vec_image.begin(); string path = "/Users/TNC/Desktop/codebase/traincascade/traincascade/data/bg/"; int index=0; while(iter != vec_image.end()) { char fn[256]; char dir[256]; index ++; Mat image = imread((*iter).c_str()); sprintf(fn,"%s%d.jpg",path.c_str(),index); imwrite(fn, image); cout << "已输出:" << index << endl; iter ++; } } else { cout << "文件夹为空" << endl; } return 0;}

Win Visual Studio

32位:

https://blog.csdn.net/u012755940/article/details/51729884

64位:采用上面常规方法会报错,需要调整:

#include 
#include
#include
#include
using namespace std;using namespace cv;vector
vec_path;int main(){ __int64 Handle; long jpg_num = 0; struct __finddata64_t FileInfo; char rootpath[256] = "F:\\workplace\\cascade\\train_images\\"; int count = 0; char tmp_path[256]; sprintf_s(tmp_path, "%s*.jpeg", rootpath);//临时文件路径 if ((Handle = _findfirst64(tmp_path, &FileInfo)) == -1L) printf("没有找到匹配的项目\n"); else { //遍历文件夹下的所有文件 printf("%s\n", FileInfo.name); while (_findnext64(Handle, &FileInfo) == 0) { //生成绝对路径 char filepath[256]; sprintf_s(filepath, "%s%s", rootpath, FileInfo.name); printf("%s\n", filepath); vec_path.push_back(filepath); count++; } _findclose(Handle); } if (!vec_path.empty()) { vector
::iterator iter = vec_path.begin(); int index = 1; //输出目标路径 char out_path[256] = "F:\\workplace\\cascade\\samples\\"; while (iter != vec_path.end()) { Mat img = imread((*iter)); if (!img.empty()) { char img_path[256]; sprintf_s(img_path, "%s%d.jpeg", out_path, index); imwrite(img_path, img); printf("输出序号:%d / %d\n", index, count); } index++; iter++; } } return 0;}

转载地址:https://chenlinwei.blog.csdn.net/article/details/92832942 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c++ 输出 txt文件
下一篇:opencv 透视变换

发表评论

最新留言

很好
[***.229.124.182]2024年04月04日 06时22分14秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

闺蜜看我用Python画了一幅樱花图,吵着要我给他介绍程序员小哥哥 2019-04-29
【Python爬虫实战】知乎热榜数据采集,上班工作摸鱼两不误,知乎热门信息一网打尽 2019-04-29
自从我学会了数据挖掘Matplotlib、Numpy、Pandas、Ta-Lib等一系列库,我把领导开除了 2019-04-29
Python抓取哔哩哔哩up主信息:只要爬虫学的好,牢饭吃的早 2019-04-29
有个码龄5年的程序员跟我说:“他连wifi从来不用密码” 2019-04-29
领导让我整理上个季度的销售额,幸好我会Python数据分析,你猜我几点下班 2019-04-29
【Python爬虫实战】为何如此痴迷Python?还不是因为爱看小姐姐图 2019-04-29
零基础自学Python,你也可以实现经济独立! 2019-04-29
ElasticSearch与Mysql对比(ElasticSearch常用方法大全,持续更新) 2019-04-29
数字化转型的主干道上,华为云以“三大关键”成企业智能化推手 2019-04-29
数字化为何不走“捷”“径”? 2019-04-29
和总裁、专家交朋友,华为云助推政企智能化升级又做到前面去了 2019-04-29
BCOP章鱼船长,6月22日晚上8点上线薄饼 2019-04-29
为战疫助力,半导体功不可没 2019-04-29
了解这些操作,Python中99%的文件操作都将变得游刃有余! 2019-04-29
知道如何操作还不够!深入了解4大热门机器学习算法 2019-04-29
只有经历过,才能深刻理解的9个编程道理 2019-04-29
发现超能力:这些数据科学技能助你更高效专业 2019-04-29
AI当道,人工智能将如何改变金融业? 2019-04-29
消除性别成见,技术领域需要更多“乘风破浪的姐姐” 2019-04-29