1

我在VC2010中使用opencv,我很熟悉。

我今天安装了 OPENCV 2.4.5 并尝试显示图像以测试我的 opencv 是否工作。

令人惊讶的是,这段代码以发布模式显示图像,但是当我将编译器模式更改为调试时,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

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

我还提供了绝对路径作为输入,它也不起作用!但是绝对路径再次在发布模式下工作!

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

4

1 回答 1

1

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

确保在链接库时没有混淆 OpenCV 的发布和调试。调试库以 d 结尾。此外,请确保您使用的是基于您拥有的 opencv 版本的正确库名称,例如 opencv_calib3d245d.lib

于 2013-07-11T19:58:34.860 回答