OPENCV无法在调试模式下打开我的图像

时间:2013-07-11 17:27:49

标签: c++ windows visual-studio-2010 opencv

我在VC2010中使用opencv,我对它非常熟悉。

我今天安装了OPENCV 2.4.5并试图显示一个图像,以便测试我的opencv是否正常工作。

令人惊讶的是,此代码在发布模式下显示图像,但是当我将编译器模式更改为debug时,opencv无法找到图像并为图像数据返回null !!!

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
  int main()
 {  
    cv::RNG rng;
    cv::Mat image = cv::imread("1.jpg",-1);
    cv::imshow("Image",image);
    cv::waitKey(0);
return 0;
  }

错误显示为:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupport
ed array type) in unknown function, file ..\..\..\src\opencv\modules\core\src\ar
ray.cpp, line 2482

我确信在发布模式下代码运行正常,所以路径,图像名称和一切都很好,但我不知道为什么它不能在调试模式下工作。

我也提供绝对路径作为输入,它也没有用!!但绝对路径再次在释放模式下工作!

值得一提的是,我还在openbit的32位和64位库上测试了我的项目,问题没有改变!!

1 个答案:

答案 0 :(得分:1)

您的opencv库的调试版本可能是在不支持“jpg”图像的情况下编译的。另请参阅this answer

  

确保在链接库时没有混淆释放和调试OpenCV的 lib 。调试库最后有d。此外,请确保您使用的是基于opencv版本的正确lib名称,例如opencv_calib3d245d.lib