【matlab 图像处理】五种边缘检测算法比较

这里写图片描述

Robert:边缘定位精度较高,对于陡峭边缘且噪声低的图像效果较好,但没有进行平滑处理,没有抑制噪声的能力。

sobel和prewitt:进行了平滑处理,对噪声具有一定抑制能力,但容易出现多像素宽度。

Laplacian:对噪声较为敏感,使噪声能力成分得到加强,容易丢失部分边缘方向信息,造成一些不连续的检测边缘,同时抗噪声能力较差。

log:抗噪声能力较强,但会造成一些尖锐的边缘无法检测到。

canny:最优化思想的边缘检测算子,同时采用高斯函数对图像进行平滑处理,但会造成将高频边缘平滑掉,造成边缘丢失,采用双阈值算法检测和连接边缘。

代码实现

I=imread('1.jpg');
I0=rgb2gray(I);
subplot(231);
imshow(I);

BW1=edge(I0,'Roberts',0.16);
subplot(232);
imshow(BW1);
title('Robert算子边缘检测')


BW2=edge(I0,'Sobel',0.16);
subplot(233);
imshow(BW2);
title('Sobel算子边缘检测')

BW3=edge(I0,'Prewitt',0.16);
subplot(234);
imshow(BW3);
title('Prewitt算子边缘检测');

BW4=edge(I0,'LOG',0.012);
subplot(235);
imshow(BW4);
title('LOG算子边缘检测')

BW5=edge(I0,'Canny',0.2);
subplot(236);
imshow(BW5);
title('Canny算子边缘检测')
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页