zoukankan      html  css  js  c++  java
  • 【20160924】GOCVHelper MFC增强算法(1)

        //递归读取目录下全部文件(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);
            }
        }
         删除目录下的全部文件。
     
     
     
     





  • 相关阅读:
    Installing Python Modules
    《利用Python 进行数据分析》
    使用Python进行描述性统计
    各种数字证书区别
    数字证书及CA的扫盲介绍
    expect学习笔记及实例详解
    使用openssl命令制作ecc证书
    那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
    Openssl与私有CA搭建
    Openssl编程--源码分析
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/5907500.html
Copyright © 2011-2022 走看看