laplacian算子为何能增强图像边缘,数字图像的锐化laplace算子
背景:在图像处理中,我们知道拉普拉斯算子经常作为边缘检测的一种,也是工程数学中常用的积分变换。本节主要介绍拉普拉斯算子的相关知识。
首先,kadyt算子是最简单的各向同性微分算子,具有旋转不变性。二维图像函数的Kadyt变换是各向同性的二阶导数,其定义为:
用更生动的形象来解释。假设我们有一个一维图形。下图(a)中灰度值的“跳跃”表示边缘的存在。如果使用一阶微分导数,我们可以更清楚地看到边缘“跳跃”的存在(这里显示为峰值)。图(b);如果在边缘找到二阶导数会怎么样?如图(c)所示。(其图片和定义公式来自http://www . opencv . org . cn/opencvdoc/2 . 3 . 2/html/doc/tutorials/img proc/img trans/la place _ operator/la place _ operator . html)。
(a) (b)
(三)
你会发现在一阶导数的极值位置,二阶导数为0。所以我们也可以用这个特征作为图像边缘检测的方法。但是,二阶导数的零值不仅仅出现在边缘(它们也可能出现在无意义的位置),但是我们可以过滤掉这些点。
为了更适合数字图像处理,该方程以离散形式表示:
此外,kadyt操作符也可以表示为更好编程的模板。如图1所示。
图1(a)是离散kadyt算子的模板,图1(b)是其扩展模板,图1(c)分别是kadyt的另外两个实现模板。从模板表单中很容易看出,如果一个亮点出现在图像的一个暗区,那么kadyt操作会让这个亮点变得更亮。由于图像中的边缘是灰度跳变的区域,因此kadyt锐化模板在边缘检测中非常有用。对于陡峭的边缘和缓慢变化的边缘,通过一般的增强技术很难确定边缘线的位置。但这种算子可以通过二次微分的正峰和负峰之间的过零点来确定,对孤立点或端点比较敏感,因此特别适用于突出图像中孤立点、孤立线或线端点的场合。和梯度算子一样,kadyt算子也可以增强图像中的噪声。有时,在使用kadyt算子进行边缘检测时,可以先对图像进行平滑处理。
图像锐化的作用是增强灰度对比度,从而使模糊的图像更加清晰。模糊的本质是图像经过平均运算或积分运算,所以可以反运算。比如差分运算,可以突出图像的细节,让图像更清晰。由于kadyt是一种微分算子,它的应用可以增强图像中灰度突变的区域,减弱灰度变化缓慢的区域。因此,在锐化时,可以选择kadyt算子对原始图像进行处理,产生描述灰度突变的图像,然后将kadyt图像与原始图像叠加,产生锐化后的图像。kadyt锐化的基本方法可由以下公式表示:
这种简单的锐化方法既能产生kadyt锐化的效果,又能保留背景信息。通过将原始图像叠加在kadyt变换的处理结果上,可以保留图像中的所有灰度值,并且可以增强灰度突变处的对比度。最终的结果是在保留图像背景的前提下,突出图像的小细节。但是,它的缺点是对图像中的一些边缘有双重响应。
参见代码OpenCV版本拉普拉斯算子。
# include 简历。h # include 高GUI。 h 使用命名空间cv;int main(int argc,char * argv[]){ Mat src=im read( test。jpg’);夏令时拉普拉斯算子(src,dst,src。depth());imwrite(拉普拉斯算子。jpg ,dst);imshow(dst ,dst);wait key();返回0;}OpenCV-Python版拉普拉斯# coding=utf-8导入cv2导入numpy作为NP img=cv2。我在阅读(测试。jpg ,0) gray_lap=cv2 .拉普拉斯(img,cv2 .CV_16S,ksize=3)dst=cv2。convertscaleabs(gray _ lap)cv2。即时消息显示(拉普拉斯,dst)cv2。waitkey(0)cv2。destroyallwindows()OpenCV-Python版laplaceoperterimport cv2 import numpy as NP kernel _ size=3 scale=1 delta=0 ddepth=cv2 .CV _ 16S img=cv2。我在阅读(测试。jpg )img=cv2 .GaussianBlur(img,(3,3),0) gray=cv2.cvtColor(img,cv2 .COLOR_BGR2GRAY) gray_lap=cv2 .拉普拉斯(gray,ddepth,ksize=kernel_size,scale=scale,delta=delta)dst=cv2。convertscaleabs(gray _ lap)cv2。im show(拉普拉斯算子,dst)cv2。waitkey(0)cv2。destroyallwindows()输出测试原始图像所示:
OpenCV-Python版拉普拉斯算子的(调和算子)输出图像所示:
OpenCV-Python版拉普拉斯算子输出图像所示:
由图可以看出,将原始图像通过卡迪特变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。基于卡迪特变换的图像增强已成为图像锐化处理的基本工具。
参考文献[1]米兰松卡,瓦茨拉夫赫拉瓦茨,罗杰博伊尔,”图像处理、分析和机器视觉"。
[2]理查德塞利西,《计算机视觉算法与应用》。
关于图像工程计算机视觉的更多讨论与交流,敬请关注本博和新浪微博松子_茶。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。