内容概览

  • 安装OpenCV4
  • 在Windows系统安装OpenCV4
  • 配置visual studio 2019
  • 配置包含路径
  • 验证配置结果
  • 在Windows中安装扩展opencv_contrib模块


安装OpenCV4

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

在Windows系统安装OpenCV4

本篇文章将介绍在Windows系统安装OpenCV4和基于visual studio2019的环境配置方式。

1、 下载OpenCV SDK

链接:https://pan.baidu.com/s/1ijyx8mrQdowSJjPaRQBdbQ 提取码:n048

2、 安装

双击opencv-4.4.0-vc14_vc15.exe解压即可,路径可以自行选择。单击【Extract】按钮,便可以等待解压过程的结束。

opencv能用于armv7吗 opencv能用c语言吗_opencv


3、 配置环境变量

右键单击“我的电脑”,并选择【属性】,打开“系统”界面,如下图所示,在这一界面中选择【高级系统设置】,进入“系统属性”界面。

opencv能用于armv7吗 opencv能用c语言吗_c++_02


在“系统属性”界面内单击【环境变量】按钮,并在新跳转出的页面中的“系统变量”部分找到“Path”变量,如图所示,在其后添加如下路径:

C:\Program Files\OpenCV\build\x64\vc15\bin (使用自行选择的解压路径)

opencv能用于armv7吗 opencv能用c语言吗_1024程序员节_03

配置visual studio 2019

配置包含路径

1、 配置环境的主要目的是告诉计算机OpenCV放在哪儿,以及告诉IDE应该去哪里寻找头文件和库文件。首先我们启动vs,创建一个控制台应用。

opencv能用于armv7吗 opencv能用c语言吗_OpenCV_04


2、创建完成后打开项目,修改上方的“Debug”模式,将其修改为“x64”模式,如图:

opencv能用于armv7吗 opencv能用c语言吗_opencv能用于armv7吗_05


3、依次单击界面上方的【视图】->【其他窗口】->【属性管理器】,在右侧会出现“属性管理器”界面,如图所示:

opencv能用于armv7吗 opencv能用c语言吗_opencv能用于armv7吗_06


4、右键“Debug|x64”选择【添加新项目属性表】,添加后双击将其打开,如图所示:

opencv能用于armv7吗 opencv能用c语言吗_opencv_07


5、属性页的“VC++目录”的“包含目录”和“库目录”,以及“链接器”中的“附加依赖项”,便是我们需要修改的地方。在“包含目录”里添加如下两个文件路径:

C:\Program Files\OpenCV\build\include

C:\Program Files\OpenCV\build\include\opencv2

配置库目录:

C:\Program Files\OpenCV\build\x64\vc15\lib

配置链接器:

在“链接器”的“输入”项中的“附加依赖项”添加opencv_world440d.lib,如图:

opencv能用于armv7吗 opencv能用c语言吗_opencv能用于armv7吗_08


此时项目目录中会生成一个属性配置文件,可将其保存下来,下次创建opencv目录直接将该配置导入即可,无需再次配置

opencv能用于armv7吗 opencv能用c语言吗_opencv能用于armv7吗_09

验证配置结果

代码清单 opencvTest.cpp 测试OpenCV4.4是否安装成功

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main() {
	Mat img; //声明一个保存图像的类
	img = imread("D:/C++/openCV/image/lena.png"); //读取图像,根据图片所在位置填写路径即可
	if (img.empty())
	{
		cout << "请确认图像文件名称是否正确" << endl;
		return -1;
	}
	Mat img2;
	imshow("test", img);
	waitKey(0);
	return 0;
}

运行上述程序,可以得到如下图所示结果,这证明OpenCV环境配置成功,可以开启OpenCV的学习之路了。

opencv能用于armv7吗 opencv能用c语言吗_opencv_10

在Windows中安装扩展opencv_contrib模块

安装该模块需要用CMake编译器,可以去官网下载对应安装包自行安装,这里就不再展开。
1、下载opencv_contrib源码
链接:https://pan.baidu.com/s/15KdDZU2Qa-krhUwNwrGLRQ
提取码:hm93
下载后将源码解压到之前opencv解压的目录中。

2、cmake编译

打开cmake-gui,配置opencv源码地址和编译输出路径。

opencv能用于armv7吗 opencv能用c语言吗_opencv能用于armv7吗_11


之后单击【Configure】按钮,选择将源码编译成vs2019的项目工程,同时选择x64和使用本地编译器“Use default native compilers”。

opencv能用于armv7吗 opencv能用c语言吗_c++_12


之后再次单击【Configure】开始构建,出现“Configure done”说明构建成功。在CMake界面会出现很多变量。首先找到“BUILD_opencv_world”和“OPENCV_ENABLE_NONFREE”两个变量,勾上他们后面的方框(前一个变量含义是生成一个大的.lib文件,在配置连接器的时候就只有一个opencv_world440d.lib文件;后一个的意思是可以使用具有专利保护的算法,例如SIFT等)。之后找到OPENCV_EXTRA_MODULES_PATH变量,将其值设为opencv_contrib源码的modules路径。

opencv能用于armv7吗 opencv能用c语言吗_opencv_13


再次单击【Configure】,直到所有的红色变量都变成白色,再单击【Generate】开始执行cmake,完呈之后点击【Open Project】使用vs2019打开工程。

opencv能用于armv7吗 opencv能用c语言吗_OpenCV_14


点击【生成】选择【批生成】

opencv能用于armv7吗 opencv能用c语言吗_c++_15


然后勾选ALL_BUILD和INSTALL,再点击【生成】,耐心等待编译完成即可。

opencv能用于armv7吗 opencv能用c语言吗_OpenCV_16


3、替换配置中的路径

参考前面讲的配置方式,将opencv的路径换成编译生成的路径即可。

C:\Program Files\OpenCV\newbuild\install