利用matlab写一个简单的拉普拉斯变换提取图像边缘

可以证明,最简单的各向同性微分算子是拉普拉斯算子。一个二维图像函数 f(x,y) 的拉普拉斯算子定义为

利用matlab写一个简单的拉普拉斯变换提取图像边缘利用matlab写一个简单的拉普拉斯变换提取图像边缘

其中,在 x 方向可近似为

利用matlab写一个简单的拉普拉斯变换提取图像边缘利用matlab写一个简单的拉普拉斯变换提取图像边缘

同理,在 y 方向上可近似为

利用matlab写一个简单的拉普拉斯变换提取图像边缘利用matlab写一个简单的拉普拉斯变换提取图像边缘

于是 我们得到满足以上三个公式的两个变量的离散拉普拉斯算子是

利用matlab写一个简单的拉普拉斯变换提取图像边缘利用matlab写一个简单的拉普拉斯变换提取图像边缘

拉普拉斯变换所对应的滤波器模板为:

0 1 0
1 -4 1
0 1 0

使用matlab利用拉普拉斯算子试着提取一下图像的边缘

%使用拉普拉斯算子实现图像的边缘提取
close all;clear all;clc;
I=imread('liftingbody.png');
I=im2double(I);
[M,N]=size(I);
B=zeros(size(I));
for x=2:M-1
for y=2:N-1
B(x,y)=I(x+1,y)+I(x-1,y)+I(x,y+1)+I(x,y-1)-4*I(x,y);
end
end
I=im2uint8(I);
B=im2uint8(B);
figure(1);
subplot(121);imshow(I);
subplot(122);imshow(B);

利用matlab写一个简单的拉普拉斯变换提取图像边缘

利用matlab写一个简单的拉普拉斯变换提取图像边缘

利用matlab写一个简单的拉普拉斯变换提取图像边缘

可以看到,图像边缘提取成功了,但是提取效果非常一般。

上一篇:利用JS实现一个简单的二级联动菜单


下一篇:RedHat 7.3 更新yum源