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