Skip to main content

Deteksi Tepi Menggunakan 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 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:

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

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.

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

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

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

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

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

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)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'canny');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.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)
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);

 Berikut outputnya :

Tampilan saat file tugas.m di run. Masukkan gambar menggunakan tombol “Open”.


 Deteksi Tepi Prewitt

          
Deteksi Tepi Roberts

                       
Deteksi Tepi Canny

   
Deteksi Tepi Sobel


Deteksi Tepi Laplacian of Gaussian (LOG)





Comments

  1. trimaksih banyak, sangat membantu sekali

    ReplyDelete
  2. thamks y terimah kasih banyak ini mungkin sangat bantu saya dalam mengerejakan tugas akhir skripsi

    ReplyDelete
  3. makasih banget ya. ini sangat membantu
    semoga berkah

    ReplyDelete
  4. Kalau pake pendekatan matematika bagaimana ?

    ReplyDelete
  5. terimakasih banyak atas postingannya, ini sangat membantu saya dalam pengerjaan skripsi

    ReplyDelete
  6. terima kasih
    postingan ini sangat membantu
    GREAT JOB

    ReplyDelete

Post a Comment