Date post: | 17-Jul-2015 |
Category: |
Documents |
Upload: | jans-hendry |
View: | 153 times |
Download: | 0 times |
5/14/2018 Zero Crossing Detector on Curve Using Laplacian of Gaussian (LoG) - slidepdf.com
http://slidepdf.com/reader/full/zero-crossing-detector-on-curve-using-laplacian-of-gaussian-log 1/4
[Digital Image Processing]
[[email protected]{ee&it UGM, Indonesia}] Page 1
Mar. 14
ZERO CROSSING DETECTOR USING LAPLACIAN OF GAUSSIAN
(LoG)
Laplacian dapat digunakan untuk deteksi tepi pada sebuah citra. Deteksi tepi ini menggunakan
zero crossing yang dihasilkan dari turunan kedua f(x). Dengan prinsip zero crossing tersebut,
bukan hanya pada citra tapi Laplacian dapat digunakan pada kurva 1 dimensi. Bagaimana hal
tersebut bisa dilakukan? Kita coba membahas itu.
Laplacian satu dimensi dirumuskan sebagai:
, = ∇ , = ,
+
,
Jika kita menggunakan gaussian 1 dimensi sebagai fungsi f(x) nya maka Laplacian menjadi:
= −
Kemudian ini disebut sebagai LoG atau Laplacian of Gaussian.
Bagaimana kita menerapkan LoG dalam mendeteksi zero crossing dalam sebuah kurva 1
dimensi. Kita coba menyusun langkah-langkah sebagai berikut:
- Isyarat atau data terlebih dahulu dikonvolusikan dengan fungsi gaussian.
- Hasil konvolusi kemudian ditemukan zero crossingnya dengan mengkonvolusikannya
dengan fungsi laplacian.
- Lokasi dari zero crossing merupakan titik dimana terjadi perubahan nilai dari positif ke
negatif atau negatif ke positif atau bisa saja dari nol ke positif atau dari nol ke negatif
pada isyarat asli. Sementara indikator pada fungsi LoG nya adalah perubahan nilai dari
negatif ke positif atau positif ke negatif.
Atau dengan langkah-langkah berikut:
- Terlebih dahulu fungsi gaussian dikonvolusikan dengan fungsi laplacian. Dengan cara ini
jumlah operasi matematis bisa lebih diperkecil, sehingga komputasi lebih sedikit.
- Lalu isyarat asli dikonvolusikan dengan fungsi Laplacian of Gaussian (LoG) dari point
pertama.
- Lokasi dari zero crossing merupakan titik dimana terjadi perubahan nilai dari positif ke
negatif atau negatif ke positif atau bisa saja dari nol ke positif atau dari nol ke negatif
pada isyarat asli. Sementara indikator pada fungsi LoG nya adalah perubahan nilai dari
negatif ke positif atau positif ke negatif.
5/14/2018 Zero Crossing Detector on Curve Using Laplacian of Gaussian (LoG) - slidepdf.com
http://slidepdf.com/reader/full/zero-crossing-detector-on-curve-using-laplacian-of-gaussian-log 2/4
[Digital Image Processing]
[[email protected]{ee&it UGM, Indonesia}] Page 2
Mar. 14
Dengan menggunakan langkah-langkah di atas, kita coba untuk membuat program Matlab untuk
mendeteksi lokasi dari zero crossing pada kurva satu dimensi. Perlu dicatat bahwa filter
gradient akan bekerja dengan baik jika terjadi perubahan nilai dalam kurva secara drastis atau
cepat.
Catatan penting, bahwa ketika kita melakukan konvolusi isyarat asli dengan LoG bukan berarti
nilainya benar-benar nol. Sehingga kita mencari lokasi di mana perubahan nilai terjadi untuk
dijadikan sebagai posisi zero crossing terjadi.
Programnya sebagai berikut:
clear all;
close all;
clc;
%% data
% t=0:1/100:2*pi;
% X=sin(t);
X=[zeros(1,100),ones(1,100)];
%%
%% gaussian function
s=3;
m=0;
w=3; % panjang jendela
jendela=(w-1)/2;
x=-jendela:jendela;
% gaussian dengan koefisien normalisasi
% koef=(1/sqrt(2*s*s*pi));
koef=1;
G=koef*exp(-((x-m).^2/(2*(s^2))));
sumG=sum(G(:));
if sumG~=0
G=G/sumG;
end
%%
%% Second derivative of Gaussian (LoG)
koef2=((x.^2-2*s^2)/s^4);
LoG=G.*koef2;LoG=LoG - sum(LoG(:))/prod(w);
ress2=conv2(X,LoG,'same');
plot(X); hold on;
plot(ress2/max(ress2),'r-.','LineWidth',2); hold on;
%%
%% Laplacian of Gaussian (LoG) toolbox matlab
h=fspecial('log',[1 3],3);
hasil=imfilter(X,h,'same');
plot(hasil/max(hasil),'g'); hold on;
%%
5/14/2018 Zero Crossing Detector on Curve Using Laplacian of Gaussian (LoG) - slidepdf.com
http://slidepdf.com/reader/full/zero-crossing-detector-on-curve-using-laplacian-of-gaussian-log 3/4
[Digital Image Processing]
[[email protected]{ee&it UGM, Indonesia}] Page 3
Mar. 14
%% finding zero crossing location
n=1;
ress2(ress2<eps*max(ress2(:))) = 0;
for m=1:length(ress2)-1if (sign(ress2(m))==1 || sign(ress2(m+1))==-1)
kol(n)=m+1;
n=n+1;
end
end
plot(kol,X(1,kol),'r*'); hold off ;
axis([0 200 -2 2]);
title('How To Find Zero Crossing');
xlabel('cacah');
ylabel('amplitudo');
legend('Original Signal','LoG','LoG Matlab toolbox');
%%
Hasil eksekusi dari program di atas adalah
Letak dari zero crossing tidak benar-benar nol karena data yang kita masukkan sebenarnya
merupakan data diskret yang panjangnya 200 data. Sehingga ketika kita memilah nilai zero
crossing yang tepat, kita terkendala dalam hal presisi nya. Tapi langkah-langkah yang diberikan
sudah mewakili yang ditunjukkan dengan perpotongan antara LoG dengan isyarat asli (data).
5/14/2018 Zero Crossing Detector on Curve Using Laplacian of Gaussian (LoG) - slidepdf.com
http://slidepdf.com/reader/full/zero-crossing-detector-on-curve-using-laplacian-of-gaussian-log 4/4
[Digital Image Processing]
[[email protected]{ee&it UGM, Indonesia}] Page 4
Mar. 14
Perpotongannya saja tidak benar-benar nol. Dengan demikian apa yang telah dipaparkan di atas
sebelumnya terbukti.
Demikianlah artikel tentang deteksi zero crossing dengan menggunakan LoG telah dijelaskan
pada artikel ini. Semoga bisa membantu walau mungkin masih memiliki kekurangan. Koreksi
akan diterima dengan baik. Selanjutnya, teori ini akan digunakan untuk deteksi tepi pada citra
digital yang akan dijelaskan pada artikel selanjutnya.
@ thanks.