OpenCV 2.4.X + vs 2015 配置及使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/niaolianjiulin/article/details/81870059

背景

本科毕设和研究生毕设都用到了OpenCV,库确实很好用,功能很强大。研究生项目是CRF算法中需要提取ROI,提取纹理特征,计算直方图等,接口调用很方便。潜意识以为OpenCV库是在linux平台上做。

目前项目中需要将图片转化为单通道图像(灰度图),这个通过imread函数读取时设置模式就行。看了下ubuntu平台,装了库,但使用时报错,网上查找编译命令对着敲进去还是不行。Ubuntu里我又不能乱装。发现opencv库还可以在Windows下和vs 2015结合起来用。win平台上的lib库都编好了,需要在vs工程配置中设定头文件目录,库目录,需要链接的库名。

说明

我的本地环境是win7,安装了vs 2015。配置过程网上教程很多,大同小异。按照这个搞完,最后运行程序提示:缺少msvcp120d.dll库,而且还有可能缺msvcr120d.dll,只是先报这个错了。

踩坑

按照网上同样问题的几个办法:

1、直接下载这两个库,拷贝至系统路径下。结果:其他莫名其妙的错。很多人也建议不要使用这个办法,毕竟库和平台关系很大。

2、安装vs 2013的工具包,120d的名称属于2013版本的调试模式下的文件。安装后发现还是提示缺少。因为正式发布版本是不会包含d的。

折腾了几乎俩小时,能看的解决方法都看了还是不行。就一个简答的读取程序啊。

解决

中午团建看了个电影,回来后再看。

1、OpenCV 2.4.8版本下有vc12,这表示对应vs 2013。

2、安装了vs 2013,按照教程重新配置一遍,程序运行OK。

按道理新版本编译器应该兼容老版本的,但是就是不行,没什么办法,只能安装对应版本的做。否则折腾老半天,偏离了做事目的。组里基本都安装的是2013。(刚开始也是安装2013,但死活有个啥问题来着,查找各种最后感觉是系统问题,无奈安装个2015可以跑起来,后面一直这个。但昨天这个网上安装就成功了,晕)。多用linux做,但linux有个问题就是单步调试比较麻烦,没有Windows那么直观。

附录

vs中配置opencv时需要提供链接库的名称,粘贴如下。248表示版本为2.4.8,其他版本就是24X:

opencv_ml248d.lib
opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_objdetect248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_nonfree248d.lib
opencv_ocl248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_videostab248d.lib
opencv_objdetect248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_nonfree248.lib
opencv_ocl248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_superres248.lib
opencv_videostab248.lib
opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248.lib

猜你喜欢

转载自blog.csdn.net/niaolianjiulin/article/details/81870059