文章目录
- 0 前言
- 1 中文乱码问题
- 2 非法路径问题
0 前言
本篇博客主要是总结OpenCV使用过程中遇到的一些问题,以及对应的解决办法,这里重点是关注OpenCV,既有基于C++的,也有基于Python的,比较全面,而且也会随着我的学习经历不断更新。
OpenCV环境配置相关:
- 【项目实践】海康威视工业相机SDK开发小白版入门教程(VS2015+OpenCV4.5.1)
- 【Tools】这一次,彻底搞懂VS Code、C/C++、OpenCV
1 中文乱码问题
OpenCV对中文的支持很不好,比如显示图片的窗口名不能是中文,否则会出现乱码;同样,读取和保存的图片路径中也不能包含中文,否则会报错。
不过貌似基于VS配置的OpenCV能够解决这个问题,可能是因为使用的编译器不一样的缘故,VSCode配置OpenCV一般使用的是MinGW这一套编译器,而VS配置的使用的是微软的MSVC编译器。
出现乱码是因为VS默认的编码方式为GBK/GB2312,而OpenCV需要的编码方式为UTF-8,而且注意是“with BOM”版本,否则对于OpenCV代码会报错 “c2001 常量中有换行符”。
但每次手动更改文件的编码方式有点麻烦,这里推荐安装一个插件:
对于python中的OpenCV,一开始以为编码方式会比较兼容,但是很遗憾,在python-opencv中,窗口名设置为中文仍然会乱码。
2 非法路径问题
读取和保存图片不能有中文这是一个经典问题了,但是没想到的是,OpenCV对于非法路径似乎处理得不够好。
之前无意间遇到一个问题,那就是在python中使用opencv保存图片老是不执行,也不报错。但是换一个一般的文件名又能够保存,后来经过测试发现应该是文件路径的问题,不是有中文,而是有冒号。通过查找资料才知道,Windows中文件路径不能包含冒号,因为冒号有其他的含义。记录一下,这种问题确实有点少见。
参考链接