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
- 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)
trimaksih banyak, sangat membantu sekali
ReplyDeletethamks y terimah kasih banyak ini mungkin sangat bantu saya dalam mengerejakan tugas akhir skripsi
ReplyDeletemakasih banget ya. ini sangat membantu
ReplyDeletesemoga berkah
Good,
ReplyDeletesangat lengkap..
Thanks,
Kalau pake pendekatan matematika bagaimana ?
ReplyDeleteterimakasih banyak atas postingannya, ini sangat membantu saya dalam pengerjaan skripsi
ReplyDeleteterima kasih
ReplyDeletepostingan ini sangat membantu
GREAT JOB