您的位置:首页 > 运维架构

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

2017-04-04 21:54 183 查看
这篇文章重点是解决最近在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);


以上只是个简单思路,需要使用的话还需要举一反三。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐