在openCV中读取一系列图像

时间:2014-02-20 06:24:02

标签: c++ opencv image-processing

我在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来说有问题吗?或者我需要做一些设置吗?或者是其他东西... 有人可以帮我搞清楚吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

pathToData包含文件名而不是路径。此文件为.pgm格式,表示图像为灰度。

在我看来,您必须创建文件夹中存在的图像名称列表,然后逐个调用这些名称。当前代码仅显示checkerboard1.pgm图片。或者您必须将视频文件作为输入而不是图像。