OpenCV是一个开源的计算机视觉库,它支持C++、python、Matlab等接口,可以帮助我们实现在计算机上进行图像处理的功能。这里我想写写OpenCV的安装和引用。

下载

在OpenCV的官网( http://opencv.org )上的RELEASES选项里,你可以找到OpenCV的各种版本进行下载,还可以找到Windows Pack、iOS Pack版本(有些版本有Android Pack),根据需要下载对应版本即可。(此处因为我是Windows系统,所以下载了目前最新的4.0.0版本的Win Pack,后面安装和使用会使用这个版本来讲解)

安装(解压)

这个过程比较简单,打开文件后会弹出下面的窗口,选好目录后点击Extract,耐心等待解压完成(解压完成后窗口会自动关闭),见下图

opencv4如何降级opencv3 opencv4.0_opencv4如何降级opencv3

opencv4如何降级opencv3 opencv4.0_环境变量_02

引用OpenCV的库(配置开发环境)

OpenCV还仅仅是一个视觉库,若要在C++里引用它的一些函数,就必须在开发环境里配置好它。

首先在Windows系统里设置环境变量,方便计算机能找到程序运行时所需的动态链接库。

具体方法是:右击“我的电脑”->“属性”->“高级系统设置”->“环境变量”

opencv4如何降级opencv3 opencv4.0_opencv4如何降级opencv3_03


打开环境变量设置窗口后,在系统变量里双击“Path"(或选中"Path"后点编辑),在编辑窗口里点“新建”,再点“浏览”,将OpenCV相关的目录添加到环境变量Path里,具体内容是自己解压好的OpenCV目录下的opencv\build\x64\vc14\bin或者opencv\build\x64\vc15\bin(这里两个目录分别对应Visual Studio 2015和Visual Studio 2016,我这里是Visual Studio 2017 Community,为了保险,我把两个目录都添加了进去)

opencv4如何降级opencv3 opencv4.0_Visual_04

然后再来配置Visual Studio.

我以Visual Studio 2017 Community为例来讲述配置开发环境的过程。

打开Visual Studio 2017 Community,新建一个Visual C++的Windows控制台应用程序项目,如图所示。(项目名和存放位置可以自行决定)

opencv4如何降级opencv3 opencv4.0_OpenCV_05


在上方工具栏里点击“视图”->“其他窗口”->“属性管理器”。如图所示。

opencv4如何降级opencv3 opencv4.0_OpenCV_06


然后在属性管理器里点开自己项目里的Debug | x64或者 Release | x64,双击Microsoft.Cpp.x64.user,打开属性页,如下图所示。

opencv4如何降级opencv3 opencv4.0_OpenCV_07


opencv4如何降级opencv3 opencv4.0_opencv4如何降级opencv3_08


(1)在左边选择“VC++目录,点“包含目录”的下拉菜单,选择“编辑”。在自己解压好的OpenCV目录下找到build\include目录和build\include\opencv2,将它们添加到“包含目录”里。

(2)用同样的方法编辑“库目录”。在自己解压好的OpenCV目录下找到build\x64\vc15\lib和build\x64\vc14\lib,将它们添加到“库目录“里。

(3)再点”链接器“->”输入“,点击“附加依赖项”的下拉菜单,选择“编辑”,在上面的白色框里输入以下两个文件名:

opencv_world400.lib(Release用)

opencv_world400d.lib(Debug用)

点“确定”,再点属性页里的“确定”,即配置完成。然后重启计算机。

opencv4如何降级opencv3 opencv4.0_OpenCV_09


我们现在就可以引用OpenCV的相关定义及函数了。

测试程序

以下是测试OpenCV的一个小程序

#include "pch.h"
#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
	Mat img(510, 800, CV_8UC1);//创建一个510×800的单通道图形矩阵,矩阵中的每个元素都是1个8位无符号整数
	for (int i = 0; i < img.rows; ++i)
	{
		for (int j = 0; j < img.cols; ++j)
		{
			img.at<uchar>(i, j) = i % 255;//遍历图像去设置每个像素点的像素值
		}
	}
	imshow("image", img);//显示图形
	waitKey(0);//等待用户操作
	return 0;
}

如果没有意外,应该会显示以下图像:

opencv4如何降级opencv3 opencv4.0_Visual_10

常见问题

1.生成错误,提示无法打开某些头文件

在我配置OpenCV初期,经常出现”无法打开源文件‘opencv2/opencv.hpp’“,”无法打开源文件‘opencv2/core/core.hpp‘”的情况。这是“包含目录”设置不全面的结果。你可能只加了…\opencv\build\include,却忘记添加…\opencv\build\include\opencv2,系统在你设置的目录和工程文件目录里找不到你要包含的头文件,故出错。

2.找不到opencv_world400.dll,无法继续执行代码,重新安装程序可能会解决此问题

这是环境变量没有配置的缘故。虽然我们已经在“附加依赖项“里添加了opencv_world400.dll和opencv_world400d.dll,但是系统却不知道到哪里去找,这时你要把这两个文件放到你自己新建的工程文件夹里,每次新建工程都要如此做,很麻烦。所以事先设定好环境变量,系统在运行程序时便知道到哪里去找需要的文件。

3.其他一些关于老版本与新版本的OpenCV的问题

(1)由于OpenCV不知从什么时候开始,取消了x86的目录。所以在新版本OpenCV的基础上调试和运行相关程序的时候要选择x64类型,否则会出现错误:”LNK1112 模块计算机类型“x64”与目标计算机类型“x86”冲突“。
(2)新版本所依赖的动态链接库没有以前那么多了,由老版本的38个dll文件缩减为2个dll文件,添加起来简单多了。

其他注意事项

OpenCV4.0.1版本的安装方法与此类似,但是注意连接器的命名有变化,为opencv_world401.lib和opencv_world401d.lib

参考资料

【1】OpenCV学习笔记(一)安装及运行第一个OpenCV程序:
【2】win10下VS2013+OpenCV2.4.9环境配置:
【3】环境变量_百度百科:https://baike.baidu.com/item/环境变量/1730949?fr=aladdin