数字图像处理学习笔记(七)锐化滤波:Sobel算子、Canny算子、拉普拉斯算子

实验截图:

  • 不同锐化滤波处理后的结果
    数字图像处理学习笔记(七)锐化滤波:Sobel算子、Canny算子、拉普拉斯算子_第1张图片

实验代码:

img=imread('erciyuan.jpg');
subplot(221);
imshow(img);  
title('原图');
 
subplot(222);
sobel=edge(rgb2gray(img),'sobel');
imshow(sobel); 
title('Sobel算子后的图');
 
subplot(223);
canny=edge(rgb2gray(img),'canny');
imshow(canny); 
title('Canny算子后的图');
 
img=im2double(img);
[M,N]=size(img);
laplacian=zeros(size(img));
for x=2:M-1
    for y=2:N-1
        laplacian(x,y)=img(x+1,y)+img(x-1,y)+img(x,y+1)+img(x,y-1)-4*img(x,y);
    end
end
subplot(224);
imshow(laplacian);
title('拉普拉斯算子后的图');

结果分析:

  • 1.锐化(Sharpening) :图像在传输或变换过程中(如未聚焦好)、受到各种干扰而退化,典型的是图像模糊,而图像的判读和识别中,常需突出目标的轮廓或边缘信息。
  • 2.边缘锐化:主要增强图像的轮廓边缘、细节( 灰度跳变部分),以突出图像中景物的边缘或纹理,形成完整的物体边界,使边缘和轮廓模糊的图像清晰,又叫空域高通滤波(俗称为勾边处理)。
    从数学角度看,图像模糊相当于图像被平均或者积分,为实现图像的锐化,我们需要运用它的反运算“微分”——加强高频分量,实现轮廓清晰。
  • 这里我们使用的是matlab自带的edge函数,三种滤波的简单原理为:
  • Sobel算子,以一个点为基准向四周取出3*3的矩阵,将其与模板矩阵[-1 -2 -1;0 0 0;1 2 1]和[-1 0 1;-2 0 2;-1 0 1]进行点乘并求和后存入该点。
  • Canny算子,对原图进行高斯滤波平滑图像,用一阶偏导有限差分计算梯度幅值和方向,对梯度幅值进行非极大值抑制,用双阈值算法检测和连接边缘。
  • 拉普拉斯算子,二阶微分算子,引入模板img2(i,j,k) = img1(i+1,j,k) + img1(i-1,j,k) + img1(i,j+1,k) + img1(i,j-1,k) - 4 * img1(i,j,k)进行计算。

你可能感兴趣的:(数字图像处理MATLAB实验,边缘检测,图像处理,matlab,锐化滤波)