OpenCV全称为Open Source Vision Library,最直接的理解就是“开源的计算机视觉库”,实现了图像处理和计算机视觉方面的很多通用算法,常简称为OpenCV,成为了视觉领域最有力的研究工具之一,其设计目标是执行速度尽量快,主要关注于实时应用,采用优化的C/C++代码编写,能够充分利用多核处理器的优势,构建了一个简单的易用的计算机视觉框架,可以帮助计算机开发人员更便捷地设计更复杂的计算机视觉相关的应用程序。覆盖了计算机视觉的许多应用领域,例如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等。从发展以来,不断地进行优化,发布了很多的版本。
以OpenCV3.0.0为例,
1.可以进入官网下载(速度有点慢),或者直接使用百度网盘下载。
2.下载完成后得到opencv 3.0.0.exe文件,双击下载的opencv 3.0.0.exe(相当于是解压程序),提示解压到某个文件夹下,这时候也可以自定义,解压完成后会生成一个opencv文件夹,该文件夹下包含build和sources文件,sources文件夹里包含的是OpenCV官方示例集以及说明文档。
2.配置环境变量
【计算机】------>【(右键)属性】------>【高级系统配置】------->【高级(标签)】------>【环境变量】--->选中环境变量下的变量Path点击下方的“编辑”按钮,会显示以下对话框,在环境变量后面做修改
针对32位的系统,添加“..........opencv\build\x86\vc12\bin”,和之前就存在的环境变量用英文的分号“;”进行分隔,相对于64位的系统可以将“..........opencv\build\x86\vc12\bin”和“..........opencv\build\x64\vc12\bin”都添加进去,这样一来无论是win32还是X64都可以使用。(vc12表示编译环境为Microsoft Visual Studio 2013)。
3.工程包含目录(include)的配置
(1)打开Visual Studio 2013,新建一个基于win32控制台应用程序的空项目,
(2)在新的工程下新建一个cpp源文件
(3)单击菜单栏【视图】--->【其他窗口】---->【属性管理器】如下图所示,
(4)展开项目下的【Debug|Win32】文件夹,右击该文件夹,选择属性一栏下的【通用属性】----->【VC++目录】---->【包含目录】(之所以选择通用属性,是因为这样设置可以永久设定,不需要对每个项目进行单独设定),
(4)选中【包含目录】一栏,点最右边的▽符号出现“编辑”按钮,将以下三个路径添加进去(选择自己的文件路径,最好选择右边的浏览按钮将路径添加进去,否则很可能因为键盘敲写出现问题)
D:\open cv azb\opencv\build\include
D:\open cv azb\opencv\build\include\opencv
D:\open cv azb\opencv\build\include\opencv2
4.工程库目录(lib)配置
(1)和第三步操作类似,在【属性管理器】工作区中右击展开项目下的【Debug|Win32】文件夹,右击该文件夹,选择属性一栏下的【通用属性】------->【VC++目录】------>【库目录】如下图
点击【编辑选项进入】下图,搜索下面的路径,将其添加进去
D:\open cv azb\opencv\build\x86\vc12\lib
(只需要添加这一个,也许会疑问是选择X86还是X64,对32位的系统会想当然地选择X86,但是决定这个选择的是要看程序编译时使用的是哪一个编译器,一般情况下,最好选择X86)
5.链接库的配置
(1)单击【项目】----->【Debug|Win32】---->【属性】---->【链接器】---->【输入】---->【附加的依赖项】将下面的链接库添加进去
opencv_ts300d.lib
opencv_world300d.lib
(2)单击【项目】----->【Release】---->【属性】---->【链接器】---->【输入】---->【附加的依赖项】将
opencv_ts300.lib
opencv_world300.lib
添加进去,(这样一来程序在OpenCV3中就可以同时支持Debug和Release两个版本的使用)
6.进行完以上的五个步骤,可以重启电脑,查看配置是否成功,如果出现缺失opencv_world300.dll文件的情况,可以将X86\vc12\bin文件下的dll文件全部复制到Windows操作系统的目录下。
//---------------------[头文件,命名空间包含部分]------------------
// 描述包含程序所使用的头文件和命名空间
//-----------------------------------------------------------------
#include
//OpenCV图像处理头文件
#include
//包含cv命名空间
using namespace cv;
//控制台程序入口函数
int main()
{
// 载入原始图
Mat img = imread("E:\\pictured\\cat.jpg");
//显示原图
imshow("【原始图像】腐蚀操作", img);
//进行腐蚀操作
Mat element = getStructuringElement(MORPH_RECT,Size(15,15));
Mat dstimg;
erode(img, dstimg, element);
//显示效果图
imshow("【效果图像】腐蚀操作",dstimg);
//等待任意键按下
waitKey(0);
return 0;
}
该算法是基本的形态学运算之一的“腐蚀操作”,利用原始图像中的暗色部分“腐蚀掉”图片中的高亮部分,深入学习OpenCV编程之前可以先进行类似的小程序的调试,可以提高学习的兴趣
运行操作后截图如下,