我正在嘗試使用imread
讀取OpenCV C++中的圖像。這裏的問題是圖像的文件名。文件名包含一個.dot文件名。例如這裏是名稱的一個示例:從.txt列表中讀取圖像
00006.jpg0.jpg
怎麼可能讀這樣一個形象? 矢量文件;
string line;
ifstream myfile ("Anny.txt");
if (myfile.is_open())
{
while (getline (myfile,line))
{
cout << line << '\n';
files.push_back(line);
string img ="db/video/"+line;
cout << img<< endl;
string dest = "db/video1/"+line;
Mat image = imread(img,1);
cout << image.rows << " " << image.cols << endl;
imshow("new", image);
waitKey(0);
imwrite(dest, image);
}
myfile.close();
}
編輯︰基本上錯誤在於getline,但我沒有得到它。當我更改img文件而不是+行時,將來自終端imshow的打印字符串和imread的作用像魅力一樣。
這裏沒問題。甚至沒有'my.png.jpg' – berak
'cv :: Mat image = cv :: imread(「00006.jpg0.jpg」);'對我來說工作正常 – Micka
看來,當我讀它時,它會返回一個空的墊子文件。當我試圖在imshow中顯示結果時,我得到: OpenCV錯誤:斷言失敗(size.width> 0 && size.height> 0)在imshow中,文件/home/christosh/Desktop/OpenCV/opencv-2.4。 7/modules/highgui/src/window.cpp,第269行 在拋出'cv :: Exception'實例後終止調用什麼():/home/christosh/Desktop/OpenCV/opencv-2.4.7/modules/ highgui/src/window.cpp:269:error:(-215)size.width> 0 && size.height> 0在函數imshow中 –