上一篇文章说了,OpenCV是C++作图像处理的一个常用开源库,VS安装的C++编译环境中没有预装OpenCV函数库,需要我们自己按照安装C++第三方库的方法安装。
首先我们从opencv.org官网下载OpenCV的库,下载下来的是一个压缩文件,需要我们自己解压,加压后的函数库包含一系列的文件夹,其中最重要的是位于opencv/build/文件夹中的以下几个,其中opencv/是根目录;build代表已经编译好的文件;X64指的是给64位的运算环境,另一个是X86对应于32位环境;VS15是指适用于VS2017,其他版本的VS分别可对应于VS10--VS14,VS15是最新版的VS2017对应的版本。
1.opencv/build/include--> 包含目录
2.opencv/build/x64/VS15/lib--> 库目录
3.opencv/build/x64/VS15/bin--> 可执行目录
这三个目录是C++要使用OpenCV库函数需要用到的文件库,所以要添加到VS C++环境中。有两中添加方法:一种是添加到VS C++全局环境中,另一种是只添加到需要用到的工程中,我用第二种方法添加,这样用起来更加灵和。
可执行文件目录的路径需要添加在环境变量路径中,结果如下:
库目录和包含目录的路径则需要添加在VS C++的工程中,添加方法如下:右击工程--属性--VC++目录,在右边的选项中分别将opencv/build/include;opencv/build/include/opencv; pencv/build/include/opencv三个路径添加在包含目录中,将opencv/build/x64/VS15/lib添加在库目录的路径中,添加完后结果如下:
同样是在工程属性中,选择链接器--输入属性,在右边添加附加依赖项opencv_world344.lib和opencv_world344d.lib。前者是release版本,后者debug版本。344是根据OpenCV版本不同而不同,也可能是320等。
至此,所有的OpenCV在VS C++环境中的依赖关系全部添加好了。但是我还是遇到了以下问题,虽然很烦,但是都一一解决了:
1.X86和X64冲突问题:
“模块计算机类型“x64”与目标计算机类型“X86”
解决方法:在很多的安装教程中,说如果电脑是64位操作系统则使用X64位的OpenCV版本,如果是32位的操作系统则使用X86版本的OpenCV。其实这个是不正确的,因为VS C++环境64位或32位平台不是由操作系统决定的,而是用户自己选择,如下图:
上图中,配置选项一般选择Debug,另一个选择是Release;平台选项就是选择64位还是32位编译平台。这个不是根据操作系统来确定的,是可以自由选择(或者按需选择),但是平台选择必须和OpenCV的版本一致,我下载的OpenCV是X64,所以我必须选择X64平台。如果想用32位平台,那就下载X86的OpenCV。
2.无法打开库文件
无法打开文件 opencv_world344d.lib
只要是已经将opencv_world344d.lib添加在链接器的附加依赖项中,这个问题是不会出现的。我之所以出现,是因为将库目录的路径开始写错了,写成了opencv/build/x64/VS15/bin,而正确的应该是opencv/build/x64/VS15/lib。
3.找不到执行文件
找不到opencv_world344d.dll
接二连三的问题真是奔溃了,但是问题还是得解决,结果原因很简单。我在添加环境变量路径之前已经打开了VS,所以VS此时还识别不了新添加的路径,必须重启VS。重启之后顺利解决问题,最后终于大功告成。。