Opencv路径的统一修改以及不同版本路径的转换

来源:互联网 发布:揭东军埔淘宝村 编辑:程序博客网 时间:2024/06/06 09:46

这篇文章重点是解决最近在opencv大批量文件进行读写时,重复性的更改文件名称以及不同opencv版本的char*和string路径的不匹配问题。
这回的问题可能对某些C++基础很好的人来说完全不存在,不过还是写下来以供大家参考指点。如果有更好的方法务必告知。
问题指出:在循环读取一个文件夹中不同的文件(这里以图片为例),一般会想到将文件名命名的十分有规律。调用的时候我却一时想不到如何通过一句话全部调用,而不是每次都要重新修改路径,比如:imread(“..\oo\a1.bmp”,0),接下来下一次运行想要读入a2.bmp,就需要手动更改。

有种简单的方法就可以实现自动调用,比如:

std::stringstream si;std::string istr;for(int i=1;i<100;i++){    si<<i;    si>>istr;    string path = "..\\oo\\a"+istr+".bmp"    image = imread(path,0);    .    .    .}

还有一种情况就是在一个cpp文件中,可能会保存不同后缀,统一名称的文件,同理,可以利用以下方法:

string name = "..\\mydir\\1-4";string path = name + ".JPG";

最后想说的时在opencv1中,一般使用cvLoadImage之类的函数,他们调用的路径格式是const char *filename,所以需要转换一下

char*p=(char*)path.data();src = cvLoadImage(p, 0);

以上只是个简单思路,需要使用的话还需要举一反三。

0 0
原创粉丝点击