我在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位库上测试了我的项目,问题没有改变!!
答案 0 :(得分:1)
您的opencv库的调试版本可能是在不支持“jpg”图像的情况下编译的。另请参阅this answer
确保在链接库时没有混淆释放和调试OpenCV的 lib 。调试库最后有d。此外,请确保您使用的是基于opencv版本的正确lib名称,例如opencv_calib3d245d.lib