Windows编译opencv库

2021-01-29 10:35:39 浏览数 (1)

在图像相关项目中一般都会使用到强大的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_EXAMPLESBUILD_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

0 人点赞