不止于OpenCV的安装配置教程!工程实用!
- 一、运行原理
- 二、OpenCV的下载与安装
- 三、洞悉OpenCV
- 四、VS2017下的OpenCV配置
- 1、添加OpenCV文件到工程目录下
- 2、工程属性设置
- 3、一个预料之中的错误
一、运行原理
.cpp | .h |
.obj | .lib |
.exe | .dll |
一个浅显的理解:一个代码的源文件(.cpp)到一个可执行的文件(.exe)需要经过编译和链接两个主要过程。编译的过程需要用到静态链接库文件(.lib),链接过程需要用到动态链接库文件(.dll)。
二、OpenCV的下载与安装
下载链接戳它?:OpenCV官网下载
选择与设备匹配的OpenCV版本(下述为最新版本),下载后文件类型是应用程序,双击运行,生成一个名为opencv的文件夹
三、洞悉OpenCV
主要组成部分是名为source和build的两个文件夹,OpenCV是Inter的一个开源库,source文件夹下是源码,我们主要使用的是build下的东东。
我们打开build,如下图,我们要用的是include和x64(x64根据版本不同会是不同的对应名称)。
- 打开include会是一个opencv2的文件夹,其下是很多我们要用的h和hpp文件。
- 打开x64可以看到vc15和vc14两个文件,这意味着要这两个版本及以上版本才适用我们所下载的这个版本的OpenCV。
- 打开vc15(或vc14),可以看到bin和lib两个文件夹。
- 我们要用的lib文件就在lib文件夹下,在最新的OpenCV中,所有的lib文件都打包在一个名为opencv_world401和opencv_world401d的lib文件中,带d的表示为Debug版本(开发者使用版),不带d的表示Release版本(用户使用版)。
- 我们要用的dll文件就在bin文件夹下,在最新的OpenCV中,所有的dll文件都打包在名为opencv_world401和opencv_world401d的dll文件中。
四、VS2017下的OpenCV配置
打开VS2017创建一个名为OpenCVTest的工程,新建一个名为Test的源文件。在文件资源管理器中打开项目,找到Test.cpp的同级目录。
1、添加OpenCV文件到工程目录下
下述操作的目的是将我们需要h/hpp文件和lib文件复制到工程下。
- 在Test.cpp的同级目录下新建一个名为OpenCV_Include的文件夹
- 去到我们刚才安装的opencv(E:\opencv\build\include)下将文件夹opencv2复制到OpenCV_Include中。
- 去到我们刚才安装的opencv(E:\opencv\build\x64\vc15)下将文件夹lib复制到OpenCV_Include中。
2、工程属性设置
在菜单栏点击项目,在下拉的选项中点击最后一项——OpenCVTest属性,将出现下图。
- h/hpp文件的添加:
点击VC++ 目录点击包含目录进行编辑,将我们刚才复制到OpenCV_Include下的文件夹opencv2添加进来,如下
- lib文件的添加:
点击VC++ 目录点击库目录进行编辑,将我们刚才复制到OpenCV_Include下的文件夹lib添加进来,如下
- 附加依赖项的添加:
点击链接器下的输入,编辑附加依赖项,打开E:\OpenCVTest\OpenCVTest\Opencv_Include\lib,复制其lib文件的名字,记住要选择带d的哈!
3、一个预料之中的错误
我们在Test.cpp中写上下列读取图片的代码,作为对OpenCV环境配置的测试
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("E:\\ImgSets\\Miss Lin.jpg");
imshow("Hi! Miss Lin", img);
waitKey(5000);
return 0;
}
调试通过但是出现了下图所示的错误
回顾第一大点,我们一路下来添加了h/hpp、lib,但还没有添加dll!而我们知道exe需同dll文件一起,程序才能够正常运行。于是我们打开一开始安装好的opencv(E:\opencv\build\x64\vc15\bin),将opencv_world401d.dll复制到我们的OpenCVTest.exe同级下的目录(E:\OpenCVTest\x64\Debug)。