利用matlab寫一個簡單的拉普拉斯變換提取圖像邊緣

可以證明,最簡單的各向同性微分算子是拉普拉斯算子。一個二維圖像函數 f(x,y) 的拉普拉斯算子定義爲

其中,在 x 方向可近似爲

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

於是 我們得到滿足以上三個公式的兩個變量的離散拉普拉斯算子是

拉普拉斯變換所對應的濾波器模板爲:

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);

可以看到,圖像邊緣提取成功了,但是提取效果非常一般。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章