1、边缘检测边缘检测Edge Detection 边缘(edge)是指图像局部强度变化最显著的部分指图像局部强度变化最显著的部分边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,图像分割、纹理特征和形状特征等图像分析的重要基础图像强度的不连续可分为: (1) 阶跃不连续,即图像强度在不连续处的两边的像素灰度值有着显著的差异; (2) 线条不连续,即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值1 边缘检测的基本定义边缘检测的基本定义2、术语定义、术语定义边缘点边缘点:在亮度显著变化的位置上的点边缘段:边缘段:对应于边缘点坐标及其方位边缘检测器:边缘检测器:从
2、图像中抽取边缘集合的算法轮廓:轮廓:边缘列表或一条表示边缘列表的拟合曲线边缘连接:边缘连接:从无序边缘表形成有序边缘表的过程边缘跟踪:边缘跟踪:一个用来确定轮廊的图像搜索过程Edge point, Edge segment, Edge detector, Boundary,Edge linking, Edge tracking 两种常见的边缘一阶导数和二阶导数示意图两种常见的边缘一阶导数和二阶导数示意图 (a)阶跃函数阶跃函数 (b)线条函数线条函数理论曲线实际曲线3 梯度梯度梯度是一阶导数的二维等效式,定义为矢量yfxfyxGGyxG),(1) 向量的方向就是函数增大时的最大变化率方向;(2
3、) 梯度的幅值和方向:22| ),(|yxGGyxGyxGGyxG| ),(|),max(| ),(|yxGGyxG)/arctan(),(xyGGyxa用差分来近似梯度:j 对应于x轴方向,i对应于y负轴方向,用简单卷积模板表示:求内插点(i+1/2,j+1/2) 处的梯度近似值用一阶差分模板来求和的偏导数:, 1, 1,jifjifGjifjifGyx 基本步骤:基本步骤: 滤波:滤波:改善与噪声有关的边缘检测器的性能; 一般滤波器降导致了边缘的损失; 增强边缘和降低噪声之间需要折衷 增强:增强:将邻域强度值有显著变化的点突显出来 边缘增强一般是通过计算梯度幅值来完成的 检测:检测:最简单
4、的边缘检测判据是梯度幅值阈值 定位:定位:边缘的位置和方位在子像素分辨率上估计。 4 边缘检测算法边缘检测算法(1)Roberts算子梯度幅值计算近似方法用卷积模板表示: 1, 1 1, 1,jifjifjifjifjiG梯度交叉算子(2)Sobel(2)Sobel算子算子梯度幅值:其中的偏导数用下式计算: c = 2用卷积模板来实现22yxssM)()()()(456210670432acaaacaasacaaacaasyx(3) Prewitt算子算子与Sobel算子的方程完全一样,但c=1,该算子没有把重点放在接近模板中心的 像素点Dr. Judith Prewitt(4)各种算法的比较
5、5 二阶微分算子二阶微分算子图像强度的二阶导数的零交叉点就是找到边缘点(1) 拉普拉斯算子拉普拉斯算子拉普拉斯算子是二阶导数的二维等效式:22222yfxff,)1,22,(,1,),1,(22jifjifjifxjifxjifxjifjifxGxfx这一近似式是以点 i,j+1 为中心的用 j-1 替换:用算子表示:希望邻域中心点具有更大的权值 0101410102141420414126 LoG算法基本特征:平滑滤波器是高斯滤波器增强步骤采用二阶导数(二维拉普拉斯函数)边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值使用线性内插方法在子像素分辨率水平上估计边缘的位置 Marr和Hil
6、dreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(Laplacian of Gaussian)算法,也称之为拉普拉斯高斯算法LoG算子的输出是通过卷积运算得到的,h x yg x yfx y( , ) ( , )( , ) 2根据卷积求导法有其中:h x yg x yfx y( ,)( ,)( ,) 22222422222g x yxyexy(,)称之为墨西哥草帽算子 一维和二维高斯函数的拉普拉斯变换图的翻转图,其中=2 从图中可以看出,从图中可以看出,sigma越小,越小,高斯函数的能量越集中。高斯函数的能量越集中。窗口大小根据窗口大小根据sigma的值确定:的值确定:当当,则,
7、则2222422222g x yxyexy(,)回忆:回忆:将将x=0,y=0等带入,可以得到等带入,可以得到5X5拉普拉斯高斯模板 拉普拉斯高斯边缘检测结果拉普拉斯高斯边缘检测结果 7 DoG算法 通过将图像与高斯函数进行卷积得到一幅图像的低通滤波结果。 通过sigma参数的变化,我们能够得到一系列的滤波图像。 它对高斯拉普拉斯LoG近似,在某一尺度上通过对两个相邻高斯尺度空间的图像相减,得到DoG的响应值图像。7 DoG算法首先,高斯函数表示定义为:其次,两幅图像的高斯滤波表示为:最后,将上面滤波得到的两幅图像g1和g2相减得到:即DOG表示为:DoG算法引申:求角点求角点三维图中的最大值
8、和最小值点是角点,如图所示:8 Canny 边缘检测器(1)阶跃边缘:具有局部最大梯度幅值的像素点(2)低通滤波器、噪声梯度数字逼近。(3)梯度数字逼近必须满足两个要求: 1) 逼近必须能够抑制噪声效应 ; 2) 必须尽量精确地确定边缘的位置(4)最佳折衷方案:高斯函数的一阶导数, 2)Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子(4) 最佳折衷方案:高斯函数的一阶导数, 1)高斯平滑和梯度逼近相结合的算子在边缘方向上是对称的,在垂直边缘的方向上是反对称的 单独的一个像素噪声在经过高斯平滑的图像上变得几乎没有影响。2/)1, 1 1, 1,(,2/), 1
9、1, 1, 1,(,jiSjiSjiSjiSjiQjiSjiSjiSjiSjiP 3)幅值和方位角)幅值和方位角:22,jiQjiPjiM) ,/ ,(arctan,jiPjiQji,;,jiIjiGjiS2)使用一阶有限差分计算偏导数的两个阵列)使用一阶有限差分计算偏导数的两个阵列P与与Q:1)求图像与高斯平滑滤波器卷积)求图像与高斯平滑滤波器卷积: (5) Canny 边缘检测器4)非极大值抑制)非极大值抑制(non-maximum suppression,NMS ) :细化幅值图像中的屋脊带,即只保留幅值局部变化最大的点 *将梯度角的变化范围减小到圆周的四个扇区之一,*方向角:*幅值:j
10、)i,Sector(,ji) ,NMS(,jijiMjiN为了更好的解释这个概念,看下图:图中的数字代表了像素点的梯度强度,箭头方向代表了梯度方向。以第二排第三个像素点为例,由于梯度方向向上,则将这一点的强度(7)与其上下两个像素点的强度(5和4)比较,由于这一点强度最大,则保留。5)取)取阈值 * 将低于阈值的所有值赋零值,得到图像的边缘阵列 * 阈值太低和阴影假边缘; * 阈值取得太高部分轮廊丢失. * 选用两个阈值: 更有效的阈值方案 基本思想: 取高低两个阈值作用在幅值图Ni,j,t1t2, 得到两个边缘图, 高阈值和低阈值边缘图。 连接高阈值边缘图,出现断点时,在低阈值 边缘图中的8邻点域搜寻边缘点。 算法算法 Canny 边缘检测边缘检测 (1) 用高斯滤波器平滑图像用高斯滤波器平滑图像 (2) 用一阶偏导有限差分计算梯度幅值和方向用一阶偏导有限差分计算梯度幅值和方向 (3) 对梯度幅值应用非极大值抑制对梯度幅值应用非极大值抑制 (4) 用双阈值算法检测和连接边缘用双阈值算法检测和连接边缘 http:/zh.wikipedia.org/wiki/Canny%E7%AE%97%E5%AD%90进一步参考:进一步参考:7X7高斯滤波模板13X13高斯滤波模板