📜  使用 Matlab 的拉普拉斯滤波器

📅  最后修改于: 2022-05-13 01:54:33.534000             🧑  作者: Mango

使用 Matlab 的拉普拉斯滤波器

拉普拉斯滤波器是一种二阶导数滤波器,用于边缘检测、数字图像处理。在一阶导数滤波器中,我们分别检测水平和垂直方向的边缘,然后将两者结合起来。但是使用拉普拉斯滤波器,我们可以一次检测整个图像中的边缘。

The Laplacian Operator/Filter is = [0 1 0; 
                                    1 -4 1;
                                    0 1 0]
here the central value of filter is negative.
  Or
Filter is = [0 -1 0;
            -1 4 -1; 
             0 -1 0],
here the central value of filter is positive.
Note:The sum of all values of the filter is always 0.

脚步:

  • 使用 imread()函数在 Matlab 中读取图像。
  • 如果图像是彩色的,则将其转换为 RGB 格式。
  • 定义拉普拉斯滤波器。
  • 将图像与过滤器进行卷积。
  • 显示二进制边缘检测图像。

句法:

例子:

Matlab
% MATLAB code for
% Edge detection using Laplacian Filter.
k=imread("logo.png");
 
% Convert rgb image to grayscale.
k1=rgb2gray(k);
 
% Convert into double format.
k1=double(k1);
 
% Define the Laplacian filter.
Laplacian=[0 1 0; 1 -4 1; 0 1 0];
 
% Convolve the image using Laplacian Filter
k2=conv2(k1, Laplacian, 'same');
 
% Display the image.
imtool(k1, []);
imtool(abs(k2,[]);



输出:

图:输入图像

图:边缘检测后的输出图像

缺点:

  • 我们应该注意到,一阶导数运算符夸大了噪声的影响。二阶导数会将噪声夸大两倍。
  • 没有给出关于边缘的方向信息。