博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【20160924】GOCVHelper MFC增强算法(1)
阅读量:6839 次
发布时间:2019-06-26

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

    //递归读取目录下全部文件(flag为r的时候递归)
    void getFiles(string pathvector<string>& files,string flag){
        //文件句柄
        long   hFile   =   0;
        //文件信息
        struct _finddata_t fileinfo;
        string p;
        if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1){
            do{
                //如果是目录,迭代之,如果不是,加入列表
                if((fileinfo.attrib &  _A_SUBDIR)){
                    if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0 && flag=="r")
                        getFilesp.assign(path).append("\\").append(fileinfo.name), files,flag );
                }
                else{
                    files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                }
            }while(_findnext(hFile, &fileinfo)  == 0);
            _findclose(hFile);
        }

    }

    //递归读取目录下全部图片
    void getFiles(string pathvector<Mat>& files,string flag){
        vector<stringfileNames;
        getFiles(path,fileNames,flag);
        for (int i=0;i<fileNames.size();i++){
            Mat tmp = imread(fileNames[i]);
            if (tmp.rows>0)//如果是图片
                files.push_back(tmp);
        }
    }  
    //递归读取目录下全部图片和名称
    void getFiles(string pathvector<pair<Mat,string>>& files,string flag){
        vector<stringfileNames;
        getFiles(path,fileNames,flag);
        for (int i=0;i<fileNames.size();i++){
            Mat tmp = imread(fileNames[i]);
            if (tmp.rows>0){
                pair<Mat,stringapir;
                apir.first = tmp;
                apir.second = fileNames[i];
                files.push_back(apir);
            }
        }
    }  
       在结合MFC的程序设计中,经常涉及到图片文件输入输出的情况。所以我编写集成了一些算法,在这个方面进行增强。getFiles函数能够递归地读取某个目录下面所有文件的据对路径。这样就能够一次性获得所有的图片;对getFiles进行重载,这样能够直接将图片读入mat,或者读入pair<Mat,string>,更加方便。
       可能你会问,既然已经读入Mat了,但是为什么还要读出pair<Mat,string>了?这是因为很多时候在获得图片的时候还需要获得图片的名称。
 
    删除目录下的全部文件
    void deleteFiles(string path,string flag){
        //文件句柄
        long   hFile   =   0;
        //文件信息
        struct _finddata_t fileinfo;
        string p;
        if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1){
            do{
                //如果是目录,迭代之,如果不是,加入列表
                if((fileinfo.attrib &  _A_SUBDIR)){
                    if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0 && flag=="r")
                        deleteFiles(p.assign(path).append("\\").append(fileinfo.name).c_str(),flag );
                }
                else{
                    deleteFiles(p.assign(path).append("\\").append(fileinfo.name).c_str());
                }
            }while(_findnext(hFile, &fileinfo)  == 0);
            _findclose(hFile);
        }
    }
     
删除目录下的全部文件。
 
 
 
 

目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com

转载地址:http://gfkul.baihongyu.com/

你可能感兴趣的文章
双系统如何正确的删除Ubuntu
查看>>
大话it职场之经历风雨是否能见彩虹
查看>>
二叉树的遍历与还原
查看>>
我的友情链接
查看>>
二进制安装MariaDB 5.5.36
查看>>
我的友情链接
查看>>
DNS 安装与解析
查看>>
如何实现低成本site to site ***?
查看>>
用ProxyFactoryBean创建AOP代理
查看>>
使用MDT2013部署Win8系统之三 配置MDT服务器之导入操作系统
查看>>
An internal error occurred during: "Building workspace". Java heap space
查看>>
我的友情链接
查看>>
MongoDB 安装以及系统服务配置方法
查看>>
RAID 技术介绍
查看>>
ldap linux client详细配置
查看>>
【华为OJ】逆波兰
查看>>
通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱
查看>>
8 个你可能不知道的 Docker 知识
查看>>
JavaSE学习笔记(六)——类的继承
查看>>
java代码编写出现的陷阱-2:阴沟里翻船
查看>>