首页 > 代码库 > 【20160924】GOCVHelper MFC增强算法(4)

【20160924】GOCVHelper MFC增强算法(4)

//string替换
    void string_replace(string & strBigconst string & strsrcconst string &strdst)
    {
        string::size_type pos=0;
        string::size_type srclen=strsrc.size();
        string::size_type dstlen=strdst.size();
        while( (pos=strBig.find(strsrcpos)) != string::npos)
        {
            strBig.replace(possrclenstrdst);
            pos += dstlen;
        }

    }

字符串操作一直都是重要的基础操作。在图像处理的过程中,涉及到文件名等变换都需要字符串操作。string_replace中能够成块地换字符。虽然在std中可能已经有相关函数,不过既然我自己的这个用的比较熟悉,就是使用了。
//C++的spilt函数
    void SplitString(const stringsvector<string>& vconst stringc){
        std::string::size_type pos1pos2;
        pos2 = s.find(c);
        pos1 = 0;
        while(std::string::npos != pos2){
            v.push_back(s.substr(pos1pos2-pos1));
            pos1 = pos2 + c.size();
            pos2 = s.find(cpos1);
        }
        if(pos1 != s.length())
            v.push_back(s.substr(pos1));
    }
依然是增强了std中的相关功能,实际使用的时候非常有用。
//! 通过文件夹名称获取文件名,不包括后缀
    void getFileName(const stringfilepathstringname,stringlastname){
        vector<stringspilt_path;
        SplitString(filepathspilt_path"\\");
        int spiltsize = spilt_path.size();
        string filename = "";
        if (spiltsize != 0){
            filename = spilt_path[spiltsize-1];
            vector<stringspilt_name;
            SplitString(filenamespilt_name".");
            int name_size = spilt_name.size();
            if (name_size != 0)
                name = spilt_name[0];
            lastname = spilt_name[name_size-1];
        }
    }
前面的函数getfiles能够获得文件的真实路径。那么getFileName能够进一步处理,直接获得图片的名称。很多时候,图片读取了,需要处理一下,这个都是需要的。



来自为知笔记(Wiz)



【20160924】GOCVHelper MFC增强算法(4)