【发布时间】:2013-07-11 17:27:49
【问题描述】:
我在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 库上测试了我的项目,问题没有改变!!
【问题讨论】:
-
如果调试可执行文件构建在与发布可执行文件不同的位置,则需要将映像文件复制到调试版本的目录中。要么,要么将绝对路径传递给
imread。 -
@Aurelius 我测试了绝对路径,但也没有用...
标签: c++ windows visual-studio-2010 opencv