visual studio Debug模式下,opencv cv::imshow读取图片为空

版本Visual studio2015

错误:OpenCV Error: Assertion Failed (size.width>0 && size.height>0)

在测试opencv程式时,出现了以上这个错误,模式为Debug x86,仅仅是在这个模式下报错,在Release x86模式、Debug x64模式和Releasex64模式都正常运行。
首先我之前在visual studio2015已经配置好了x64的opencv,现在是配置x86的,所以发现了这个错误。网上有的说是路径写得不对,不能写相对路径,要写绝对路径,但我写的就是绝对路径,所以我不是这个问题,以下是我的解决方法。

问题解决:

一、在配置附加依赖项时,我把全部.lib都添加进去了,注意,这些lib是有分Debug模式和Release模式的,后面有"d"的是Debug模式,没有"d"的是release模式,我没有管带"d"或者不带"d"的,把全部lib都填进去了,觉得添加得多准没错,有的版本可能是可以的,比如我之前配置的x64 ,我也是把带"d"和不带的都添加进去了,但没这个问题,也不知道为什么x86的会出现这个问题,所以在Debug模式下把没有带"d"的全部删除!
在这里插入图片描述

这里有必要简单说一下Debug模式和Release模式,这两种模式是不一样的,总体来说Debug模式在语法编译上要比较严格些,而Release模式会忽略一些错误,所以即使有一点瑕疵并不影响运行,具体的区别可以度娘一下。

二、把Debug模式下附加依赖项带"d"的库删除以后,这个读取图片为空的报错就没了,但又会报两个错。
1、计算机丢失msvcp120d.dll
2、计算机丢失msvcr120d.dll

这个很简单,就是缺少了dll文件,就去百度下载这两个dll,然后把这两个dll放在你配置opencv系统环境的bin文件夹中,我的路径E:\opencv_86\opencv\build\x86\vc12\bin;
在这里插入图片描述

配置完以后,再重新启动一下visual studio,运行程式,就没问题了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值