数字信号处理图像边缘检测与提取1、图像边缘的定义所谓图像边缘(Edlge)是指图像局部特性的不连续性,例如,灰度级的突变,颜色的突变,纹理结构的突变等。边缘广泛存在于目标与目标、物体与背景、区域与区域(含不同色彩)之间,它是图像分割所依赖的重要特征。本为主要讨论几种典型的图像灰度值突变的边缘检测方法,其原理也是用于其他特性突变的边缘检测。图像的边线通常与图像灰度的一阶导数的不连续性有关。图像灰度的不连续性可分为两类:阶跃不连续,即图像灰度再不连续出的两边的像素的灰度只有明显的差异,如图1.1所示,线条不连续,即图像灰度突然从一个值变化到另一个值,保持一个较小的行程又返回到原来的值。在实际中,阶跃和线条边缘图像是较少见的,由于空间分辨率(尺度空间)、图像传感器等原因会使阶跃边缘变成斜坡形边缘,线条边缘变成房顶形边缘。它们的灰度变化不是瞬间的而是跨越一定距离的。2、经典的边缘检测算子边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。经典的边缘检测方法,是对原始图像中像素的某小邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点作出了比较和评价不妨记:▽f(x,y)=ixf+jyf为图像的梯度,▽f(x,y)包含灰度变化信息记:e(x,y)=yxff22为▽f(x,y)的梯度,e(x,y)可以用作边缘检测算子。为了简化计算,也可以将e(x,y)定义为偏导数xf与yf的绝对值之和:),(yxe=|),(yxfx|+|),(yxfy|以这些理论为依据,提出了许多算法,常用的边缘检测方法有:Roberts边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Canny边缘检测算子、Laplace边缘检测算子等等。3、Sobel边缘检测算子对数字图像{f(i,j)}的每个像素,考察它上、下、左、右邻点灰度的加权差,与之接近的邻点的权大。据此.定义Sobel算子如下:),(jis|fx|+|fy||()1,1(jif+2),1(jif+)1,1(jif)-()1,1(jif+2),1(jif+)1,1(jif)|+|(f(i-1,j-1)+2f(i,j-1)+f(i+1.j-1))-((fi-1,j+1)+2f(i,j+1)+f(i+1.j+1))|其卷积算子fx101202101,fy121000121图1-4Sobel边缘检测算子方向模板适当取门限TH,作如下判断:),(jisTH,(i,j)为阶跃状边缘点,{),(jis}为边缘图像。Sobel算子很容易在空间上实现,Sobel边缘检测器不但产生较好的边缘检测效果,而且受噪声的影响也比较小。当使用大的领域时,抗噪声特性会更好,但这样做会增加计算量,并且得出的边缘也较粗。Sobel算子利用像素点上下、左右邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘的检测。Sobel算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但它同时也会检测出许多的伪边缘,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。适当取门限TH,作如下判断:(i,j)TH,(i,j)为阶跃状边缘点。{(i,j)}为边缘图像。4、LaplacianofGaussian(LoG)算子正如上面所提到的,利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以,希望在边缘增强前滤除噪声.为此,Marr和Hildreth[146]将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(LaplacianofGaussian,LoG)算法,也称之为拉普拉斯高斯算法.LoG边缘检测器的基本特征是:1.平滑滤波器是高斯滤波器.2.增强步骤采用二阶导数(二维拉普拉斯函数).3.边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值.4.使用线性内插方法在子像素分辨率水平上估计边缘的位置.这种方法的特点是图像首先与高斯滤波器进行卷积(高斯滤波器在6.6节中将详细讨论),这一步既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除.由于平滑会导致边缘的延展,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点.这一点可以用二阶导数的零交叉点来实现.拉普拉斯函数用作二维二阶导数的近似,是因为它是一种无方向算子.为了避免检测出非显著边缘,应选择一阶导数大于某一阈值的零交叉点作为边缘点.LoG算子的输出hxy(,)是通过卷积运算得到的:hxygxyfxy(,)[(,)(,)]2根据卷积求导法有hxygxyfxy(,)[(,)](,)2其中:2222422222gxyxyexy(,)滤波(通常是平滑)、增强、检测这三个边缘检测步骤对使用LoG边缘检测仍然成立,其中平滑是用高斯滤波器来完成的;增强是将边缘转换成零交叉点来实现的;边缘检测则是通过检测零交叉点来进行的.可以看到,零交叉点的斜率依赖于图像强度在穿过边缘时的变化对比度.剩下的问题是把那些由不同尺度算子检测到的边缘组合起来.在上述方法中,边缘是在特定的分辨下得到的.为了从图像中得到真正的边缘,有必要把那些通过不同尺度算子得到的信息组合起来.00100012101216210121000100图1-755拉普拉斯高斯模板5、实验过程(1)用edge_sobel算法提取边缘:对于lena256,当th=150,160,170,180,190,200时当th=180时,效果最好对于lena256n,加入噪声后,th=150,170,190,210,230,250时当th=230时,效果最好对于peppers512,th=50,70,75,90,100,110时当th=75时,效果最好对于peppers512n,th=130.150,170,180,190,200时当th=180时,效果最好在加入噪声之后,th取值要高于未加入噪声时的值(2)用LOG算法当N=3,sig=0.4,th=150,170,190,210,230,250变化时由上图,当N=3,sig=0.4,th=210时,效果最好对于lena256n当N=5,sig=0.9,th=15,20,25,30,35,40时由图可知,当N=5,sig=0.9,th=30时效果最好对于peppers512N=3,sig=0.6,th=25,30,35,40,45,50时由图可知,当N=3,sig=0.6,th=50时效果最好对于peppers512n,N=5,sig=0.9,th=15,20,25,30,35,40由图可知,当N=5,sig=0.9,th=30时效果最好对于该算法,当sig取值增大时,要想获得与之同样效果的图,需要把th减小6、结果分析无噪声时,两种方法对比(左边为用Sobel边缘检测算子)用Sobel边缘检测算子效果好有噪声时也是用Sobel边缘检测算子效果好。综上,Sobel边缘检测算子比LaplacianofGaussian(LoG)算子适用性强,效果好。