MAKALAH PENGOLAHAN SINYAL DIGITAL
EDGE DETECTION MATLAB GUI
Disusun Oleh
MUHAMMAD ABRAR - 1007113748
JERI DWI DANUR - 1007133687
Jurusan Teknik Elektro Fakultas Teknik
UNIVERSITAS RIAU
PEKANBARU
2012
BAB I
PENDAHULUAN
Latar Belakang Masalah
Perkembangan dunia gambar digital dalam berbagai bentuk menunjukkan semakin tingginya kesadaran masyarakat akan image atau citra terhadap sesuatu objek atau benda. Dalam penelitian hal yang paling awal dan paling banyak dilakukan adalah penentuan tepian suatu objek dalam image atau citra.
Pengolahan Citra ialah memproses suatu citra sehingga menghasilkan citra yang sesuai dengan keinginan kita atau kualitasnya menjadi lebih baik.
Deteks tepi bertujuan untuk menghitung besaran kuantitatif citra untuk menghasilkan deskripsinya. Teknik analisis citra mengekstraksi ciri-ciri tertetntu yang membantu dalam identifikasi objek.
Untuk melihat hasil deteksi tepi tersebut , bisa menggunakan MATLAB (Matrix Laboratory). Fitur GUI pada MATLAB ini memungkinkan untuk menghasilkan suatu aplikasi.
BAB II
PEMBAHASAN
Landasan Teori
Penentuan tepian suatu objek dalam citra merupakan salah satu wilayah pengolahan citra digital yang paling awal dan paling banyak diteliti. Proses ini seringkali ditempatkan sebagai langkah pertama dalam aplikasi segmentasi citra, yang bertujuan untuk mengenali objek-objek yang terdapat dalam citra ataupun konteks citra secara keseluruhan. Deteksi tepi berfungsi untuk mengidentifikasi garis batas (boundary) dari suatu objek yang terdapat pada citra. Tepian dapat dipandang sebagai lokasi piksel dimana terdapat nilai perbedaan intensitas citra secara ekstrem. Sebuah edge detector bekerja dengan cara mengidentifikasi dan menonjolkan lokasi-lokasi piksel yang memiliki karakteristik tersebut.
Di MATLAB proses pendeteksian tepi dilakukan dengan perintah/fungsi "edge" dan hanya menggunakan citra/gambar 2D saja . Deteksi tepi (Edge Detection) pada suatu citra suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
Untuk menandai bagian yang menjadi detail citra.
Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra.
Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Gambar. 1 berikut ini menggambarkan bagaimana tepi suatu gambar diperoleh.
Gambar 1. Proses Deteksi Tepi Citra
HASIL
Perhatikan hasil deteksi dari beberapa citra menggunakan model differensial di atas:
Gambar 2. Hasil beberapa deteksi tepi
Pada gambar 8.2. terlihat bahwa hasil deteksi tepi berupa tepi-tepi dari suatu gambar. Bila diperhatikan bahwa tepi suatu gambar terletak pada titik-titik yang memiliki perbedaan tinggi. Berdasarkan prinsip-prinsip filter pada citra maka tepi suatu gambar dapat diperoleh menggunakan High Pass Filter (HPF), yang mempunyai karakteristik :
Contoh:
Diketahui fungsi citra f(x,y) sebagai berikut:
Dengan menggunakan filter : H (x,y)=[-1 1]
Maka Hasil filter adalah :
Bila digambarkan maka proses filter di atas mempunyai masukan dan keluaran sebagai berikut :
Catatan:
Untuk mencoba perhitungan di atas dapat dilakukan dengan cara manual menggunakan perhitungan konvolusi yang telah dibahas , atau dengan memanfaatkan program konvolusi.
Metode yang digunakan
Macam-macam metode untuk proses deteksi tepi ini, antara lain:
1. Metode Robert
2. Metode Prewitt
3. Metode Sobel
4. Laplacian of Gaussian
Metode Robert
Metode Robert adalah nama lain dari teknik differensial yang dikembangkan di atas, yaitu differensial pada arah horisontal dan differensial pada arah vertikal, dengan ditambahkan proses konversi biner setelah dilakukan differensial. Teknik konversi biner yang disarankan adalah konversi biner dengan meratakan distribusi warna hitam dan putih [5], seperti telah dibahas pada bab 3. Metode Robert ini juga disamakan dengan teknik DPCM (Differential Pulse Code Modulation)
Kernel filter yang digunakan dalam metode Robert ini adalah:
Metode Prewitt
Metode Prewitt merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF.
Kernel filter yang digunakan dalam metode Prewitt ini adalah :
Metode Sobel
Metode Sobel merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kelebihan dari metode sobel ini adalah kemampuan untuk mengurangi noise sebelum melakukan perhitungan deteksi tepi.
Kernel filter yang digunakan dalam metode Sobel ini adalah:
Metode Laplacian of Gaussian (log)
Metode ini akan mendeteksi zero crossing ,untuk menentukan garis batas antara hitam dan putih, yang terdapat pada turunan kedua dari citra yang bersangkutan. Kekurangan dari penerapan perator laplacian adalah sangat sensitif terhadap noise, namun demikian edge detection dengan operator ini dapat di tingkatkan hasilnya dengan menerapkan thresholding.
Kernel filter yang digunakan dalam metode Laplacian of Gaussian ini adalah :
LIST PROGRAM
Deteksi Tepi, kita menggunakan Software MATLAB. MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunkan sifat dan bentuk matriks.
GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana kerjanya. Untuk Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu:
1. Melalui command matlab dengan mengetikkan: >> guide
2. Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Builder)
Setelah kita masuk dalam fitur GUI, maka kita buat tampilan untuk program Deteksi Tepi ini dengan membuat 2 Axes dan 7 Pushbutton. Axes berguna untuk menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak masuk dalam UIControl, tetapi axes dapat diprogram agar pemakai dapat berinteraksi dengan axes dan obyek grafik yang ditampilkan melalui axes. Sedangkan Pushbutton merupakan jenis kontrol berupa tombol tekan yang akan menghasilkan tindakan jika diklik, misanya tombol OK, Cancel, Hitung, Hapus, dan sebagainya.
Untuk penulisan koding di pushbutton, klik kiri pada push button sebelah kiri, kemudian pilih callbacks dan pilih lagi view callback, ini berguna untuk mempermudah letak dalam menulis coding. Dibawah komentar itulah kita menulis kodingannya.
Berikut kodingannya :
Kodingan untuk memanggil gambar/ mencari gambar :
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},'Buka Gambar')
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,'CurrentAxes',proyek.axes1);
set(imshow(I));
set(proyek.figure1,'Userdata',I);
set(proyek.axes1,'Userdata',I);
Kodingan untuk mengeksekusi gambar menjadi method Deteksi Tepi (Sobel) :
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW = edge(gray,'sobel');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject, eventdata, handles);
Kodingan untuk method Prewitt :
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW = edge(gray,'prewitt');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject, eventdata, handles);
Kodingan untuk method Laplasian Of Gaussian (LOG) :
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW = edge(gray,'log');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject, eventdata, handles);
Kodingan untuk method Roberts :
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW = edge(gray,'roberts');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject, eventdata, handles);
Tombol keluar :
selection=questdlg(['Keluar ' get(handles.figure1,'Name')''],…
['Keluar ' get(handles.figure1,'Name')''],…
'Ya','Tidak','Ya');
if strcmp(selection,'Tidak')
return;
end
delete(handles.figure1)
setelah itu ubah extensi file menjadi bentuk .exe, berikut langkah-langkahnya :
Pada command window di matlab ketik mbuild -setup
Lalu ketik y
Kemudian pilih 1 dan ketik y
Sesudah itu ketik mcc -m nama_file_utama.m -o nama_file yang ingin dijadikan exe
Dan enter.
Cari .exe nya di folder work yang berada di program file – matlab – work.
KESIMPULAN
Penentuan tepian suatu objek dalam citra merupakan salah satu wilayah pengolahan citra digital yang paling awal dan paling banyak diteliti. Proses ini seringkali ditempatkan sebagai langkah pertama dalam aplikasi segmentasi citra, yang bertujuan untuk mengenali objek-objek yang terdapat dalam citra ataupun konteks citra secara keseluruhan. Deteksi tepi berfungsi untuk mengidentifikasi garis batas (boundary) dari suatu objek yang terdapat pada citra.
Tujuan deteksi tepi adalah :
Untuk menandai bagian yang menjadi detail citra.
Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra.
Macam-macam metode untuk proses deteksi tepi ini, antara lain:
1. Metode Robert
2. Metode Prewitt
3. Metode Sobel
4. Laplacian of Gaussian
Program deteksi tepi dapat dibuat menggunakan MATLAB (Matrix Laboratory), dengan cara menggunakan GUI (Graphic User Interface) Builder.