《基于边缘检测法的运动目标的提取.docx》由会员分享,可在线阅读,更多相关《基于边缘检测法的运动目标的提取.docx(51页珍藏版)》请在三一办公上搜索。
1、LANZHOU UNIVERSITY OF TECHNOLOGY毕业论文题 目 基于边缘检测法的运动目标的提取 学生姓名 杨丽霞 学 号 09250130 专业班级 通信工程(1)班 指导教师 侯亮 李立 学 院 计算机与通信学院 答辩日期 2013年6月13日 基于边缘检测法的运动目标的提取Edge detection method based on the moving object extraction杨丽霞(Yang Lixia)09250130兰州理工大学毕业论文摘要在智能视频监控、运动分析应用中,一个基础而又关键的任务是从视频序列中实时地检测和提取出运动目标,以便于对运动目标进行检
2、测和跟踪。当前边缘检测技术应用广泛、发展非常迅速。它是图像处理的一项重要内容,在模式识别、图像理解、人工智能等领域发挥着重要作用。本论文是基于边缘检测法的运动目标的提取。运动目标的提取分为,图像采集、图像灰度化、图像滤波、图像边缘检测几个主要步骤。本文先介绍了图像处理及边缘检测的一些基本内容,然后完成整体流程,通过理论分析从Roberts算子,Sobel算子,LoG算子,Canny算子四种典型的边缘检测算法选择最佳算法Canny算法,通过Matlab编程仿真对调用各算子函数算法进行实现,最终完成边缘检测及运动目标的提取。关键词:Canny算子;边缘检测;两帧差分;运动目标提取IAbstract
3、In the applications of intelligent video surveillance and motion analysis ,a basic but crucial task in real time from video sequences is to detect and extract the moving targets, so that to detect and track the moving target . The current edge detection technique is widely used, and is developing ve
4、ry rapidly. It is an important content of image processing, in areas such of pattern recognition, image understanding, artificial intelligence and other areas plays an important role.Edge detection of the moving object extraction is studied in this paper. The extraction of moving targets are divided
5、 into, image acquisition, image gradation, image filtering, image edge detection . This article first introduced the image procession and edge detection with some basic content, and then through theoretical analysis from Roberts operator, Sobel operator, LoG operator, Canny operator four typical edg
6、e detection algorithm to selects the best algorithm Canny algorithm. Through Matlab simulation of the operater function algorithm implementation , the goal of edge detection and moving object extraction has been achieved.Keywords:Canny operator; Edge detection; Two difference method; Moving object e
7、xtractionII目录第1章 绪论1第2章 边缘检测概述及各算子介绍32.1边缘检测概述32.2 边缘检测算子62.2.1 微分算子62.2.2 高斯拉普拉斯算子(Laplacian of a Gaussian,LoG)82.2.3 Canny算子9第3章 基于边缘检测的运动目标提取算法选择及实现133.1应用软件介绍133.2 算法的选择133.3 Canny算法基本原理143.4 基本流程与实现143.4.1基本流程图143.4.2 图像采集及预处理153.4.3 图像背景处理163.4.4 高斯滤波173.4.5 基于Canny算子的边缘检测173.4 不同算子比较19第4章 总结2
8、2参考文献23附录251:论文应用程序252:外文文献283:外文翻译37致谢45III第1章 绪论图像是一种重要的信息源,图像处理的最终目的就是要帮助人类理解信息的内涵。数字图像处理技术的研究内容涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘学科。随着计算机技术的迅猛发展,图像处理技术已经广泛应用于各个领域。近30年来该技术取得了令人瞩目的成就1。数字图像边缘检测技术起源于20世纪20年代,当时受条件的限制一直没有取得较大进展,直到20世纪60年代后期电子技术、计算机技术有了相当的发展,数字图像边缘检测处理技术才开始进入了高速发展时期。经过几十年的发展,数字图像
9、边缘检测处理技术目前己经广泛应用于工业、微生物领域、医学、航空航天以及国防等许多重要领域,多年来一直得到世界各科技强国的广泛关注2。数字图像边缘检测处理技术在最近的10年发展尤为迅速,每年均有数以百计的新算法诞生,其中包括canny算法、小波变换等多种有相当影响的算法,这些算法在设计时大量运用数学、数字信号处理、信息论以及色度学的有关知识,而且不少新算法还充分吸取了神经网络、遗传算法、人工智能以及模糊逻辑等相关理论的一些思想,开阔了进行数字图像边缘检测处理的设计思路2。数字图像边缘检测处理,即用计算机对图像的边缘进行处理,这一技术是随着计算机技术发展而开拓出来的一个新的应用领域,汇聚了光学、电
10、子学、数学、摄影技术、计算机技术等学科的众多方面。图像边缘检测处理作为一门学科已经被美国数学学会列为应用数学的一个研究分支。在其短暂的发展历史中,已经被成功的应用在几乎所有与成像有关的领域。近年来,图像分析和处理紧紧围绕理论、实现、应用三方面迅速发展起来。它以众多的学科领域为理论基础,其成果又渗透到众多的学科中,成为理论实践并重,在高新技术领域中占有重要地位的新兴学科分支。边缘检测是一个基本的工具用于大多数图像处理应用程序获得信息从帧作为前体的一步特征提取和对象分割。这过程检测对象的轮廓和边界对象和背景之间的图像。一个边缘检测滤波器也可以用来改善出现模糊或反锯齿的视频流。基本的边缘检测算子是一
11、个矩阵的面积梯度运算,以确定不同的像素之间的方差水平。的边缘检测算子来计算所选择的像素为中心的矩阵区域的中心的形成的矩阵。如果矩阵区域的值,这是一个给定的阈值以上,则中间的像素被分类为边缘。基于梯度的边缘探测器是Roberts,Prewitt和Sobel算子的例子。所有的基于梯度的算法的计算强度正交给对方,常用的垂直和水平方向的斜率。斜坡的不同组成部分的贡献相结合,得到的边缘强度的总价值3 。随着科技的发展,许多高新知识都已经在图像处理上得到了广泛应用,并取得了较好的效果,但是,一些经典的图像处理方法仍然有其生命力,实际应用中还是离不开一些基本的技术。Matlab是一种向量语言,它非常适合于进
12、行图像处理。而边缘检测是图像处理中基础且重要的课题,图像分析和理解的第一步常常是边缘检测4。当前边缘检测技术应用广泛、发展非常迅速。它是图像处理的一项重要内容,在模式识别、图像理解、人工智能等领域发挥着重要作用。传统的边缘检测算法面临着许多难以克服的问题,同时由于图像本身的复杂性和边缘检测技术发展所遇到的难题,边缘检测本身也是一个难题。然而,至今发表的有关边缘检测的理论和方法尚存在许多不足之处,比如在检测精度和去噪方面很难达到令人满意的效果。本论文主要包括两部分,第一部分是基础部分,包括前两章内容,主要介绍了基础概念和基本特性,以及Matlab在本课题中的应用;第二部分是课题研究部分,包括第三
13、章和第四章,主要介绍基本理论和方法在Matlab中的仿真和结果分析。基础部分中,第一章是绪论,绪论部分主要介绍研究背景、研究目的和意义以及研究现状。第二章是图像边缘检测的概述、边缘检测的原理以及算法,其中会介绍到Robert算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、Canny算子、拉普拉斯高斯(LOG)算子等等。主要是Matlab在图像处理中的应用简单介绍。课题研究部分,第三章是依照课题所需进行算法选择和基本流程确定,然后按照流程进行编程。最后一章是仿真程序及结果分析,总结课题研究。46第2章 边缘检测概述及各算子介绍2.1边缘检测概述边缘检测是图像处理和计
14、算机视觉中的术语,尤其在特征检测和特征抽取领域,是一种用来识别数字图像亮度骤变点即不连续点的算法。尽管在任何关于分割的讨论中,点和线检测都是很重要的,但是边缘检测对于灰度级间断的检测是最为普遍的检测方法5。虽然某些文献提过理想的边缘检测步骤,但自然界图像的边缘并不总是理想的阶梯边缘。相反,它们通常受到一个或多个下面所列因素的影响:1.有限场景深度带来的聚焦模糊;2.非零半径光源产生的阴影带来的半影模糊;3.光滑物体边缘的阴影;4.物体边缘附近的局部镜面反射或者漫反射。一个典型的边界可能是(例如)一块红色和一块黄色之间的边界;与之相反的是边线,可能是在另外一种不变的背景上的少数不同颜色的点。在边
15、线的每一边都有一个边缘。图像的边缘是指图像局部区域亮度变化显著的部分。该区域的灰度剖面一般可以看做一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图像的边缘部分集中了图像的大部分信息,图像的边缘的确定与提取对于整个图像场景的识别与理解是非常重要的同时也是图像分割所依赖的重要特性。边缘检测主要是图像的灰度变化的度量、检测和定位。边缘:不同区域的分界线,是图像局部灰度变化最显著的那些像素的集合。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。边缘检测原理:边缘检测是根据数字图像中的突变信息检测图像的边缘灰度的不连续性,找出两种景物的分界线。根据灰
16、度变化的特点,可分为阶跃型、屋顶型、和凸缘型,如图2.1所示。 阶跃型 凸缘型 屋顶型图2.1 边缘灰度变化利用边缘检测来分割图像,其基本思想就是先检测图像中的边缘点,再按照某种策略将边沿点连接长轮廓,从而构成分割区域。由于边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开,因此边缘检测技术对于数字图像十分重要6。图像中某物体边界上的像素点,其领域将是一个灰度级变化带。衡量这种变化最有效的两个特征就是灰度的变化率和变化方向,它们分别以梯度向量的幅值和方向来表示。对于连续图像f(x,y),其方向导数在边缘(法线)方向上有局部最大值。因此,边缘检测就是求f(x,y)梯度的局部最大值
17、和方向。最早的边缘检测方法都是基于像素的数值导数的,在数字图像中应用差分代替导数运算。由于边缘是图像上灰度变化比较剧烈的地方,在灰度变化突变处进行微分,将产生高值,因此在数学上可用灰度的导数来表示变化。边缘检测是先利用边缘增强算子,突出图像中的局部边缘,然后定义像素的“边缘强度”,通过设置阈值的方法提取边缘点集。但是由于噪声和图像模糊,检测到的边界可能会有间断的情况发生。所以边缘检测包含以下两项内容:(1) 用边缘算子提取边缘点集。(2) 在边缘点集合中饭去除某些边缘点,填充一些边缘点,将得到的边缘点集连接为线。要做好边缘检测初步准备条件如下:第一,清楚待检测的图像特性变化的形式,从而使用适应
18、这种变化的检测方法。第二,要知道特性变化总是发生在一定的空间范围内,不能期望用一种检测算子就能最佳检测出发生在图像上的所有特性变化。当需要提取多空间范围内的变化特性时,要考虑多算子的综合应用。第三,要考虑噪声的影响,其中一个办法就是滤除噪声,这有一定的局限性;再就是考虑信号加噪声的条件检测,利用统计信号分析,或通过对图像区域的建模,而进一步使检测参数化。第四,可以考虑各种方法的组合,如先找出边缘,然后在其局部利用函数近似,通过内插等获得高精度定位。第五,在正确检测边缘的基础上,要考虑精确定位的问题。经典的边缘检测方法得到的往往是断续的、不完整的结构信息,噪声也较为敏感,为了有效抑制噪声,一般都
19、首先对原图像进行平滑,再进行边缘检测就能成功地检测到真正的边缘。从人的直观感受来说,边缘对应于物体的几何边界。图像上灰度变化剧烈的区域比较符合这个要求,我们一般会以这个特征来提取图像的边缘。但在遇到包含纹理的图像上,这有点问题,比如说,图像中的人穿了黑白格子的衣服,我们往往不希望提取出来的边缘包括衣服上的方格。这就又涉及到纹理图像的处理等方法。但一般认为边缘提取是要保留图像的灰度变化剧烈的区域,这从数学上,最直观的方法就是微分(对于数字图像来说就是差分),在信号处理的角度来看,也可以说是用高通滤波器,即保留高频信号。用于图像识别的边缘提取往往需要输出的边缘是二值图像,即只有黑白两个灰度的图像,
20、其中一个灰度代表边缘,另一个代表背景。此外,还需要把边缘细化成只有一个像素的宽度。图像边缘检测的基本步骤7如下:(1)滤波。边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出的是大多数滤波器在降低噪声的同时也导致了边缘强度的损失。因此增强边缘和降低噪声之间需要折中。边缘检测主要基于导数计算,但受噪声影响。而滤波器在降低噪声的同时也导致边缘强度的损失。(2)增强。增强边缘的基础是确定图像各点领域强度的变化值。增强算法可以将领域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。增强算
21、法将领域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。(3)检测。在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。但在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。(4)定位。如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。如图2.2所示: 平滑图像平滑图像原始图像边缘的二值化图像阈值分割 图 梯度算子像 边缘增强 滤波 边缘检测 边缘定位 图2.2 边缘检测算法的基本步骤2.2 边缘检测算子边缘检测
22、算子是利用图像边缘的突变性质来检测边缘的。它主要分为以下几种类型:一种是以一阶导数为基础的边缘检测算子,在算法实现过程中,通过22或33模板作为核与图像中的每个像素点做卷积和运算,然后提取合适的阈值以提取边缘,如Roberts算子,sobel算子,Prewitt算子;一种是以二阶导数为基础的边缘检测算子,通过寻求二阶导数中的过零点来检测边缘,如Laplacian算子;Canny算子是另外一类边缘检测算子,它不是通过微分算子实现边缘检测,而是在一定约束下推导出的最优边缘检测算子8。2.2.1 微分算子 1.Roberts 算子 Roberts算子是一种利用局部差分算子寻找边缘的算子,它由下式给出
23、: (2-1)Roberts算子是22算子模板,对具有灰度变化陡峭的低噪声图像响应最好,并且对边缘的定位准确,但由于22大小模板没有清楚地中心点所以很难使用。用卷积模板,上式(2-2)变成: (2-2)其中和由下面图2.3的模板计算: 0-110Gy100-1Gx 图2.3 Roberts算子的卷积模板2. Sobel算子和Prewitt算子在比较复杂的图像中,仅用2*2的Robert算子得不到较好的边缘检测,而相对较复杂的3*3的Prewitt算子和Sobel算子检测效果好Sobel算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍8。它由(2-
24、3)式给出: (2-3)其中的偏导数用下(2-4)、(2-5)式计算: (2-4) (2-5)其中常数。 和其他的梯度算子一样,和可用图2.4中卷积模板8来表示:-1-2-1000 121Sx-101-202-101Sy图2.4 Sobel算子的卷积模板图像中的每个点都用这两个模板做卷积。一个模板对通常的垂直边缘影响最大,而另一个对水平边缘影响最大。两个卷积的最大值作为该点的输出值。运算结果是一幅边缘幅度图像。Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。此算子对灰度渐变噪声较多的图
25、像处理得较好。2.2.2 高斯拉普拉斯算子(Laplacian of a Gaussian,LoG) 利用图像强度二阶导数的零交叉点来求边缘点的算法很容易受到噪声干扰,所以在边缘检测前滤除噪声是十分必要的。为此,Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(Laplacian of Gaussian,LoG)算法,也称之为拉普拉斯高斯算法9。他的基本特征有:(1)平滑滤波器是高斯滤波器;(2)增强步骤采用二阶导数(二维拉普拉斯函数);(3)边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值;(4)使用线性内插方法在子象素分辨率水平上估计边缘的位置。LoG算子
26、的输出是通过式(2-6)卷积运算得到的: (2-6)又根据卷积求导法可得式(2-7): (2-7)其中: (2-8)是方差,分别是图像的横坐标和纵坐标。常用的LoG算子是55的模板9,如下图2.5所示:图2.5 拉普拉斯算子卷积模板模板中各点到中心点的距离与位置加权系数的关系用曲线很像一顶墨西哥草如图2.6所示,所以人们常把LoG滤波器叫做墨西哥草帽滤波器9。图2.6 LOG到中心点的距离与位置加权系数的关系曲线由于图像的平滑会引起边缘的模糊。LOG算法中的高斯平滑运算会导致图像中边缘和其他尖锐不连续部分的模糊。值越大,噪声滤波效果越好,但同时会丢失一些重要的边缘信息;值小时又会平滑不完全而留
27、有太多噪声。即大值的滤波器产生鲁棒边缘,小值的滤波器产生精确定位的边缘。只有当两者结合的很好时才能较好地检测出图像的最佳边缘。基于高斯拉普拉斯算子的图像边缘检测过程如图2.7所示。图像高斯滤波基于拉普拉斯算子边缘检测图像边缘图2.7 基于高斯拉普拉斯算子的图像边缘检测过程2.2.3 Canny算子传统的边缘检测算子:Sobel算子,Prewitt算子,Roberts算子,Krich算子等,大部分处理的效果都不很好,在实际处理中不太实用,而Canny算子检测的性能较好,常被作为其他实验的标准来参考。Canny算子是John Canny在1986年发表的论文中首次提出的一种边缘检测算法,当时弥补了
28、其他算法的不太好的缺点,因此Canny算子被认为是边缘检测领域较好的算法,并一直被引用,近几年来,随着研究的深入,性能更加完善的改性型的Canny算子也层出不穷,例如自适应Canny算子等。用一句话说,就是希望在提高对景物边缘的敏感性的同时,可以抑制噪声的方法才是好的边缘提取方法9。Canny算子检测边缘的实质是求信号函数的极大值问题来判定图像边缘像素点。Canny算子三大准则10:好的检测性能:检测出的边缘信息的漏检率最小,误检率最小,评判参数信噪比SNR越大越好11, (2-9)其中G(-x)表示图像边函数,f(x)滤波器函数,表示噪声的均方差。高的定位精度:Location越大越好, (
29、2-10)边缘响应次数最少:要保证只有一个像素响应,检测算子的脉冲响应导数的零交叉点平均距离D(f)满足式: (2-11)最后通过以下式得出算子的近似实现:边缘点位于图像被高斯平滑后的梯度值的极大值点。 (2-12)这里用下图的流程图来简单表示Canny算法过程:原始图像A(x,y)B(x,y)偏导(Bx,By)图像边缘初步得到边缘点高斯平滑去噪求导非极大值抑制双阈值检测连结边缘图2.8 Canny算法过程Canny算法详细过程:高斯函数: (2-13)n表示高斯滤波器窗口大小 偏导数:使用微分算子求出偏导数 (2-14)梯度大小 (2-15)非极大值抑制:沿幅角方向检测模值的极大值点,即边缘
30、点,如图1.9和图1.10所示。遍历8个方向图像像素,把每个像素偏导值与相邻像素的模值比较,取其MAX值为边缘点,置像素灰度值为0。图2.9 边缘方向示意图图2.10邻域幅角方向双阈值检测12:由于单阈值处理时,合适的阈值选择较困难,常常需要采用反复试验,因此采用双阈值检测算法。对经过非极大值抑制后的图像作用两个阈值th1,th2,th1=0.4th2,两个阈值作用后得到两个图像a、b,较大阈值检测出的图像b去除了大部分噪声,但是也损失了有用的边缘信息。较小阈值检测得到的图像a则保留着较多的边缘信息,以此为基础,补充图像b中的丢失的信息,连接图像边缘13。Canny边缘检测基本原理:(1)具有
31、既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子14。(2)类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法。Canny边缘检测算法:step1:用高斯滤波器平滑图象;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制;step4:用双阈值算法检测和连接边缘。第3章 基于边缘检测的运动目标提取
32、算法选择及实现3.1应用软件介绍能够进行图像处理的软件很多,其中就有Matlab。针对不同的图像处理算法,因此用户最好还是根据对某个图像处理软件或高级程序语言的掌握程度来编写自己的图像处理程序。Matlab是一个交互式的系统其基本运算单元是不需要制定维数的矩阵,并按照IEEE数值计算标准进行计算。系统本身提供了大量的矩阵及其他运算函数,可以方便地进行很复杂的计算,且运算效率极高。而且,Matlab命令与数学中的符号、公式非常接近,可读性很强,容易掌握,并可利用它所提供的高级编程语言进行编程,完场特定的工作14。此外,Matlab还具备图形用户界面(GUI)工具,允许用户把Matlab当做一个应
33、用开发工具来使用。除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱以及神经网络中Neutral Network 工具箱等15。Matlab在图形图像方面的应用有很多。在图形绘制方面能够提供高级绘图函数。对数字图像基础处理,Matlab颜色模型、Matlab的图像处理工具提供了多种图像显示和颜色处理技术,数字图像的文件格式,数字图像的类型及数字图像的存储类型等都可以用Matlab编程解决。也可以实现点运算增强和空域滤波增强、频域增强(低通滤波器、高通滤波器、带通、带阻滤波和同态滤波等)、彩色图像(空间滤波、平滑
34、、锐化、边缘检测、分割)和伪彩色处理、图像压缩、与编码基础、无损压缩技术、有损压缩技术、图像分割技术、小波图像处理、形态学图像处理等。3.2 算法的选择近几年来,图像分析和处理都是围绕理论、实现、应用三方面发展起来的。它以众多的学科领域为理论基础,其成果又渗透到众多的学科中,成为理论实践并重,在高新技术领域中占有重要地位的新兴学科。图像边缘识别与在实际中有很重要的应用,一直是图像边缘检测中的热点和难点,迄今已有许多边缘检测方法,其中Robert算子、Sobel 算子、Prewitt 算子、Laplace 算子、Prewitt算子、Krisdl算子、Canny算子、Gauss边缘检测算子及轮廓提
35、取或轮廓跟踪、利用平滑技术提取图像边缘、利用差分技术提取图像边缘、利用小波分析技术提取图像边缘等方法是常用的方法,但各种算法结果差异很大16。本次课题将选择Canny算子,检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。而Canny算子边缘检测算法则是既能滤去噪声又保持边缘特性的边缘检测的一阶微分算法中的最佳选择方法。Canny算子,是最有的阶梯型边缘检测算子。我们从三个标准来说明,它对受到白噪声影响的阶跃型边缘是最优的。(1)检测标准。不丢失重要的边缘,不应有虚假的边缘。(2)定位标准。实际边缘与检测到的边缘位置之间的偏差最小。(3)单响应标准。将多个响应降低为单个边缘响应
36、。 3.3 Canny算法基本原理Canny边缘检测基本原理:具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子17。类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法18。Canny边缘检测算法:高斯滤波器平滑图象;一阶偏导的有限差分来计算梯度的幅值和方向; 对梯度幅值进行非极大值抑制;双阈值算法检测和连接边缘。3.4 基本流程与实现
37、3.4.1基本流程图根据课题基本原理以及需求流程图如图3.1:图像采集运动目标的检测图像预处理去除背景 图3.1 整体流程图根据流程图以及基本原理,首先要进行图像采集,可用系统自带的视频转化为帧图像,然后将其保存。也可以拍摄视频,选取合适图像进行实验。应用Matlab软件进行编程实验,程序可将系统视频转化为帧图像,并将其保存在一定路径,需要时可以直接调用;其次是对采集和保存的图片进行预处理,一般图像边缘检测都采用灰度化的图像序列,所以要进行图像灰度化,然后将灰度化的图像平滑处理(高斯滤波),去除干扰图像检测的噪声;本论文中是对运动目标的提取,两帧相同背景下的运动物体(车辆)只需用简单的两帧差法
38、,即可去除背景,只保留运动目标;最后用边缘检测法(Canny算子)提取出运动目标。3.4.2 图像采集及预处理图像采集,可用系统自带的视频转化为帧图像,然后将其保存。也可以拍摄视频,选取合适图像进行实验。应用Matlab软件进行编程实验,程序可将系统视频转化为帧图像,并将其保存在一定路径,需要时可以直接调用。实验中选用系统视频,将其转化为帧图像,只选取其中两帧连续图像即可,如第20,21帧图像,如图3.2所示: (a) 第20帧图像 (b) 第21帧图像图3.2 两帧图像 得到的两帧图像,将其进行灰度化并去除背景,运动目标检测和提取可以不直接使用原始彩色图像序列,而使用灰度图像序列,即将彩色视
39、频图像序列转换成灰度图像序列,然后在灰度图像序列上进行高斯滤波平滑去噪,以及边缘检测及运动目标的提取,还有不同算子之间的对比等。图像的灰度化,直接调用函数rgb2gray19,它是将一幅真彩色图像转换成灰度图像的函数,在Matlab中的仿真效果如下图: (a) 第20帧图像灰度化后 (b) 第21帧图像灰度化后图3.3 原始图像灰度化3.4.3 图像背景处理两帧差法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法,它可以很好地适用于存在多个运动目标和摄像机移动的情况。当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差别,两帧相减,得到两帧图像亮度羞的绝对值,判断它
40、是否大于阈值来分析视频或图像序列的运动特性,确定图像序列中有无物体运动20。 在相同的背景下,运动目标的提取,需去除背景,在此课题中选用两帧背景差法只将运动目标保留。在仿真中的效果图如图3.4所示:图3.4 两帧差分去除背景后的图像帧间差分法的优点是:算法实现简单,程序设计复杂度低;对光线等场景变化太敏感,能够适应各种动态环境,稳定性较好。其缺点是:不能提取出对象的完整区域,只能提取出边界;同时依赖于选择的帧间时间间隔。对快速运动的物体,需要选择较小的时间间隔,如果选择不合适,当物体在前后两帧中没有重叠时,会被检测为两个分开的物体:而对慢速运动的物体,应该选择较大的时间差,如果时间选择不适当,
41、当物体在前后两帧中几乎完全重叠时,则检测不到物体21。3.4.4 高斯滤波 将去除背景的图片进行高斯滤波平滑处理,为边缘检测做准备。高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到22。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值23。本论文设定高斯平滑滤波模板的大小为3*3,程序仿真效果图如下: (a) 滤波前 (b) 滤波后图3.5 通过高斯滤波后的图像
42、 高斯滤波对随机噪声和高斯噪声(尤其是服从正态分布的噪声)的去除效果都比较好,但是对于椒盐噪声的去除就欠佳,把噪声的幅度减小的同时也把噪声点变大了。因此在作平滑处理时要针对不同的图像噪声采用不同的滤波器才能获得好的效果。3.4.5 基于Canny算子的边缘检测Canny算法是此次课题选取的算子,其基本原理在本章3.3已给出,不再说明,在编程中使用BW=edge(I,canny)语句24,用canny算子进行边缘检测,在Matlab中的运行效果如3.6图所示:图3.6 Canny算法边缘检测图像在不同的阈值条件下的边缘检测会不一样,我们选取0.00、0.05、0.1、0.3几个不同的阈值下的边缘
43、检测做个比较,程序运行结果如下: (a) 阈值为0.00时的边缘检测图像 (b) 阈值为0.05时的边缘检测图像图3.7 阈值为0.00,0.05时的边缘检测图像 (a) 阈值为0.1时的边缘检测图像 (b) 阈值为0.3时的边缘检测图像图3.8阈值为0.1,0.3时的边缘检测图像结果分析:综合上图所示采用的阈值越大,图像的边缘检测效果越会清晰,而且边缘点条理会比较明显。但是阈值超过0.05时图像边缘的部分信息将会丢失。3.4 不同算子比较 根据之前对不同算子的了解认知,将图像用不同的算子进行边缘检测,以便于我们更直观的去掌握不同的算法以及它们的优缺点,综合不同的算子在以后的设计中提出更好的边缘检测方法,Sobel算子、Roberts算子、Prewitt算子、Log算子、Canny算子、高斯Canny算子分别采用BW1=edge(I,sobel)、BW2=edge(I,roberts)、BW3=edge(I,prewit)、BW4=edge(I,log)、 BW5=edge(I,canny)25语句来完成函数的调用,运行结果如下: 图3.9 Sobel算子边缘检测图像 图3.10 Prewitt算子边缘检测图像 Sobel边缘检测算子不但可以产生较好的边缘效果,而且对噪声具有平滑作用,减小了对噪声的敏感性