vs2008调用opencv2.4.9的imread()函数失败解决办法

原创 2014年07月10日 16:17:58

这两天在看opencv的C++接口函数,刚开始就出现问题:

一个简单的显示图像的程序,就是运行不成功:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <string>
using std::string;
using namespace cv;
int main()
{
	string str="E:\\test\\LENA.BMP";
	Mat img1= imread(str);
	namedWindow("LENA");
	imshow("LENA",img1);
	waitKey();
	return 1;
}

开始还怀疑是不是自己太久没写代码,忘了文件绝对路径的写法,查了下,斜杠\是保留符号,所以要正确编译的话需要两个斜杠\\,并没有错。

用绝对路径的话就imread()这一步内存溢出:


图像直接放工程目录下的话读出来的图像就是空的:


纠结了一下午,终于找到了问题所在:
解决思路:
1、debug和release添加的库是否正确。
网上说如果库没添加正确就会出现这个情况,debug的应该是有XXXd.lib后缀的,但我的库是添加正确的。

debug加的库:
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib


Release加的库:
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249d.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib


2、vs2008不支持opencv2.4.9

查看添加包含库文件路径发现:D:\Program Files\opencv2.4.9\build\x86\vc10\lib,我采用的是vc10版本的库,而opencv2.4.9中没有vc9版本的。用vs2010重新新建了一个项目,结果运行成功,奔溃。。。


先前用的都是c接口的函数,估计没有大的影响,结果这次用c++接口函数则出现了这么个问题,还好只是这个简单程序调试时就发现了这个隐患,要不然后面搞大工程时遇上就麻烦了。

如果要在vs2008上使用opencv2.4.9,需要用cMake自己重新编译一个库。

版权声明:本文为博主原创文章,未经博主允许不得转载。

opencv中imread这个函数不能正确读入图片的解决

通常我们为了简单起见,是把所有的库(.lib)包括debug、release两个版本同时加载的。这样的话象下面的代码是可以正常工作的: [cpp] view plaincop...
  • lien0906
  • lien0906
  • 2015年01月13日 09:36
  • 5664

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

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

VS2008安装失败解决办法

  • 2014年01月13日 22:28
  • 27KB
  • 下载

VS2008 Web创作组件安装失败的解决办法

  • 2017年04月01日 17:10
  • 345B
  • 下载

WIN7下安裝vs2008 sp1补丁失败的解决办法

 由于Windows 7自带了.NET Framework 3.5 SP1还有其它一些原因, 所以在安装VS 2008 SP1的时候会发生fatal error during installation...
  • wangfaqiang
  • wangfaqiang
  • 2011年02月28日 16:35
  • 2586

VS2008SP1中jQuery Intellisense补丁KB958502安装失败的解决办法

提示:首先确信您一定以及肯定打了SP1的补丁。本文仅适用于您在打了SP1补丁后依然出现不能安装的问题,提示“此计算机上没有安装本软件更新支持的产品。单击“取消”退出安装程序。” 原因...
  • qilangrsl
  • qilangrsl
  • 2012年02月16日 21:57
  • 542

先ArcGIS 9.3安装引起的VS2008 sp1补丁及VS2010安装失败的解决办法

 最近刚购置了一台新的小本本,给她配备了Win7旗舰版的系统,主要是想用她来自学开发Silverlight for Windows Phone及ArcGIS API for Silverlight的,...
  • daonidedie
  • daonidedie
  • 2011年03月22日 10:55
  • 768

vs2008中关于右键没有“查看代码”的选项的解决办法

  • 2012年03月13日 14:25
  • 2.7MB
  • 下载

安装中文VS2008 SP1 和.NETFRAMEWORK 3.5SP1后智能提示是英文的解决办法--安装包

  • 2008年11月17日 19:52
  • 4MB
  • 下载

关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯淡解决办法

使用opencv 的过程中可能会遇到无法打开摄像头的情况。主要问题在buffers do not match 和 摄像头的驱动使用的Directshow而不是VFW,导致无法打开摄像头。文章通过使用v...
  • CaptainHans
  • CaptainHans
  • 2014年12月17日 19:03
  • 2704
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vs2008调用opencv2.4.9的imread()函数失败解决办法
举报原因:
原因补充:

(最多只允许输入30个字)