Opencv路径的统一修改以及不同版本路径的转换
2017-04-04 21:54
183 查看
这篇文章重点是解决最近在opencv大批量文件进行读写时,重复性的更改文件名称以及不同opencv版本的char*和string路径的不匹配问题。
这回的问题可能对某些C++基础很好的人来说完全不存在,不过还是写下来以供大家参考指点。如果有更好的方法务必告知。
问题指出:在循环读取一个文件夹中不同的文件(这里以图片为例),一般会想到将文件名命名的十分有规律。调用的时候我却一时想不到如何通过一句话全部调用,而不是每次都要重新修改路径,比如:imread(“..\oo\a1.bmp”,0),接下来下一次运行想要读入a2.bmp,就需要手动更改。
有种简单的方法就可以实现自动调用,比如:
还有一种情况就是在一个cpp文件中,可能会保存不同后缀,统一名称的文件,同理,可以利用以下方法:
最后想说的时在opencv1中,一般使用cvLoadImage之类的函数,他们调用的路径格式是const char *filename,所以需要转换一下
以上只是个简单思路,需要使用的话还需要举一反三。
这回的问题可能对某些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);
以上只是个简单思路,需要使用的话还需要举一反三。
相关文章推荐
- 在eclipse下查看android 源码和修改查看源码的路径查看不同版本的android源码
- Android管理联系人(包含添加,查询,修改和删除;以及不同版本区别)
- asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置
- asp.net(C#)服务器绝对路径转换成URL相对路径[修改]
- asp.net(C#)服务器绝对路径转换成URL相对路径[修改] (转)
- 【shell】统一修改某一路径上目录的权限
- 在VS2008下使用OpenCV2.3链接imshow出错--解决,高版本路径放低版本前面
- [转]VS不同版本工程配置文件修改/ 相同版本不同SDK配置文件修改。
- 文件路径以及相关字符格式转换
- 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换(完整版,收集,整理)
- 修改提交的路径后缀名,不同命名空间跳转,避免重复提交token
- 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换
- 终于找到了Liferay版本不同都有哪些修改之处了
- 市内移出版本2.0(1、一页显示15条。2、增加控制标志。3、打印表格时绑定的list的优化。4、保存迁出登记信息时根据业务流水号判断增加还是修改。5、统一管理常量)
- OpenCV学习——在不同版本的VS下的配置方法
- OpenCV2.2.0版本的更改及源码zip包编译过程中的include路径的一个问题
- 对gcc搜索路径的研究/以及不修改/etc/ld.so.conf使用非默认路径下的库文件--LD_LIBRARY_PATH
- 两个openCV补充函数。用于不同位数图像之间转换的。。
- 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换
- 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换