VS2013配置OpenCV2.4.9的相关问题

本文介绍了在Windows 10环境下,使用Visual Studio 2013配置OpenCV2.4.9时遇到的Release模式中断及dll缺失问题的解决方法,包括调整项目属性中的附加依赖项和添加缺失dll。同时,针对类重名问题提出了三种解决方案:修改类名、添加命名空间以及仅在cpp文件中包含opencv头文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考Silvia博主对opencv的配置方法附上原文链接。但在编译时遇到一些问题,比如Realease下会中断,或者提示缺失dll文件等。下面将针对各种问题提出解决方法。

win10下VS2013+OpenCV2.4.9环境配置_Blog-优快云博客_opencv2.4.9一、安装Visual Studio2013 1、首先下载安装包可以在百度里搜索vs2013,官网下载我是在别人的百度云盘下载的:https://pan.baidu.com/s/1bpyvuRt2、安装过程下载完成后,可以看到是一个光盘映像文件,右键用解压软件解压缩解压缩后,找到vs_ultimate.exe可执行文件,双击运行可自行更改安装目录,然后选择同意...https://blog.youkuaiyun.com/wsf09/article/details/78853823

 1.Release下点击功能实现的按钮产生中断

 如图所示,提示dll文件错误,具体是哪种dll文件没有区别。其原因是依赖库lib文件需要分开包含,即将后面带d的文件在debug中包含,不带d的文件在release中包含。在项目->属性中会发现上面可以选择debug还是release。选择release,链接器->输入->附加依赖项,取消下面的从父级或项目默认设置继承,只复制继承的值中的xxx249后面不带d!!!的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

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_ml249.lib

粘贴到空白区,最后应用。同理,对debug也进行操作,但只粘贴带d的lib,即

opencv_ml249d.lib

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

 上述操作完成后如果编译时提示缺少dll,就把opencv目录下提示缺少的那个dll放到项目中去。比如我自己的路径D:\Microsoft Visual Studio 12.0\Opencv\opencv\build\x86\vc12\bin,在这个文件夹中找到对应缺少的dll文件,将其复制到项目中如图所示。注意项目是32位的就再x86文件夹中,否则在x64中。vc12表示vs2013版本,其他就往前退一版。

 到此应该就解决了上述问题。

2.与opencv中的类重名

以我自己为例,项目中本身定义了Vec的模板类,但opencv中也有Vec模板类。

方法一:修改类名

vs2013安装了番茄助手,直接右键类rename即可,根据提示一步步往下做。

方法二:添加命名空间

opencv中的Vec类是有cv这个命名空间的,而项目中的Vec类是没有单独添加的,可以通过添加一个新的命名空间用{}圈起,调用时注意带上命名空间即可。如vc::Vec 

方法三:只在cpp文件中包含opencv的头文件

前两个方法是解决一般类重名问题,但由于我整个项目是基于自定义的Vec类建立的,采用前两种方法修改量巨大。。因此,对于opencv我只在cpp文件中,需要调用到该库的时候去包含,并且在调用时添加cv::作用域,当然也可以直接using namespace cv;这就可以很好地避免冲突问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值