Windows编译opencv库
![作者头像](https://developer.qcloudimg.com/http-save/10011/796e4dc412fd39e519c135bb253e29c6.jpg)
在图像相关项目中一般都会使用到强大的Opencv库,有时候还需要裁剪或者修改源码适应自己项目。今天就介绍下在Windows下如何编译和配置opencv。
准备工作
我的操作系统是win7 64位操作系统,再编译opencv前我们需要先准备好以下工具:
1.安装CMake
先到
官网
下载Cmake编译工具,我在安装最新版本
3.15.3
后在编译过程中会出现
缺少unistd.h
的问题,后改为
3.10.2
版本不会有问题。
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/2l8unbx60y.png)
2.下载opencv源码
到
opencv官网
下载opencv的源码,我下载的
opencv-3.4.1-vc14_vc15
版本,这个根据自己需求下载,最好先查阅下工具之间的依赖版本,不然会出现各种兼容性问题。
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/8yh6jyipc5.png)
下载后解压,目录结构如下
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/5rdbm5tse1.png)
3.下载安装Vistual Studio
官网 下载安装编译IDE,我安装的是VS2017。
编译opencv
有了以上的工具和opencv源码后我们就可以开始编译了~
首先安装下载的Cmake,在安装过程中注意选择把工具加入环境变量,省去后面手动添加环境变量。 然后打开Cmake,编译目录里选择刚下载的opencv源码对应目录
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/2l5wl2ebar.png)
点击
configure
,选择自己的编译IDE,我的是
VS2017 win64
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/8zta783s45.png)
配置成功后会出现
Configuring done
,如下图
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/vehvvht2ua.png)
然后手动勾选掉
BUILD_EXAMPLES
和
BUILD_opencv_world
,还可以把不需要编译的勾选掉,然后再点击
Configure
,再次执行配置,完成后界面如下
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/hswddhw3no.png)
该步骤完成后选择
generate
,顺利的话会提示
generating done
,如下图:
配置成功后,就需要打开IDE开始编译了,点击
open Projec
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/9ni1sqojpd.png)
打开VS2017后,选择
生成
–
批生成
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/tiehhf4ky2.png)
在弹出框中选择
INSTALL
的两个选项,(我这里是因为已经生成了所以是uninstall)
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/ltg8xajopz.png)
接着就是等着编译了,这个时间比较长,成功后会在E:\opencv\opencv-3.4.1-vc14_vc15\opencv\build\install\x64\vc15\bin目录下会生成相应的动态库
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/ltq3z43mj7.png)
到此,win系统本地编译OpenCV的工作就全部完成了~
使用opencv
下面我们了解下在工程中如何使用我们编译的库
添加环境变量
右击
电脑
->
属性
->
高级系统设置
->
环境变量
->
系统变量
->
编辑Path
-> 添加环境变量
E:\opencv\opencv-3.4.1-vc14_vc15\opencv\build\install\x64\vc15\bin
新建工程
1.打开VS,新建一个空工程
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/0oyvvloov7.png)
2.右键工程进入工程
属性页面
先查看下
常规
–
输出目录
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/ysd0rzcsmv.png)
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/b58mqwi3iv.png)
然后找到这个目录把我们生成好的dll和Lib(在E:\opencv\opencv-3.4.1-vc14_vc15\opencv\build\install\x64\vc15目录中)拷贝到这个输出目录
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/hqdyilx61v.png)
3.进入
C/C++
->
常规
->
附加包含目录
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/di6ogb8d2i.png)
进行编辑,把以下三个目录添加进来
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/vteikvw8is.png)
4.进入
链接器
->
附加库目录
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/k8dswgtp4q.png)
把lib库目录添加进来
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/ut48e4a1wa.png)
4.进入
链接器
->
输入
->
附加依赖项
添加lib包
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/p5y1trdm5e.png)
配置完成了~下面就可以使用opencv的API了
调用opencv
我们在.cpp里添加最简单的测试代码,显示一张图片
#include<opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
Mat img = imread("E:\\test.png");
imshow("img", img);
waitKey(0);
return 0;
}
运行~可以看到我们的test 图片。如果首次出现图像为空的错误,可以重启下IDE再运行
![在这里插入图片描述](https://ask.qcloudimg.com/http-save/yehe-6154534/kxh81cmjjz.png)
完成!~~~
记一枚问题
如果在运行中遇到了“是否忘记了向源中添加”#include"pch.h""
解决方案:
右键工程
->
属性
->
配置属性
->
C/C++
->
预编译头
->
右边选择不使用预编译头