前言
唉,在忙毕设的事儿,好久没来耕耘了,地都荒了,,= =
最近因为要做毕设,要用到Opencv,所以就开始学了,查了一些网上的资料,就打算把从OpenCV的安装到新建OpenCV项目的步骤,完整的记录下来,虽然网上有,但不太详细,而且有点还有点问题,我就索性把完整的配置过程写在一起了,是永久配置的哦。
Opencv,全称Open Source Computer Vision Library,即开源计算机视觉库,基于C语言和C++语言(主要)开发的,后面的版本大部分的都是基于C++的了。可用于计算机视觉、图像处理以及模式识别和跟踪。
Opencv的组成模块
Opencv里包含以下几个模块:
(有个基本的概念即可,个人感觉。)
- core:简洁核心模块。基本函数,基本数据结构;
- imgproc:图像处理模块。线性和非线性图像滤波,几何图像转换,颜色空间转换,直方图等;
- video:视频分析模块。运动估计,背景消除,物体跟踪算法;
- calib3d:基本多视角几何算法,单体和立体相机的标定,对象姿势估计,双目立体匹配算法和元素的三维重建;
- features2d:包含了显著特征检测算法,描述算子和算子匹配算法;
- objdetect:物体检测和一些预定义的物体的检测(如人脸,眼睛,杯子,人,汽车等);
- ml:多种机器学习算法。如K-means,SVM,CNN等;
- highgui:图像和视频输入/输出接口模块。提供一些GUI的接口函数,读取图片和视频等;
- gpu:GPU加速算法,IOS不可以;
- ocl:OpenCL通用算法,IOS不可用;
- 其他辅助模块,如用户贡献的算法。
Opencv的安装配置
1、Opencv的安装包的下载安装
此次开发环境的配置条件如下:
- Opencv-3.1.0
- 64位Win7系统
首先,到Opencv的官网(https://opencv.org)中的安装包下载地址:https://opencv.org/releases 下载自己想下载的版本即可,里面有针对不同平台的,选择和自己相同的平台即可,我这里选的是Windows,版本是V3.1.0(经典版本,网上的资料可能会多些)。
然后,可下载得其安装文件:opencv-3.1.0.exe
双击安装(其实是解压),选择自己的安装目录。
安装完毕后,可在安装目录下看到两个文件夹:build文件夹和sources文件夹。
- build:OpenCV使用时要用到的一些库文件;
- sources:OpenCV提供的一些demo示范源码。
2、配置环境变量
安装完以后,还要进行环境变量的配置(这个不太明白,VS2013用的比较少)。
我的电脑(右键)属性 -> 高级系统设置 (左边栏)-> 环境变量,找到Path变量(下面的系统变量中),选中并点击编辑:
64位系统的需要在Path变量值的后面添加(注意是添加):“D:\Opencv\opencv\build\x64\vc12\bin”,引号里面的部分(\build路径前面一段是你自己Opencv的安装目录)。这里首先注意是添加,然后就要注意在“D:”前面的分号(;),是英文状态下的,分号不能少也不能多(可以用键盘上的左右键盘查看)。
还有,一个要注意的是在x64文件夹下的vc12、vc14两个文件夹,分别对应VS的版本,vc12对应VS2013,vc14对应VS2015。我用的VS2013,所以用的是vc12。
换句话说,可能要使用Opencv只能安装VS2013或VS2015,这是我猜的,应该是。
环境变量配置完毕后,需要重启电脑才能生效!
3、VS2013的配置
在VS中使用外部的类库的话,需要进行配置,配置包括:外部库目录指定和外部包含文件指定,步骤如下:
打开VS2013,新建一个空白的Win32的控制台工程:
选择语言为C++,Win32类型中的控制台工程,并设置工程名称:
指定建立的工程为空白工程,即勾上空白工程(默认是没勾上的)。
建立完项目后,还要进行一些修改。
3.1、点击视图->解决方案资源管理器;
3.2、解决方案资源管理器右键,配置管理器,新建x64平台;
点击,右边的Win32的下拉条(不是左边的Debug,注意,这里我就搞错过一回)里的新建,将ARM改为x64,再点击确定。
3.3 VS中属性管理器的配置
在VS中有个叫“属性管理器”的工具,用于对VS整体参数的配置,配置一次后,以后所有新建项目都能应用该配置,不用再一一进行配置操作,使用起来非常方便,这也就是能永久配置Opencv的开发环境的原因。
点击视图->其他窗口->属性管理器:
在新出现的属性管理器栏中,展开目录,选中Debug|x64的Microsoft.Cpp.x64.user,右键,点击属性,进入属性界面:
3.3.1、配置包含目录:
通用属性->VC++目录->包含目录,然后点击下拉条,编辑:
向其中添加下面三个路径(跟Opencv的安装目录有关,总的格式如下):
D:\Opencv\opencv\build\include
D:\Opencv\opencv\build\include\opencv
D:\Opencv\opencv\build\include\opencv2
3.3.2、配置库文件目录:
完成上面包含目录的配置后,还要进行库文件的配置:
通用属性->VC++目录->库目录,然后点击下拉条,编辑:
向库文件目录下添加Opencv的库文件目录:D:\Opencv\opencv\build\x64\vc12\lib
3.3.3、配置动态链接库
我们可以查看步骤2中添加的库文件的目录下的.lib的的文件列表,只有两个库文件,分别是opencv_world310.lib、opencv_world310d.lib。
opencv_world310.lib是Release模式版本,opencv_world310d.lib是Debug模式版本。
跟上述两个步骤相似,在属性管理器界面,链接器->输入->附加依赖项->下拉条->编辑,根据模式需求添加opencv_world310.lib或opencv_world310d.lib,我这里是添加opencv_world310d.lib到矩形框中。
测试
终于,配置完了,,
这里测试很简单,直接在一个窗口中显示我们指定的图片。
点击视图->解决方案资源管理器,添加源文件:
设置源码的文件名,如main,然后创建此源码文件加至工程:
然后在main.cpp中,添加以下代码:
#include <opencv2/opencv.hpp>
#include <highgui.h>
using namespace cv;
int main()
{
//加载图像
IplImage * ManFaceImage = cvLoadImage("D:\\Opencv\\opencv_program\\ManFaceDetect\\lena.jpg", 1);
if (!ManFaceImage)
{
printf("image load error!");
return 0;
}
cvNamedWindow("SourceImageWindow", 0);//新建窗口
cvShowImage("SourceImageWindow", ManFaceImage);//将图片显示在窗口中
cvWaitKey(0);//等待函数
cvReleaseImage(&ManFaceImage);//释放内存
cvDestroyWindow("SourceImageWindow");//关闭窗口
}
直接复制代码的话,需要将路径:“D:\Opencv\opencv_program\ManFaceDetect\lena.jpg”,改成自己的路径,
并将图片lena.jpg放在工程目录下面,与源码位于同一目录:
运行工程,不出意外的话,会出现以下结果:
恭喜!你终于完成了Opencv在Win7上的环境配置,接下来你可以做很多有趣的事情了~~
还有,本次对Opencv的配置是永久配置,如果你把这个项目关掉,重新新建一个项目,你不必再进行Opencv的配置,你只需走下步骤3.2,新建x64即可(至于这步是不是也可以省了,自己可以测试),然后写代码就行了,是不是很神奇~哈哈哈!(不信的话,自己可以去看步骤3.3里包含的目录,在自己的新建的项目里面是不是已经都有了)
啊啊,这篇博客竟然写了将近3个小时,截图这些太费时间啦,从中午12点半写到下午3点多,好困啊,= =,
我得眯会儿,后面再来检查检查~~有问题会再改的,希望对你有帮助。
主要参考以下两个网站,不是直接抄的哦,我是发现两个网站里说的都有些问题就修改整合了一下,仔细看的话会发现区别的。
参考资料:
https://www.2cto.com/kf/201604/500827.html
https://blog.csdn.net/yun_fung/article/details/79122316#commentBox