【一】opencv简介
opencv(Open Source Computer Vision Library)是一个开放源代码的计算机视觉库,最初由英特尔公司发起并开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用,现在美国 Willow Garage 为 opencv 提
供主要的支持。 opencv可用于开发实时的图像处理、计算机视觉以及模式识别程序,目前在工业界以及科研领域广泛采用。
opencv由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。opencv拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
可以在这里学习:
opencv中文网
W3Cschool
【二】安装配置
1.下载安装opencv
从官网下载opencv:下载链接
选择你需要的版本进行下载,现在(2017/5/31)的最新版本是3.2.0,但不建议下载最新版,因为最新版的参考文档一般较少,除非你是真的需要最新版的东西,新手学习一般下载低版本较好(以下描述以opencv2.4.9+vs2013为例,其他版本类似)。
下载之后会得到一个.exe文件,双击运行,填入安装路径并记住这个路径,后面环境配置需要用到。如下图:
2.系统环境配置
【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量(或用户变量)中的PATH->在变量值里面添加相应的路径,64位系统添加路径为:”安装路径\opencv\build\x86\vc10\bin”,32位系统添加路径为:”安装路径\opencv\build\x64\vc10\bin”,如下图:
3.工程配置
在visual studio中新建项目,并进行配置,具体流程如下图:
<1>新建项目
<2>
<3>注意选择空项目和关闭安全检查:
<4>debug配置,双击debug
<5>输入之后点击确定
F:\opencv\opencv\build\include
F:\opencv\opencv\build\include\opencv
F:\opencv\opencv\build\include\opencv2 这三个目录。
<6>输入之后点击确定
F:\opencv\build\x86\vc12\lib
如果是要使用静态链接,则输入F:\opencv\build\x86\vc12\staticlib
<7>附加依赖项中输入之后点击确定
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
如果是静态链接,还需在最前面加上:
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
zlibd.lib
<8>回到上述第4步
双击release,重复5~7步,不过第7步中输入变为:
opencv_ml249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
同理,如果是静态链接,则在最前面加上:
IlmImf.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
zlib.lib
<9>修改运行库版本,选择对应的版本,例如:如果opencv需要静态链接,且进行的是release版本配置,则选择MT。如果要动态链接,且进行的是debug版本配置,则选择MDd。
需要注意的是,第六步选择的链接库目录一定要和这一步选择的运行库版本一致,静态库就选静态库,动态库就选动态库,如果不一致则报错。
点击确定,到此为止,配置完成。
3.测试
输入如下测试代码并运行:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(){
const char* path = "F:/test.jpg";
//从文件中读入图像
Mat img = imread(path);
//如果读入图像失败
if (img.empty()){
fprintf(stderr, "Can not load image %s\n", path);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}
当看到你输入路径对应的图片时,说明你的配置成功了
可以在工程目录下的debug和release目录下找到对应版本的exe,如果是静态链接,则可以直接将exe在其他没有安装opencv的电脑上运行,如果不是,则需要拷贝对应的动态库过去,具体方法自行百度。