我正在尝试使用imread
在OpenCV C ++中读取图像。这里的问题是图像的文件名。文件名在文件名中包含.dot。例如,这里有一个名称样本:
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文件而不是+ line时,将来自终端imshow的打印字符串放入,imread就像魅力一样。
答案 0 :(得分:4)
答案 1 :(得分:2)
好的,我改变了读取txt文件的方式,一切正常。我使用infile代替getline而且一切正常。
ifstream infile("Anny.txt");
string line;
while(infile>> line){
string img ="db/video/"+line; //db/video/00006.jpg0.jpg
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 );
}