
·应用研究·
教字技术与应用被学技术
Ubuntu下基于OpenCV的Canny边缘检测
许才微
(南京消防士官学校文化教研室南京211133)
摘要:详期地介结了用于数字图像处理的开放源代码的计算机视竞类库一OpenCV。利用OpenCV中的数字图像处理画数使复杂的问题变得简单化。介绍了OpenCV的待点和功能,讨论了在buntu环境下加何配置OpcnCV,最后在此基础上给出了一个Ca nny边媒检测应用实例,其对数字图像处理的研究具有一定的实用价值。
关键词:数字图像处理计算机视觉
中图分类号:TP391.41
OpenCV
文献标识码:A
Lbuntu
文章编号:10079416(2011)01-005302
CannyedgedetectionbasedonOpenCVinUbuntu
Xu Caijing
(Nanjingfire-fightingsergeancycomestoschool
Culture teachingnanjing 211133
Abstract,Deseribed in detail for digital image processing of the open source computer vision libraryOpenCV,Use OpenCV in digital image processing funetions can simplifly the complex problem,Deseribes the features and funetions of OpenCV,and d iscussod how to eonfigure the OpenCV in the Ubuntu environmcnt.Finally,base on Canny edge dctection is given an applica tion example.It has certain practical valuc on the research of digital image processing.
aaoosaaaoe
1.引言
近年来,无论在生活还是在T程运用中涉及到得图像绝大多数是数字图像。它是用一个数字阵列表示的,该阵列的每个元索称为像索,该像紫是组成数字图像的基本元索,按照某种规律变成一系列二进制代码(0 和1)来表示图像上的每个点,所以又被称为离散图像。对数字图像的处理已广泛应用到工业、农业、微生物、医学、航空航天及国防等诸多领域。
随着数字图像处理应用的日益广泛,数量大,处理时间长和速度慢等缺点也显现出来。虽然随着处理器速度和内存容量的指数式增长,上述的间题有所改善,但问题还是相当突出。所以研究者不断地开发出图像处理的高效算法及图像处理的软件包,这此软件包对计算机图像处理和计算机视觉的研究提供很大的使利,但是也存在着诸多的缺点:(1)大多数软件包没有高级数学计算函数:(2)MatLab是图像处理很好的软件,但是它的运行速度是不能忍受的:(3)绝大多数的软件包不支持可嵌人性等。
本文主要介绍OpenCV(opensourceco mputervisionlibrary)的特点,以及它在U buntu环境下的配置,最后给出了一个Cann y边缘检测应用实例。
2.OpenCV介绍
开发源代码的计算机视觉类库OpenC V是由Intel公司位于俄罗斯的研究实验室开发出来的。为了考患计算的速度,大多数图像处理的软件包是用C/C++编写的,Op enCV也不例外,它是由300多个C函数和C ++类所组成的库,在IPL(imageprocesing
万方数据
library)基础上发展面来的。主要由4个模块组成:(1)cV:主要的OpenCV函数:(2)cvau x:辅助性的OpenCV函数:(3)cxcore:数据结构与线性代数支持:(4)highgui;图像界面函数。
3.OpenCV的特点
虽然很多文献都提到了OpenCV的特点,但是都没有对其进行系统地描述总结,本文对其特点进行了归纳总结,如下:
(1)具有良好的独立性。包含了300多个 C函数和C++类,不依赖于外部库,即可独立运行,也可以运行时使用其它外部库。(2) 具有良好的跨平台性。OpenCV是由跨平台的中高层API构成,为程序员提供了能在很多平台上都适用的移植性好的算法基础操作,很好地支持Windows,Linux、Unix 及MacOS等操作系统,可以在大多数的C/ C++编译器下.T.作,如:MSVC++6.0、MS VC++.NET 2003,MSVC++.NET 200 5,Borland C++Builder和Ubuntu等,可以作为二次开发的理想工具。(3)具有丰富的图像处理函数,OpenCV包含了列表、队列、集合、图等基本的数据结构;求特征值、奇异值等的矩阵和向量及线性代数的模作;图像滤波、边缘检测、角点检测,数学形态学操作等的基本数字图像处理;还包括对图像的高级处理,如特征检测与跟踪、运动分析,目标分割与识别以及3D重建等各种应用。(4)处理速度快。OpenCV中的算法都是基于封装于IPL的具有很高灵活性的动态数据结构,基于Intel处理器指令集开发的优化代码,所有处理的速度相当快。而且还提供了一些与请如Eic.Ch,MatLab 等其它语盲环境的结构,这些接口在其安
装后位于opencv/interaces目录下,(5)具有开放性。OpenCV不论对商业还是非商业都是免费的,而且它的代码也是公开的,研究者可以对它的源代码进行修改,也可以把自己研发的新类库加进去,这样自己的代码也能被别人广泛的使用,加快代码的升级效率。
使用OpenCV库可以编写出简洁面且高效的代码来解决数字图像处理和计算机视觉编程中的问题,这样不仅降低了程序员开发程序的难度,而且缩短了相关程序的开发周期。
4、图像编程实例
(1)更新下载更新软件包列表信息: aptget update
查询OpenCV相关软件包 aptcache search opencv 安装相关软件包:
(如果只是用来运行OpenCV程序,仅需安装libcv1,libcvaux1,libhighgui1)
aptget install libcv1 libcvaux1 libh ighguil
(如果你要使用OpenCV来编写程序,那么还需要安装libcvdev,libcvaux-dev,li bhighguidev包)
aptget install libcvdev libcvaux dev libhighguidev
(2)下载源码:从网站http://sourcefor ge.net/projects/opencvlibrary下载Open CV源码,比如下载名称为opencv-1.0.0.t ar.gz.
(3)解压文件:
输入下列指令即完成文件解压,解压后的文件保存在opencv-1.0.0文件夹中。
Digital technologyand application数字技术与应用
53