前言:OpenCV是视觉领域中应用十分广泛的开源软件库,在实际项目应用中,通常对OpenCV Cmake主要有以下两点:
1.方便调试opencv源码
2.为了与某些库兼容
在Windows下使用Visual Studio 编译OpenCV (本文以win10+vs2017+opencv4.5.2为例)步骤如下:
PS:下载OpenCV、Cmake等可参考这篇博客
一、获取OpenCV对应版本
1.下载OpenCV,进入OpenCV官网。
2.进入Github,找到OpenCV所需要的版本。
3.在OpenCV4.5.2列表中选择Source code(zip)文件,推荐使用迅雷下载。
4.在github里面输入opencv_contrib,下载opencv_contrib4.5.2。
以上步骤完成获取OpenCV对应版本。
二、Cmake下载及安装
1.下载Cmake,进入Cmake官网。
2.进入Download页面,下载所需的版本。
3.选择合适的版本,本文选择3.16.8版本。发现官网上只有最新版本。历史版本需要去github里面下载。
4.进入Github,找到Cmake v3.16.8版本。选择cmake-3.16.8-win64-x64.msi下载。
5.运行cmake-3.16.8-win64-x64.msi,默认安装即可。
以上步骤完成Camke对应版本的安装。
三、Visual Studio 下载及安装
1.进入微软官网,下载Visual Studio。本文在I tell you 下载Visual Studio 2017。
2.选择【开发人员工具】,找到Visual Studio 2017。
3.下载到本地后,运行安装所需模块即可。
以上步骤完成Visual Studio 2017的安装。
四、编译OpenCV
1.将下载的opencv4.5.2解压到指定目录,将opencv_contrib4.5.2解压放入到opencv4.5.2目录下。
2.在opencv4.5.2目录下新建bulid_x64文件夹
3.打开Cmake,添加OpenCV源码位置及编译位置。
4.点击【configure】,弹出配置框,按下图设置。
5.点击配置框里面的【Finish】,开始配置。出现Configuring done表示配置结束。
6.Cmake里面有许多模块,可以根据实际情况选择。
勾选BUILD_opencv_world
如果不需要python模块,可以去掉python相关的模块
添加opencv_contrib模块路径
如果需要CUDA模块,对应勾选CUDA相关模块。默认不勾选。
7.点击【generate】,开始生成。
PS:需要科学上网(fan qiang),如果无法科学上网,会有很多文件无法下载导致编译失败。OpenCV4.5.2的Cmake文件可以点击OpenCV4.5.2的Cmake文件下载以便节约时间。
8.CMakeDownloadLog.txt里面记录了所需文件的下载地址和状态,如果下载失败,可以根据里面的下载地址使用迅雷,可以将一部分的文件下载下来。部分即使有地址,也无法访问导致失败。(不要问我为什么,过来人你懂的)
如果是编译OpenCV4.5.2 推荐第七点直接下载OpenCV4.5.2的Cmake文件。其他版本会麻烦些。
9.使用OpenCV4.5.2的Cmake文件无需再次下载,直接编译成功。
10.点击【Open Project],打开OpenCV 工程。
11.右键解决方案,点击【批生成】
12.勾选ALL_BUILD、INSTALL等生成即可。这个过程比较耗时(约一小时左右)。
五、测试OpenCV
1.将编译完成的OpenCV加载到新的工程下。打开编译文件build_x64文件夹,找到install文件夹(包含opencv的lib文件和dll)、include文件夹(包含所需头文件)。
2.打开VS2017,创建控制台程序。打开项目属性,将lib文件和头文件对应放在库目录和包含目录里面
3.将lib文件添加到链接器->输入->附件依赖项 :opencv_world452d.lib。
4.测试代码
#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
Mat picture = imread("test.jpg"); //图片的路径
imshow("测试OpenCV", picture);
system("pause");
return 0;
}
5.程序正常运行,大功告成。