我在opencv中读取一系列图像时遇到了问题。我使用相同的代码:
namedWindow("Source", CV_WINDOW_AUTOSIZE);
string pathToData("OpenCV Images/checkerboard1.pgm");
VideoCapture sequence(pathToData);
Mat src;
for (;;)
{
sequence >> src;
if(src.empty())
{
cout << "End of Sequence" << endl;
break;
}
imshow("Source", src);
waitKey(1000);
}
waitKey(0);
我在窗口(visual studio)和linux中运行此代码。在窗口中,程序显示序列中的所有图像,而在linux中,程序只显示相同序列中的第一个图像。 此外,在窗口中,程序以灰度加载图像,而在lunix中,它以彩色加载图像。实际上,我将图像保存为灰度。
这对openCV for window和linux OS来说有问题吗?或者我需要做一些设置吗?或者是其他东西... 有人可以帮我搞清楚吗? 谢谢!
答案 0 :(得分:0)
pathToData
包含文件名而不是路径。此文件为.pgm
格式,表示图像为灰度。
在我看来,您必须创建文件夹中存在的图像名称列表,然后逐个调用这些名称。当前代码仅显示checkerboard1.pgm
图片。或者您必须将视频文件作为输入而不是图像。