OpenCV在VS2015中的配置总结
-
借鉴的资料
OpenCV官网教程----如何使用OpenCV在“微软Visual Studio”中构建应用程序:https://docs.opencv.org/3.4.4/dd/d6e/tutorial_windows_visual_studio_opencv.html
【opencv】opencv在vs下的配置(持续更新):https://blog.csdn.net/hujingshuang/article/details/47082229
【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置:https://blog.csdn.net/poem_qianmo/article/details/19809337
VS配置openCV方法论:https://blog.csdn.net/honpey/article/details/8474462
为什么要使用cmake+VS重新编译的opencv库?:https://blog.csdn.net/poinsettia/article/details/17005435 -
永久性配置
此处的永久性配置是指完成此种配置后,今后再新建相同类型的项目,都不必再次进行OpenCV的配置,除非你把配置更改掉,方法就是浅墨在其教程中介绍的方法:https://blog.csdn.net/poem_qianmo/article/details/19809337
<1>.配置环境变量
计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。如图:
例如,浅墨的就是
D:\Program Files\opencv\build\x64\vc10\bin;D:\Program Files\opencv\build\x86\vc10\bin<2>.首先,是工程包含(include)目录的配置
新建一个C++ Win32控制台应用程序,添加一个源文件;
在菜单栏里面点<视图>–<属性管理器>,那么就会在visual studio中多出一个属性管理器工作区来;
在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(右键属性,或者双击)即可打开属性页面;
打开属性页面后,就是一番配置了。首先是在【通用属性】 ->【VC++目录】 ->【包含目录】中
添加上
D:\Program Files\opencv\build\include
D:\Program Files\opencv\build\include\opencv
D:\Program Files\opencv\build\include\opencv2 这三个目录。
当然,这是之前把OpenCV解压到D:\Program Files\下的情况。实际的路径还要看你自己把OpenCV解压到了哪个目录下,根据你的实际情况来调节。<3>.工程库(lib)目录的配置
其实这步和上一步差不多,属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(反键属性,或者双击)打开属性页面。
接着上步,就是在【通用属性】 ->【VC++目录】 ->【库目录】中,
添加上D:\Program Files\opencv\build\x86\vc10\lib这个路径。(最好不要复制粘贴浅墨给出的路径,而是自己去预览里面指定出来,这样会准确得多)
<4>.链接库的配置
依然是“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(反键属性,或者双击)即可打开属性页面。【通用属性】 ->【链接器】->【输入】->【附加的依赖项】
对于【OpenCV2.4.8】,添加如下248版本的lib(这样的lib顺序是:19个带d的debug版的lib写在前面,19个不带d的release版的lib写在后面):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.libopencv_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.libopencv_ml248.lib
对于【OpenCV2.4.9】,添加如下249版本的lib(这样的lib顺序是:19个带d的debug版的lib写在前面,19个不带d的release版的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.libopencv_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
需要注意的是,所粘贴内容即为之前我们解压的OpencV目录D:\opencv\build\x86\vc10\lib下所有lib库文件的名字;其中的248代表我们的OpenCV版本为2.4.8,若是其他版本的配置则在这里要进行相应的更改,比如说2.4.6版的OpenCV,那么这里的opencv_calib3d248d.lib就要改成opencv_calib3d246d.lib了.Debug文件库名有d结尾,Release没有,如 opencv_ts248d.lib(debug版本的lib)和opencv_ts248.lib(release版本的lib)
不过我一般是在这里把带d和不带d的统统写在这里,因为这里是以后创建所有工程时都会继承的公共属性。
对于【OpenCV 3.0】,添加3.0版本的lib,新版的lib非常简单。想用debug版本的库,添加
opencv_ts300d.lib
opencv_world300d.lib 这两个库即可。
而想用release版本的库,添加
opencv_ts300.lib
opencv_world300.lib即可。
其实,对已经发行和未来即将发布的新版OpenCV,只需看opencv\build\x86\vc10\lib下的库是哪几个,添加成依赖项就可以了。
另外注意:按照如上的这种方式来配置,也许会出现debug下可以运行但是release下不能运行的情况(因为字符串读取问题引起的诸如图片载入不了,报指针越界,内存错误等等),这算是OpenCV自2.4.1以来的一个bug。
解决方案:想在release模式下运行出程序结果,在工程的release模式下,将不带d的lib(全部是19个)添加到【项目】->【属性】(注意这样打开的是当前工程的属性页,我们只需在这里将release版(即不带d)的相关lib添加进去)->【配置属性】->【链接器】->【输入】->【附加的依赖项】下即可。 -
一次性配置
这里说的一次性配置是指只对当前项目有效,对于新建的项目无效。在Solution Explorer(解决方案资源管理器)栏,找到项目右键—>Properties—>Configuration Properties,在VC++ Directories中分别添加Include和lib路径,在Linker—>Input中添加.lib依赖项。具体配置过程跟上述过程相同。
作者:hujingshuang 来源:CSDN
原文:https://blog.csdn.net/hujingshuang/article/details/47082229 -
创建自己的项目属性表
把设置的属性保存成一个文件,每次新建工程时只需要把属性文件导入即可,方法来自OpenCV官网教程:https://docs.opencv.org/3.4.4/dd/d6e/tutorial_windows_visual_studio_opencv.html
在新出现的“属性管理器”工作区中,右键单击项目,单击“添加新项目属性表”,
之后按提示创建属性表,属性表的配置大致跟上述过程类似,但有些许不同。
首先,按照浅墨的教程,修改的三个地方分别是:
(1).VC++目录–》包含目录;
(2).VC++目录–》库目录;
(3).连接器–》输入–》附加依赖项;
而OpenCV官方教程是
(1).C/C++ --》附加包含目录;
(2).链接器 --》附加库目录;
(3).连接器 --》输入–》附加依赖项;
两个教程的修改内容是对应一样的,都可以运行。
-
出现错误
如果出现下述错误,是因为动态链接库路径没有配置好,即环境变量没有配置如果出现下述错误,是因为动态链接库路径没有配置好,即环境变量没有配置