• 【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);
            }
        }
         删除目录下的全部文件。
     
     
     
     





  • 相关阅读:
    lambda表达式
    C#_单例模式
    Authorize的Forms认证
    10. windows下原来可以这样隐藏webshell
    8. php回调后门
    7. 编辑器漏洞整理
    6. webshell文件上传分析溯源
    1.5 webshell文件上传漏洞分析溯源(1~4)
    1.4 DVWA亲测文件上传漏洞
    1.3 任意文件查看与下载漏洞
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/5907500.html
Copyright © 2020-2023  润新知