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

遇到了同样的问题,参考这篇博文,问题解决了。

特此记录。多谢原作者分享。

http://blog.csdn.net/szlcw1/article/details/37657807

 

 

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

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

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

[cpp] view plain copy

  1. #include <opencv2/core/core.hpp>  
  2. #include <opencv2/highgui/highgui.hpp>  
  3. #include <string>  
  4. using std::string;  
  5. using namespace cv;  
  6. int main()  
  7. {  
  8.     string str="E:\\test\\LENA.BMP";  
  9.     Mat img1= imread(str);  
  10.     namedWindow("LENA");  
  11.     imshow("LENA",img1);  
  12.     waitKey();  
  13.     return 1;  
  14. }  

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

用绝对路径的话就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自己重新编译一个库。如果懒得用cMake,就需要使用VS2010.

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

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值