版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章图像边缘锐化处理7.1概述边缘:指灰度值发生急剧变化的地方边缘检测目的:在不破坏信息的条件下,减少数据量,绘制出其边缘线图。图像梯度:计算的是图像的边缘信息,它能够反映图像像素变化的速度,如灰度值变化大,梯度值大;灰度值变化小,梯度值小。图像梯度:像素的一阶导数,通过计算像素值的差来近似导数值。图像梯度及边缘检测图像锐化图像锐化图像锐化常见的边缘类型
阶梯状
脉冲状
屋顶状用差分定义一元函数f(x)二阶微分:
用差分定义一元函数f(x)一阶微分:一阶、二阶微分运算G(i,j)=f(i,j)-f(i-1,j)单向微分运算G(i,j)=-f(i,j-1)+f(i,j)单向微分运算
对灰度图像f在纵方向进行微分,按下式求得:
G(i,j)=f(i,j)-f(i-1,j)纵向微分运算该算法的数学表达式为:G(i,j)=f(i,j)-f(i,j-1)横向微分运算对灰度图像f在纵方向和横方向两个方向进行微分。同时增强水平和垂直方向的边缘。G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]}双向一次微分运算
相减的结果反映了图像亮度变化率的大小。像素值保持不变的区域,相减的结果为零,即像素为黑;像素值变化剧烈的区域,相减后得到较大的变化率,像素灰度值差别越大,则得到的像素就越亮,图像的垂直边缘得到增强。微分运算作用图像微分后处理计算结果出现了小于零的像素值整体加一个正数,可以获得类似浮雕的效果。取绝对值图像一阶微分X方向Y方向双向梯度是1个矢量,由分别沿x和y方向计算微分的结果构成。梯度运算Robert提出的交叉微分算子Z1Z2Z3Z4Z5Z6Z7Z8Z9-10010-110Sobel
算子Z1Z2Z3Z4Z5Z6Z7Z8Z9-1-2-1000121-101-202-10120Z1Z2Z3Z4Z5Z6Z7Z8Z9-1-1-1000111-101-101-101Prewitt算子梯度锐化模板-1-1-1000111-101-101-101-1-2-1000121-101-202-101用于边缘增强的梯度法二元图像函数f(x,y)的拉普拉斯变换:x方向y方向由以上两个分量相加:二阶微分—拉普拉斯算子扩展方式二阶微分—拉普拉斯算子强调突变,弱化慢变。二阶微分—拉普拉斯算子将原始图像和拉普拉斯图像叠加在一起的,保持锐化处理的效果,又能复原背景信息。二阶微分—拉普拉斯算子二阶微分—拉普拉斯算子掩模实现二阶微分—拉普拉斯算子高斯-拉普拉斯(LOG)算子是效果更好的边缘检测器,把高斯平滑器和拉普拉斯锐化结合起来,先平滑掉噪声,再进行边缘检测。高斯-拉普拉斯(LOG)算子LOG算子中心点的距离与位置加权系数的关系高频提升滤波器微分运算可用来求信号的变化率,具有加强高频分量的作用,微分处理后的图像非常暗,不适用。如果既要求图像的轮廓清晰,又要求保持目标物体的内部灰度不变,这就是高频提升滤波器的目的。微分运算会使低频成分损失很多,而高频成分突出,为了使图像边缘清晰,内容完整保留,用下式:高频提升滤波器线性锐化滤波与高频提升滤波
采用多个边缘检测算子,不同的检测算子模板采用不同的方向、不同的邻域导数,用求卷积的方法,计算每个模板,取最大值。自适应检测将所有模板逐一作用于每一个像素,产生最大输出值的模板方向,表示该点边缘方向,如果所有方向上的模板接近于零,该点没有边缘;如果所有方向上的模板输出值近似相等,没有可靠边缘方向。实现步骤Kirsch边缘检测算子38锐化算子小结
好的检测结果:对边缘的错误检测率要低,在检测出真实边缘的同时,避免检测出虚假的边缘。好的边缘定位精度:标记的边缘位置要和图像上真正边缘的位置尽量接近。对同一边缘要有低的响应次数:有的算子会对一个边缘会产生多个响应。本来只有一个边缘点,可是检测出来会出现多个边缘点。克服噪声的影响。39算子比较
Roberts算子:利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备能抑制噪声能力。对陡峭边缘且含噪声少的图像效果较好。Sobel算子和Prewitt算子:先做加权平滑处理,再做微分运算,平滑部分的权值有些差异,对噪声具有一定的抑制能力,但不能完全排除虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。算子比较41
Laplacian算子:是不依赖于边缘方向的二阶微分算子,对阶跃型边缘点定位准确,对噪声非常敏感,使噪声加强,容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘。算子比较42算子比较
LOG算子:先用高斯函数平滑滤波,后用Laplacian算子检测边缘,克服Laplacian算子抗噪声差的缺点,但同时也平滑掉比较尖锐的边缘,尖锐边缘无法检被测到。随堂测试以下锐化算子中,属于二阶算子的是ARoberts梯度算子BSobel算子CPrewitt算子DLaplacian算子7.2图像微分边缘检测7.2.微分技术应用7.2.1微分边缘检测
微分运算作用效果微分运算应用在图像上,可使图像的轮廓清晰。纵向微分运算;横向微分运算;双方向一次微分运算。
微分运算作用效果微分运算作用相减的结果反映了图像亮度变化率的大小。像素值保持不变的区域,相减的结果为零,即像素为黑;像素值变化剧烈的区域,相减后得到较大的变化率,像素灰度值差别越大,则得到的像素就越亮,边缘得到增强微分运算纵向微分运算对灰度图像f在纵方向进行微分,按下式求得:7.2.2纵向边缘检测理论基础对灰度图像f在纵向进行微分操作:(7-1)这里i代表列,j代表行。该算法用如下卷积核:
7.2.3横向边缘检测理论基础对灰度图像f在横向进行微分:
该算法用如下卷积核:
对灰度图像在横向方向进行微分,图像的横向水平边缘得到检测。7.2.4双向边缘检测理论基础对灰度图像在纵向和横向进行微分,结果图像的纵向和横向的边缘得到检测。该算法用如下卷积核:
水平(i方向)垂直(j方向)效果展示
(a)原图(b)纵向微分
(c)横向微分(d)双向一次微分7.3常用的边缘检测算子7.3.1Roberts边缘检测算子一阶微分算子作用效果Roberts梯度算子交叉算法无平滑,对噪声太敏感计算简单,但没有清楚的中心点
理论基础Roberts边缘算子采用的是对角方向相邻的两个像素之差。
该算法的算子如下:(1)retval=cv2.filter2D(src,d,kernel,anchor,delta,borderType)retval:表示返回的双边滤波处理结果;src:表示原始图像,该图像不限制通道数目;d:表示处理结果图像的图像深度,-1表示与原始图像使用相同的图像深度;kernel:表示一个单通道的卷积核;anchor:锚点,其默认值为(-1,-1),中心点;delta:表示修正值,可选。如果该值存在,加上该值作为最终的滤波处理结果;borderType:表示以何种情况处理边界;函数说明(2)retval=cv2.addWeighted(src1,alpha,src2,beta,gamma,dtype=-1))这个函数的作用是计算两个数组(图像阵列)的加权和,把两张图片叠加在一起。retval:输出图像;src1:第一个图片阵列;alpha:第一个图片的权重值;src2:第二个图片阵列;beta:第二个图片的权重值;gamma:偏移量;dtype:输出阵列的可选深度。数学表达式为:
函数说明效果展示7.3.2Sobel边缘检测算子算法原理Sobel算子包含两组的矩阵,横向及纵向模板,将之与图像进行平面卷积,得出横向及纵向的灰度差分近似值。Sobel算子是典型的基于一阶导数的边缘检测算子算子中引入了类似局部平均的运算,对噪声具有平滑作用,能很好地消除噪声的影响。
Sobel算子Python实现dst=cv2.Sobel(src,ddepth,dx,dy[,ksize[,scale[,delta[,borderType]]]])·ddepth表示输出图像的深度。·dx表示x方向上求导的阶数。·dy表示y方向上求导的阶数。·ksize表示Sobel核的大小。·scale表示计算导数时的缩放因子,默认值是1。·delta表示在目标函数上所附加的值,默认为0。·borderType表示边界样式。voidcvAddWeighted(constCvArr*src1,doublealpha,constCvArr*src2,doublebeta,doublegamma);src1,第一个原数组.alpha,第一个数组元素权重src2第二个原数组beta,第二个数组元素权重gamma,图1与图2作和后添加的数值。不要太大,不然图片一片白。总和等于255以上就是纯白色了。其他一阶微分算子作用效果Sobel算子3×3模板邻域梯度的均值
效果展示7.3.3Prewitt边缘检测算子边缘检测Prewitt算子其他一阶微分算子作用效果Prewitt算子3×3模板邻域梯度的均值与sobel相比,图像效果比较干净
效果展示7.3.4Scharr边缘检测算子Scharr算子为Sobel的改进,与Sobel相同的计算速度,但是精度更高。Scharr算子不同的是,Scharr仅作用于大小为3的内核。图像与水平方向上的卷积:垂直方向上的边缘强度,图像与垂直方向上的卷积:水平方向上的边缘强度。Python实现dst=cv2.Scharr(src,ddepth,dx,dy,dst=None,ksize=None,delta=None,borderType=None)ddepth表示输出图像的深度。dx,dy:int类型的,表示x方向的差分阶数,1或0kSize:模板大小,对于Sobel取值为1,3,5,7,当不输入的时候,默认为3。特殊的,当kSize=1的时候,采用的模板为1*3或者3*1而非平时的那些格式delta表示在目标函数上所附加的值,默认为0。borderType表示边界样式。效果展示7.3.5Krisch自适应边缘检测理论基础Kirsch边缘检测算子为:
图像中的每个点都用8个掩模进行卷积,所有8个方向中的最大值作为边缘幅度图像输出。最大响应掩模的序号构成了边缘方向的编码。
边缘检测Kirsch算子其他一阶微分算子作用效果Kirsch算子8个方向边缘检测Kirsch算子函数说明(1)retval=scipy.signal.convolve2d(src,kernel,mode,boundary,fillvalue)用于实现二维离散卷积。retval:返回的图像;src:输入的二维图像;kernel:输入的二维数组,代表卷积核;mode:卷积类型,有“full”,“valid”以及“same”类型;boundary:边界填充方式,有“fill”,“warp”以及“symm”方式;fillvalue:当boundary="fill"时,设置边界填充的方式,默认为0。效果展示图7-6Krisch
边缘检测处理效果图7.3.6拉普拉斯算子理论基础拉普拉斯算子属于二阶微分:x方向:
y方向:由以上两个分量相加:
Sobel算子和Scharr算子都是一阶导数算子;Laplacian算子是二阶导数算子,具有旋转不变性,满足不同方向上的边缘检测要求。二维函数的Laplacian(拉普拉斯)变换计算公式定义:Laplacian算子图像二阶微分作用效果Laplacian算子4邻域
在图像边缘处理中,二阶微分的边缘定位能力更强,锐化效果更好,因此在进行图像边缘处理时,直接采用二阶微分算子而不使用一阶微分。Laplace是一个二阶导数的算子,是一个x方向二阶导数和y方向二阶导数的和的近似求导算子。Laplace算子为可以看出,该算子在上下左右四个90度的方向上结果相同,也就是说在90度方向上无方向性。为了让其在45度的方向上也具有该性质,对laplace进行扩展定义即Laplace扩展算子图像二阶微分作用效果Laplacian算子加入对角像素8邻域噪声被增强双边缘理论基础常用的拉普拉斯边缘检测模板:Python实现dst=cv2.Laplacian(src,ddepth[,ksize[,scale[,delta[,borderType]]]])·ddepth表示输出图像的深度。·ksize表示二阶导数核的大小,必须是正奇数。·scale表示计算导数时的缩放因子,默认值是1。·delta表示在目标函数上所附加的值,默认为0。·borderType表示边界样式。一般Laplace运算之前,会先对图像进行模糊平滑处理,目的是去除高频噪声importcv2ascvimage=cv.imread("F:/picture/coins.jpg",0)#读取一幅灰度图#使用拉普拉斯算子计算边缘信息laplacian=cv.Laplacian(image,cv.CV_64F)laplacian=cv.convertScaleAbs(laplacian)#对计算结果取绝对值#显示图像cv.imshow("image",image)cv.imshow("laplacian",laplacian)a原始图像;b是对原始图像进行边缘检测的结果。可以看出,拉普拉斯边缘检测可以检测出更多的边缘信息。理论基础拉普拉斯(Laplacian)算子是不依赖于边缘方向的二阶微分算子,对阶跃型边缘点定位准确。对噪声敏感,噪声成分加强,抗噪声能力差,易丢失一部分边缘的方向信息。该算子强调突变,弱化慢变。
(a)原图(b)拉普拉斯算子边缘检测图7-7拉普拉斯边缘检测函数说明retval=cv2.Laplacian(src,ddepth[,ksize[,scale[,delta[,borderType]]]])retval:表示计算得到的目标函数图像;src:表示原始图像;ddepth:表示输出图像的深度;ksize:表示二阶导数核的大小,必须是正奇数;scale:表示计算导数时的缩放因子,默认值是1;delta:表示在目标函数上所附加的值,默认为0;borderType:表示边界样式。效果展示7.3.7高斯-拉普拉斯算子拉普拉斯边缘检测算子没有对图像做平滑处理,会对噪声产生影响。首先要对图像进行高斯平滑处理,然后再与拉普拉斯核进行卷积运算。因为要做两次卷积,计算复杂度较大,为了降低计算时的复杂度,去噪,二维高斯函数的拉普拉斯变换:高斯拉普拉斯边缘检测理论基础高斯-拉普拉斯算子先用高斯函数做平滑滤波,后用拉普拉斯算子检测边缘,克服了拉普拉斯算子抗噪声能力比较差的缺点,在抑制噪声的同时,平滑掉了比较尖锐的边缘。二维高斯函数高斯函数拉普拉斯变换:具体步骤1.构建窗口大小为H×W、标准差为σ的LoG卷积核。
H、W均为奇数且一般H=W,卷积核锚点的位置在2.将图像矩阵与LoGH×W核进行卷积操作,结果记为I_Cov_LoG。3.将得到的边缘信息二值化显示。高斯拉普拉斯边缘检测的效果与先进行高斯平滑然后再进行拉普拉斯边缘检测的效果是类似的。
#主函数image=cv.imread("F:/picture/lena.png",0)#显示原图cv.imshow("image",image)#LoG卷积2为sigmaimg1=LoG(image,2,(7,7),'symm')img2=LoG(image,2,(11,11),'symm')img3=LoG(image,2,(13,13),'symm')#边缘的二值化显示L1=edge_binary(img1)L2=edge_binary(img2)L3=edge_binary(img3)#显示LoG边缘检测结果cv.imshow("L1",L1)cv.imshow("L2",L2)cv.imshow("L3",L3)importnumpyasnpimportmathimportcv2ascvfromscipyimportsignal效果分析a.原始图像;b.7×7的LoG卷积核得到的检测结果;c.11×11的LoG卷积核得到的检测结果;d.13×13的LoG卷积核得到的检测结果。可以看出,随着卷积核的增大,图像边缘信息也在增加,当卷积核过大时,会检测出图像中的噪声。高斯-拉普拉斯(LOG)算子作用效果高斯-拉普拉斯(LOG)算子
先用高斯函数作平滑滤波,
后用Laplacian算子检测边缘克服了Laplacian算子抗噪声能力比较差的缺点理论基础具体步骤如下。①构建模板大小为H×W、标准差为σ的LoG卷积核
H、W均为奇数且一般H=W,卷积核锚点的位置为
(a)高斯平滑(b)高斯-拉普拉斯锐化模板②将图像矩阵与LoGH×W核进行卷积操作。③将得到的边缘信息进行二值化,然后显示。效果展示锐化算子小结好的检测结果:对边缘的错误检测率要低,在检测出真实边缘的同时,避免检测出虚假的边缘。好的边缘定位精度:标记的边缘位置要和图像上真正边缘的位置尽量接近。对同一边缘要有低的响应次数:有的算子会对一个边缘回产生多个响应。本来只有一个边缘点,可是检测出来会出现多个边缘点。克服噪声的影响。锐化算子小结
Roberts
SobelKirsch
LOG锐化算子小结Roberts:局部差分算子寻找边缘,易丢失一部分边缘,没有平滑处理,不具备能抑制噪声能力。对陡峭边缘且含噪声少的图像效果较好。Sobel和Prewitt:先做加权平滑处理,再做微分运算,平滑部分的权值有些差异,对噪声有抑制能力,但不能完全排除虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。Laplacian:是不依赖于边缘方向的二阶微分算子,对阶跃型边缘点定位准确,对噪声非常敏感,使噪声加强,噪声能力差,容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘。LOG:克服Laplacian算子抗噪声差的缺点,但同时也平滑掉比较尖锐的边缘,尖锐边缘无法检被测到7.3.8Canny边缘检测Canny边缘检测是一种十分流行的边缘检测算法,它使用了一种多级边缘检测算法,可以更好地检测出图像的边缘信息。Canny边缘检测近似算法的步骤如下。1)高斯滤波来平滑图像,目的是去除噪声2)计算每个像素点的梯度强度和方向3)应用非极大值抑制技术,来消除边误检(本来不是但检测出来是)4)应用双阈值的方法,来决定可能的(潜在的)边界5)通过抑制孤立的弱化边缘最终完成边缘检测(滞后的边界跟踪)Canny边缘检测
边缘检测容易受到图像中噪声的影响,因此第一步是使用5x5高斯滤波器消除图像中的噪声。
高斯滤波器是一种线性滤波器,能够有效地抑制噪声,平滑图像。高斯滤波器的模板系数随着模板中心的增大而减小。相对于均值滤波器,对图像的模糊程度较小。1)高斯平滑2)Sobel算子计算图像边缘的幅度水平方向上的卷积核sobelx;垂直方向上的卷积核sobely卷积,得到dx和dy;利用平方和的开方得到边缘强度。计算出梯度方向angle=arctan2(dy,dx)。
获得梯度的幅度与方向后,对每一个位置进行非极大值抑制处理。方法:逐一遍历像素点,判断当前像素点是否是周围像素点中具有相同梯度方向上的最大值。如果该点是极大值,则保留该点。否则将其归零。3)非极大抑制Non-maximumsuppression4、双阈值检测设定一个阈值上界和阈值下界,如果大于阈值上界则认为必然是边界(称为强边界),小于阈值下界则认为必然不是边界,两者之间的则认为是候选项(称为弱边界),进一步处理。A大于最大阈值,为强边界,保留。B和C位于最大最小之间(成为弱边界),候选,等待进一步判断(第5步)。D小于最小阈值,不是边界,丢弃。5、滞后边界跟踪
即与强边界相连的位于最大最小阈值之间的弱边界认为是边界,其他的弱边界则被抑制。B为弱边界,但他是属于孤立的弱边界,舍弃。C同样也是弱边界,与强边界A相连,故其也为边界,保留。Python实现edg=cv2.Canny(src,threshould1,threshould2[,apertureSize[,L2gradient]])edg表示计算得到的边缘信息。src表示输入的8位图像。threshould1表示第一个阈值。threshould2表示第二个阈值。apertureSize表示Sobel算子的大小。L2gradient表示计算图像梯度幅度的标识,默认为False。importcv2ascvimage=cv.imread("F:/picture/coins.jpg",0)#读取一幅灰度图#设置不同的阈值信息对图像进行Canny边缘检测edg1=cv.Canny(image,30,100)edg2=cv.Canny(image,100,200)edg3=cv.Canny(image,200,255)#显示图像cv.imshow("image",image)cv.imshow("edg1",edg1)cv.imshow("edg2",edg2)cv.imshow("edg3",edg3)a是原始图像;b是阈值组合为(30,100)的检测结果;c是阈值组合为(100,200)的检测结果;d是阈值组合为(200,255)的检测结果。对比图b、c和d可以看出,当阈值较大时可以获得更多的边缘信息。理论基础Canny边缘检测近似算法的步骤如下。(1)高斯滤波来平滑图像,目的是去除噪声(2)计算每个像素点的梯度强度和方向采用Sobel算子计算图像边缘的幅度。计算出梯度方向angle=arctan2(dy,dx)。(3)应用非极大值抑制技术,来消除边缘误检逐一遍历像素点,判断当前像素点是否是周围像素点中具有相同梯度方向上的极大值(最大值)。如果该点是极大值,则保留该点。否则将其归零。理论基础(4)应用双阈值的方法,来决定可能的边界边缘强度大于高阈值的那些点作为确定边缘点;边缘强度小于低阈值的那些点立即被剔除;边缘强度在低阈值和高阈值之间的那些点,按照以下原则进行处理:A大于最大阈值,为强边界,保留。B和C位于最大、最小之间(成为弱边界),候选,等待进一步判断(第5步)。D小于最小阈值,不是边界,丢弃。理论基础图7-12基于三个规则进行边缘的阈值化处理(5)滞后边界跟踪B为弱边界,但它是孤立的弱边界,舍弃。C与强边界A相连,故其也为边界,保留。函数说明edg=cv2.Canny(src,threshould1,threshould2[,apertureSize[,L2gradient]])edg:表示计算得到的边缘信息;src:表示输入的8位图像;threshould1:表示第一个阈值;threshould2:表示第二个阈值;apertureSize:表示S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度建筑装修分包协议2篇
- 保姆雇佣合同
- 2024年度固废处理项目BOO模式合作协议
- 二次装修工程2024年度室内设计装修合同2篇
- 数据中心弱电系统安装施工合同(2024版)3篇
- 肱骨干骨折的临床护理
- 2024年度商场化妆品专柜租赁协议3篇
- 展望未来 共创辉煌
- 2024年度房瑾离婚财产评估报告合同3篇
- 2024年度高速公路边沟工程施工期保险合同2篇
- 工作交接表(模版)
- 高中学生社区服务活动记录表
- 数据模型与决策案例分析报告
- EXCEL桥涵水文计算公式大全
- 标签打印机验证方案(共20页)
- XRF定性和定量分析ppt课件
- 超声振动切削报告
- 小学生宪法知识主题班会PPT专题教学
- 运营高速公路风险评价报告
- 1到13之内的24点全题及解(整理版
- 学校规章制度之语言文字规范化管理规章制度
评论
0/150
提交评论