imread(openCV),QString unicodes

3
cv::Mat img = cv::imread("../赤月/lena.jpg");
if(img.empty()) std::cout<<"empty image"<<std::endl;

或者

QString const image_name = "../赤月/lena.jpg";
cv::Mat img = cv::imread(image_name_.toAscii().constData());
if(img.empty()) std::cout<<"empty image"<<std::endl;

imread的API接受std :: string参数,如果我需要Unicode支持怎么办?


3
为什么过去你没有接受任何答案? - billz
2
你看过这个吗?http://code.opencv.org/issues/1268(我猜你实际上已经尝试使用问题中的代码,但失败了?) - Niko
不好意思,我之前不知道只有在你询问过后,我才可以接受答案。 - StereoMatching
1个回答

1
在 Niko 给我展示了链接之后,我知道如何通过 Qt 解决这个问题。
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);

QString const image_name = "../赤月/lena.jpg";
cv::Mat img = cv::imread(image_name_.toAscii().constData());

现在代码完美运行,感谢大家的支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接