5

我对 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是问题所在。当我删除它时,它运行没有任何问题。我在这里找到了一个提示,它说要使用调试库,但它没有帮助。

4

1 回答 1

8

首先,您必须检查图像是否正确加载。为此,只需检查是否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
    }

}
于 2012-10-14T11:21:26.040 回答