OpenCV 2.4.2 imshow导致崩溃

时间:2012-10-14 11:04:01

标签: opencv

我对opencv 2.4.2有这个令人讨厌的问题。 我使用VS 2012来编译这个简短的测试程序。

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

using namespace cv;

int main()
{
    Mat sudoku = imread("sudoku.jpg",0);
    namedWindow("Lines", CV_WINDOW_AUTOSIZE);

    imshow("Lines", sudoku);

}

Imshow是问题所在。当我删除它时,它运行没有任何问题。我在这里找到了一个提示,说使用调试库而不是帮助。

1 个答案:

答案 0 :(得分:7)

首先,您必须检查图像是否正确加载。要执行此操作,只需检查image.data是否为NULL

其次,在致电imshow后,您必须致电waitKey以显示图片: http://opencv.willowgarage.com/documentation/cpp/user_interface.html#cv-waitkey

以下是整个代码:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    Mat sudoku = imread("sudoku.jpg",0);

    if (sudoku.data == NULL)
    {
        cout << "No image found! Check path." << endl;
        return 1;//ERROR
    }
    else
    {
        namedWindow("Lines", CV_WINDOW_AUTOSIZE);
        imshow("Lines", sudoku);
        waitKey();//without this image won't be shown
        return 0;//OK
    }

}