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

Posted

技术标签:

【中文标题】OPENCV 无法在调试模式下打开我的图像【英文标题】:OPENCV cannot open my image in debug mode 【发布时间】: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 我测试了绝对路径,但也没有用... 【参考方案1】:

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

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

【讨论】:

你的意思是调试版本?因为我对发布版本没有问题 我知道调试和发布库在 d 中不同,但在“链接器”设置中添加“C:\opencv\build\x64\vc10\lib*.lib”是我的错,这使得 VC2010使用此文件夹中可用的所有库,我认为这导致了问题!不过还是谢谢

以上是关于OPENCV 无法在调试模式下打开我的图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2017 上无法使用调试模式 x64 进行 opencv3.2 编译

红米usb调试成MTP模式无法调回

当我的应用程序无法在调试模式下运行,但 exe 文件可以正常运行时,这意味着啥?

程序在调试模式下崩溃:“无法解散”?

华为手机怎么打开usb调试模式

从 pngs 创建 gif:循环图像似乎太快了,只能在调试模式下工作