OpenCV 2.4.2 imshow导致崩溃

NsJ*_*sJn 3 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);

}
Run Code Online (Sandbox Code Playgroud)

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

Art*_*huk 7

首先,您必须检查图像是否正确加载.要做到这一点只检查是否image.dataNULL或不是.

其次,在打电话后imshow你必须打电话waitKey给show image: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
    }

}
Run Code Online (Sandbox Code Playgroud)