在图像相关项目中一般都会使用到强大的Opencv库,有时候还需要裁剪或者修改源码适应自己项目。今天就介绍下在Windows下如何编译和配置opencv。
准备工作
我的操作系统是win7 64位操作系统,再编译opencv前我们需要先准备好以下工具:
1.安装CMake
先到官网下载Cmake编译工具,我在安装最新版本3.15.3
后在编译过程中会出现缺少unistd.h
的问题,后改为3.10.2
版本不会有问题。
2.下载opencv源码
到opencv官网下载opencv的源码,我下载的opencv-3.4.1-vc14_vc15
版本,这个根据自己需求下载,最好先查阅下工具之间的依赖版本,不然会出现各种兼容性问题。
下载后解压,目录结构如下
3.下载安装Vistual Studio
官网下载安装编译IDE,我安装的是VS2017。
编译opencv
有了以上的工具和opencv源码后我们就可以开始编译了~
首先安装下载的Cmake,在安装过程中注意选择把工具加入环境变量,省去后面手动添加环境变量。 然后打开Cmake,编译目录里选择刚下载的opencv源码对应目录
点击configure
,选择自己的编译IDE,我的是VS2017 win64
配置成功后会出现Configuring done
,如下图
然后手动勾选掉BUILD_EXAMPLES
和BUILD_opencv_world
,还可以把不需要编译的勾选掉,然后再点击Configure
,再次执行配置,完成后界面如下
该步骤完成后选择generate
,顺利的话会提示generating done
,如下图:
配置成功后,就需要打开IDE开始编译了,点击open Projec
打开VS2017后,选择生成
–批生成
在弹出框中选择INSTALL
的两个选项,(我这里是因为已经生成了所以是uninstall)
接着就是等着编译了,这个时间比较长,成功后会在E:opencvopencv-3.4.1-vc14_vc15opencvbuildinstallx64vc15bin目录下会生成相应的动态库
到此,win系统本地编译OpenCV的工作就全部完成了~
使用opencv
下面我们了解下在工程中如何使用我们编译的库
添加环境变量
右击电脑
-> 属性
-> 高级系统设置
-> 环境变量
-> 系统变量
-> 编辑Path
-> 添加环境变量E:opencvopencv-3.4.1-vc14_vc15opencvbuildinstallx64vc15bin
新建工程
1.打开VS,新建一个空工程
2.右键工程进入工程属性页面
先查看下常规
–输出目录
然后找到这个目录把我们生成好的dll和Lib(在E:opencvopencv-3.4.1-vc14_vc15opencvbuildinstallx64vc15目录中)拷贝到这个输出目录
3.进入C/C
-> 常规
-> 附加包含目录
进行编辑,把以下三个目录添加进来
4.进入链接器
-> 附加库目录
把lib库目录添加进来
4.进入链接器
-> 输入
-> 附加依赖项
添加lib包
配置完成了~下面就可以使用opencv的API了
调用opencv
我们在.cpp里添加最简单的测试代码,显示一张图片
代码语言:javascript复制#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再运行
完成!~~~
记一枚问题
如果在运行中遇到了“是否忘记了向源中添加”#include"pch.h""
解决方案:
右键工程
->属性
->配置属性
->C/C
->预编译头
->右边选择不使用预编译头
再记一枚问题
在编译中出现不存在opencv2opencv.hpp
的或者windows 64位 VS2017 模块计算机类型“x64”与目标计算机类型“X86”冲突
(1)链接器 ->
高级->
目标计算机设置为
MachineX64 (/MACHINE:X64)`
(2)链接器
->命令行
->其他选项
设置为MachineX64 (/MACHINE:X64)
(3)生成
->配置管理器
->活动解决方案平台
设置为X64