DETEKSI TEPI MENGGUNAKAN MATLAB


Prewitt

Prewitt


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 pada MATLAB
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. Untuk Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu:

  •  Melalui command matlab dengan mengetikkan: >> guide
  •  Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Bulder).

Lalu akan muncul window seperti di bawah ini:

BLANK

Pilih Blank GUI (Default) à OK. Setelah memilih OK, maka window di bawah ini akan muncul.

DEFAULT

Setelah kita masuk ke dalam fitur GUI seperti gambar di atas, buatlah tampilan untuk program Deteksi Tepi dengan meletakkan 1 Static Text sebagai judul, 2 Axes untuk menampilkan sebuah grafik atau gambar (image) dan 6 Push Button yang akan menghasilkan tindakan jika di klik. Berikut tampilannya. File ini ber-ext .fig.

AWAL

Untuk mengatur inspector tool yang digunakan, klik double pada tool. Berikut tampilan inspector pushbutton1.

TOOLS

Untuk penulisan coding di Push Button, klik kanan pada Push Button >> View Callbacks >> Callbacks. Ini bertujuan untuk mempermudah letak dalam menulis coding. Di bawah komentar itulah kita menulis codingnya.

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},'Buka Gambar')
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(deteksi.figure1,'CurrentAxes',deteksi.axes1);
set(imshow(I));
set(deteksi.figure1,'Userdata',I);
set(deteksi.axes1,'Userdata',I);

  •  Deteksi Tepi

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.

Macam-macam metode untuk proses deteksi tepi ini, antara lain:

  • 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. Metode Robert ini juga disamakan dengan teknik DPCM (Differential Pulse Code Modulation).
  • 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.
  • 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.
  • Metode Canny: Operator Canny merupakan deteksi tepi yang optimal. Operator Canny menggunakan Gaussian Derivative Kernel untuk menyaring kegaduhan dari citra awal untuk mendapatkan hasil deteksi tepi yang halus.
  • 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. Kekurangann dari penerapan perator laplacian adalah sangat sensitif terhadap noise, namun demikian edge detection dengan operator ini dapat di tingkatkan hasilnya dengan menerapkan thresholding.

Di bawah ini merupakan source code untuk membuat program menggunakan metode-metode tersebut:

Metode Robert

% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
I=get(deteksi.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'roberts');
set(deteksi.figure1,'CurrentAxes',deteksi.axes2);
set(imshow(BW));
set(deteksi.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Prewitt
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
I=get(deteksi.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'prewitt');
set(deteksi.figure1,'CurrentAxes',deteksi.axes2);
set(imshow(BW));
set(deteksi.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Sobel
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
I=get(deteksi.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'sobel');
set(deteksi.figure1,'CurrentAxes',deteksi.axes2);
set(imshow(BW));
set(deteksi.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Canny

% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton8 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
I=get(deteksi.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'canny');
set(deteksi.figure1,'CurrentAxes',deteksi.axes2);
set(imshow(BW));
set(deteksi.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Laplacian of Gaussian (LOG)

% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
deteksi=guidata(gcbo);
I=get(deteksi.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'log');
set(deteksi.figure1,'CurrentAxes',deteksi.axes2);
set(imshow(BW));
set(deteksi.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Hasilnya adalah
AWAL

OPEN
Gambar : Open File

OPEN1
Gambar : Open File

PREWITT
Gambar : Open File

ROBERT
Gambar : Open File

CANNY
Gambar : Open File

SOBEL
Gambar : Open File

LAPLACIAN
Gambar : Open File

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s