openCV和unicode文件名

时间:2015-10-14 08:15:30

标签: qt opencv unicode char qstring

我有一个Qt应用程序,我打开/选择一个视频文件:

QString fichier=QFileDialog::getOpenFileName(…);

然后,我需要使用openCV阅读此视频:

string str= fichier.toStdString();
const char* c_videoFile=str.c_str();
capture = cvCreateFileCapture(c_videoFile);
if(capture==0){
    //file cannot be open
 }
 else{
     //get frames, ...
 }

问题在于它根本不起作用(capture == 0),文件名的字符如下:

Dziękuję
Påfårö
Русский
キャン#&セル

即使

capture = cvCreateFileCapture("path/to/Русский.mp4");
例如,

。 如果我在控制台中输出c_videoFile,则名称是正确的。

如何解决知道我必须使用Qt打开文件所以我必须有一个QString转换为const char *。 openCV不能处理那种字符吗?

我在那里尝试了答案 imread(openCV),QString unicodes 但我得到错误"在QTextCodec"中没有类型名为setCodecForCStrings,"在QTextCodec中没有名为setCodecForTr的类型","在QString"中没有名为toAscii的成员。所以我认为这个答案对旧版Qt有效。

我在Mac OS 10.8.5,Qt 5.3.1和openCV 2.4.8上工作。它适用于Windows 7。

0 个答案:

没有答案