2014-06-17 60 views
0

我一直試圖通過使用imread使用(圖像)與opencv的向量讀取一些圖像中的文件名從QString,但它不會編譯。我知道這是我的QString的格式,這是問題,但似乎無法解決問題。我也嘗試過... image = imread(image_vector[i]); ...和其他幾種方法。任何幫助是極大的讚賞。Opencv使用imread和QString文件名向量來加載圖像

for (unsigned int i = 0; i < image_names.size(); i++) 
{ 
    image = imread(image_names.data()->at(i)); 

    if(!image.data) 
    { 
     qDebug()<< "Error"; 
    } 
    else 
    { 
     image_vector.push_back(image); 
    } 
} 
+0

什麼是'image_vector'?你似乎既從它讀取文件名,也向它添加cv矩陣? – pezcode

+0

對不起,我把錯誤的名字,我編輯過。 – omegaFlame

+1

嘗試類似'image_names [i] .toStdString()。c_str()'。 – Micka

回答

2

對於使用imread你有一個std::string傳遞給它。

Mat imread(const std::string& filename, int flags=1); 

在你的情況image_namesvector<QString>所以正確的代碼是:

image = imread(image_names[i].toStdString());