vs2010使用openCV中的imread读不到图片问题的解决方法

本人最近初学openCV ,其间就遇到了这个问题,上网搜索了一下,发现很多网友都有这个问题,网上也没有很明确的解释,在这里,我就详细的说明一下。就按照发生问题到解决问题的顺序来讲述吧。本人小菜,求轻喷。


首先,我刚开始学习openCV的第一课,显示图像,本该很简单,代码也就几行而已,代码如下:
#include  
using namespace cv;  //包含cv命名空间
void main( )
{    
// 载入图像
Mat srcImage = imread("1.jpg");
// 显示载入的图片
imshow("image",srcImage);
// 等待任意按键按下
waitKey(0);
}  


运行后有错误提示:EX1.exe 中的 0x7664c42d 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0046fba0 处的 cv::Exception。


上网查了一下,网上的解释说这个错误最有可能的问题是内存溢出,也就是图片太大或者图片没有放在工程目录下,大家如果碰到这个问题的话也可以参考一下。但是我检查了一下,并不是这种错误,然后单步调试下发现,图片根本就没有读进去,如图:


vs2010使用openCV中的imread读不到图片问题的解决方法


经过很长时间的排查后,终于发现了问题所在:


这是配置opencv的dll问题,程序运行的是debug,但是opencv的dll确实Release。或者是运行是Release,但opencv的dll却是debug


在debug模式下,项目的properties->configurations properties->linker->input->additional dependencies中的lib库都是xxxd.lib,
而在release模式下,lib库都是xxx.lib,如图:
vs2010使用openCV中的imread读不到图片问题的解决方法


上图是debug下的,下面再上release配置的:


vs2010使用openCV中的imread读不到图片问题的解决方法
请大家注意二者附加依赖项的区别,顺便要记得,项目下的dll文件也要换一换哦,希望能够对大家有帮助~
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页