Segmentasi Citra: Deteksi Tepi Menggunakan Operator Laplacian of Gaussian (LoG)

Table of Contents
Laplacian of Gaussian (LoG) adalah operator deteksi tepi orde kedua yang boleh dikata sukses untuk mengurangi tingkat sensitif terhadap derau. Hal ini dissebabkan penggunaan fungsi Gaussian yang memuluskan citra dan berdampak pada pengurangan derau pada citra. Akibatnya, operator mereduksi jumlah tepi yang salah terdeteksi (Crane, 1997). Menurut Fisher, dkk (2003) operator LoG diperoleh melalui konvolusi dengan :





Fungsi di atas disebut sebagai filter topi Meksiko (the Mexican hat filter) karena bentuknya seperti topi yang biasa dikenakan orang Meksiko (lihat Gambar 1). Dalam hal ini, semakin besar nilai deviasi, semakin besar pula cadar yang diperlukan. Contoh cadar berukuran 5 x 5 yang mewakili operator LoG ditunjukkan pada Gambar 2 (Gonzalez & Woods, 2002).

Gambar 1 : Fungsi LoG(y,x) berdasarkan Fisher, dkk (2003)
Gambar 2 : Contoh operator LoG
Untuk mengimplementasikan operator LoG dengan cadar 5x5 maka terlebih dahulu tulis program deteksi.m berikut : 
function[G] = deteksi(F,H,potong,pembulatan)
%deteksi melalukan operasi korelasi kernel H dengan citra F 
%H harus mempunyai tinggi dan lebar ganjil 
%Argumen potong bersifat opsional. Apabila bernilai true bagian citra yang
%tidak diproses akan dipotong, bawaan = false
%Argumen pembulatan bersifat opsional. Apabila bernilai true, pembulatan
%dengan uint8 tidak dilakukan, Bawaan = false

%Hasil = citra G 

if nargin < 3
    potong = false ; 
end

if nargin < 4 
    pembulatan = true ;
end

[tinggi_f,lebar_f]=size(F);
[tinggi_h,lebar_h]=size(H);

if rem(lebar_h,2)==0 || rem(tinggi_h,2)==0
    disp('Lebar dan tinggi H harus ganjil');
    return ;
end

m2=floor(tinggi_h/2);
n2=floor(lebar_h/2);

%menentukan ukuran hasil beserta penentu ofset koordinat

if potong==true
    sisi_m2=m2;
    sisi_n2=n2;
    G = zeros(tinggi_f-2*m2,lebar_f-2*n2);
else
    sisi_m2=0;
    sisi_n2=0;
    G = zeros(size(F));
end

F2=double(F);

for y=m2+1 : tinggi_f-m2
    for x=n2+1 : lebar_f-n2 
        % pelaksanaan korelasi F(baris,kolom)
        jum=0 ;
        for p =-m2 : m2
            for q=-n2 : n2
                jum=jum+H(p+m2+1,q+n2+1)*...
                    F2(y+p,x+q);
            end
        end
        G(y-sisi_m2,x-sisi_n2)=jum;
    end
end

if pembulatan == true 
    G=uint8(G);
end
Penggunaan deteksi tepi menggunakan operator LoG disesuaikan dengan cadar 5x5 diatas, caranya dengan :



















hasil deteksi tepi pada citra kucing adalah :


Sekian, semoga mamberikan manfaat bagi teman-teman... 

Salam 

Sumber : Buku Teori dan Aplikasi Pengolahan Citra karya Abdul Kadir dan Adhi Susanto

Post a Comment