我正在尝试使用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中 –