图像边缘锯齿处理方法(图像边缘增强采用)

ainer\">1、原理图像的边缘是图像的基本特征,边缘点是灰度阶跃变化的像素点,即灰度值的导数较大或极大的地方,边缘检测是图像识别的第一步。用图像的一阶微分和二阶微分来增强图像,本质上计算的就是灰度的

ainer\">1、原理

图像的边缘是图像的基本特征,边缘点是灰度阶跃变化的像素点,即灰度值的导数较大或极大的地方,边缘检测是图像识别的第一步。

用图像的一阶微分和二阶微分来增强图像,本质上计算的就是灰度的变化情况,而边缘也就是灰度变化的地方。因此,这些传统的一阶微分算子如Robert、Sobel、prewitt等,以及二阶微分算子Laplacian等等本质上都是可以用于检测边缘的。这些算子都可以称为边缘检测算子。

边缘检测可以大幅度的减少数据量,剔除那些不相关的信息,保留图像重要的结构属性,一般的边缘检测的步骤有:

原始图像 –> 平滑图像 –> 锐化图像 –> 边缘判定 –> 二值化 –> 边缘连接 –> 边缘图像

1) 平滑滤波:因为梯度计算容易受噪声影响,所以先使用滤波平滑图像去除噪声。

2) 锐化滤波:为了检测边界,需要确定邻域中灰度变换,锐化突出了回答变换的区域。

3) 边缘判定:通过阈值或灰度变换,剔除某些处理点,查找边缘点。

4) 边缘连接:将间断的边缘连接成有意义的完整边缘,同时去除假边缘。

2、边缘检测算子

2.1梯度算子

Robert算子利用局部差分算子寻找边缘,边缘定位精度较高但容易丢失一部分边缘,同时由于没有对图像进行平滑处理因此不具备抑制噪声的能力。该算子对边缘陡峭且噪声较少的图像效果较好。

Sobel算子和prewitt算子都考虑了邻域信息,相当于对图像先做加权平滑处理,然后再做微分运算,所以对噪声有一定的抑制能力,但不排除检测结果中出现虚假边缘,并且容易出现多像素宽度的边缘。

2.2高斯-拉普拉斯算子

拉普拉斯算子是二阶微分算子,对噪声敏感,Laplace算子对孤立象素的响应要比对边缘或线的响应要更强烈,因此只适用于无噪声图象。存在噪声情况下,使用Laplacian算子检测边缘之前需要先进行低通滤波。高斯-拉普拉斯算子,又称LoG算子,就是为了补充这种缺陷被创立的,它先进行高斯低通滤波,然后再进行拉普拉斯二阶微分锐化。

2.3 Canny边缘检测算子

在图像边缘检测中,抑制噪声和边缘精准定位是无法同时满足的,一些边缘检测算法通过平滑滤波去除噪声的同时,也增加了边缘检测的不确定性,而提高边缘检测算子对边缘的敏感性的同时,也提高了对噪声的敏感性。Canny算子力图在抗噪声干扰和精准定位之间寻求最佳折中方案。

Canny算法主要有4个步骤:

  • 用高斯滤波器来平滑图像;
  • 用一介偏导的有限差分来计算梯度的幅值和方向;
  • 对梯度进行非极大值抑制,保留极大值,抑制其他值;
  • 用双阈值算法检测和连接边缘。

3、边缘检测示例

基于梯度的算子边缘检测:

BW=edge(img, type, thresh, direction, ‘nothinning’)

img:输入图像

type:算子类型,有sobel,Prwitt,roberts,log, canny

thresh:敏感度阈值,灰度低于此阈值的边缘不会被检测到,默认是空矩阵,自动计算阈值。

direction:指定感兴趣的边缘方向,horizontal,vertical,both

最后一个可选参数,thinning会进行边缘细化,不填就会跳过该步骤

imgPath = \'E:\\opencv_pic\\src_pic\\pic7.bmp\';img = imread(imgPath);Img=rgb2gray(img); Img_canny = edge(Img,\'canny\');  %cannyImg_roberts = edge(Img,\'roberts\');  %rebertsImg_prewitt = edge(Img,\'prewitt\');  %prewittImg_sobel=edge(Img,\'sobel\');  %sobelImg_log=edge(Img,\'log\');  %logsubplot(2,3,1),imshow(Img), title(\'原始图像\');subplot(2,3,2),imshow(Img_canny), title(\'Img canny\');subplot(2,3,3),imshow(Img_roberts),title(\'Img roberts\');subplot(2,3,4),imshow(Img_prewitt),title(\'Img prewitt\');subplot(2,3,5),imshow(Img_sobel),title(\'Img sobel\');subplot(2,3,6),imshow(Img_log),title(\'Img LoG\');

图像边缘锯齿处理方法(图像边缘增强采用)

放大观察,candy效果最优,Log次之。Log算子检测边缘的结果要比roberts和sobel算子好些,边缘比较完整,抗噪能力较好。roberts、pewitt、sobel算子模板相对较大、抑制了噪声,但也去掉了部分边缘,导致定位精度不高。

图像边缘锯齿处理方法(图像边缘增强采用)

如果图形有噪声,img = imnoise(img,’salt & pepper’, 0.03),对原始图上添加些椒盐噪声。再次计算结果如下,只有canny和LoG算法因为先做了低通滤波可以得到比较清晰的边缘。

图像边缘锯齿处理方法(图像边缘增强采用)

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://teaffka.com/n/20577.html

(0)
小智的头像小智
上一篇 2023年 11月 10日
下一篇 2023年 11月 10日

相关推荐

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:97552693@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息