0

我在 Windows 8 中使用 OpenCV 2.3.1。当我调用函数cvShowImage时,程序崩溃。我正在使用代码块,但我不知道为什么会发生这种情况。

如果我评论该行,程序运行良好。

代码如下所示:

    IplImage *img1=NULL;
    img1=cvLoadImage("LenaComFormas.pgm",CV_LOAD_IMAGE_GRAYSCALE);
    cvShowImage("Original", img1);
    cvWaitKey(0);
4

2 回答 2

1

因为图像未加载(cvLoadImage返回NULL)。您可以使用调试器来检查它。再次检查文件的路径。

于 2012-12-16T20:42:32.273 回答
1

您的代码在 Windows7 上使用 Qt 和 opencv 2.4.3 运行良好...您可以执行的可能检查...

  1. 检查到库的链接...opencv_core231、opencv_highgui231、opencv_imgproc231...检查包括到 opencv2/opencv/core.hpp opencv2/opencv/highgui.hpp。
  2. 检查 IplImage 指针 img1

IplImage *img1 = cvLoadImage("",0);

if(img1==NULL)

return -1;

3. 检查 *.pgm 图像的支持...或者获取最新的 opencv 并尝试...

编辑.. 4。只是为了检查尝试以下..

#include <opencv/opencv2/core.hpp>
#include <opencv/opencv2/highgui.hpp>

using namespace cv;

int main()
{
  Mat image;
  image = imread("",0);
  imshow("TEST",image);
  waitKey(0);
  return 0;
}
于 2012-12-16T20:51:30.797 回答