opencv imread 无法输入中文路径
时间: 2023-11-13 07:03:28 浏览: 96
是的,opencv的imread函数无法解析中文路径。这是因为OpenCV默认使用的是ANSI编码,而中文路径通常使用的是UTF-8编码。为了解决这个问题,你可以将中文路径转换为ANSI编码,或者使用英文路径。以下是一个将中文路径转换为ANSI编码的示例:
```
#include <iostream>
#include <opencv2/opencv.hpp>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "chs"); //设置本地化为中文
std::string filename = "中文路径.jpg";
std::wstring wfilename;
wfilename.assign(filename.begin(), filename.end()); //将string转为wstring
cv::Mat img = cv::imread(cv::String(wfilename.c_str())); //将wstring转为cv::String
if (img.empty()) {
std::cout << "读取图片失败!" << std::endl;
return -1;
}
cv::imshow("image", img);
cv::waitKey(0);
return 0;
}
```
在上面的代码中,我们首先使用setlocale函数将本地化设置为中文,然后将中文路径转换为wstring类型。最后,我们将wstring类型转换为cv::String类型,并将其作为imread函数的参数。注意,如果你使用的是Windows系统,还需要将文件系统的编码设置为ANSI编码。
阅读全文