I.
Konsep
Deteksi Tepi
Tepi adalah perubahan nilai intensitas derajat keabuan
yang mendadak (besar) dalam jarak yang singkat. Perbedaan intensitas inilah
yang memperlihatkan rincian pada gambar. Tepi dapat diorientasikan dengan suatu
arah, dan arah ini berbeda-beda, tergantung pada perubahan intensitas.
Ada tiga macam tepi yang terdapat di dalam citra digital. Ketiganya
adalah tepi curam, tepi landai, dan tepi yang mengandung derau.
A. Metode dalam Deteksi Tepi
Macam-macam metode untuk proses deteksi tepi
ini, antara lain:
1.
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).
2.
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.
3.
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.
4.
Metode Canny
Operator Canny merupakan deteksi tepi yang optimal. Operator Canny menggunakan GaussianDerivative Kernel untuk menyaring kegaduhan dari citra awal untuk mendapatkan hasil deteksi tepi yang halus.
5.
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.
B. Teknik Deteksi Tepi
1. Operator
gradien pertama, contoh beberapa gradien pertama yang dapat digunakan untuk
mendeteksi tepi di dalam citra, yaitu operator gradien selisih-terpusat,
operator Sobel, operator Prewitt, operator Roberts, operator Canny.
2. Operator
turunan kedua, disebut juga operator Laplace. Operator Laplace mendeteksi
lokasi tepi khususnya pada citra tepi yang curam. Pada tepi yang curam, turunan
keduanya mempunyai persilangan nol, yaitu titik di mana terdapat pergantian
tanda nilai turunan kedua, sedangkan pada tepi yang landai tidak terdapat
persilangan nol. Contohnya adalah operator Laplacian Gaussian, operator
Gaussian.
3. Operator
kompas, digunakan untuk mendeteksi semua tepi dari berbagai arah di dalam
citra. Operator kompas yang dipakai untuk deteksi tepi menampilkan tepi dari 8
macam arah mata angin yaitu Utara, Timur Laut, Timur, Tenggara, Selatan, Barat,
Barat Daya, dan Barat Laut. Deteksi tepi dilakukan dengan mengkonvolusikan
citra dengan berbagai mask kompas, lalu dicari nilai kekuatan tepi (magnitude)
yang terbesar dan arahnya. Operator kompas yang dipakai untuk deteksi tepi
menampilkan tepi dari 8 macam arah mata angin, yaitu Utara, Timur Laut, Timur,
Tenggara, Selatan, Barat, Barat Daya, dan Barat Laut.
Selain operator gradien yang sudah disebutkan, masih ada
beberapa operator gradien yang lain yang dapat digunakan untuk mendeteksi tepi
di dalam citra, yaitu selisih terpusat, sobel, prewitt, Roberts, dan Canny.
(a)
Operator
gradien selisih-terpusat:
Operator
Sobel adalah magnitudo dari gradien yang dihitung dengan :
yang
dalam hal ini, turunan parsial dihitung dengan :
dengan
konstanta c = 2. Dalam bentuk mask, sx dan sy dapat dinyatakan sebagai :
Di bawah ini contoh lain deteksi tepi dengan operator
Sobel, di mana hasil konvolusi dilambangkan dengan T = 12.
Citra
: | gradien – x | + | gradien – y | :
Hasil
pengembangan
dengan T = 12 :
(c) Operator
Prewitt Persamaan gradien pada operator Prewitt sama seperti operator Sobel,
tetapi menggunakan nilai c = 1 :
(d)
Operator
Roberts Operator Roberts sering disebut juga operator silang. Gradien Roberts
dalam arah-x dan arah-y dihitung dengan rumus :
Gambar Operator Silang |
(e) Operator Canny Berdasarkan wikipedia, 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.
Gambar Gaussian Derivative Kernel |
Faktor kunci
dalam mengekstraksi ciri adalah kemampuan mendeteksi keberadaan tepi di dalam
citra. Ada
beberapa metode deteksi tepi. Penggunaan metode deteksi tepi yang tidak tepat,
akan menghasilkan pendeteksian yang gagal. Pendeteksian tepi merupakan tahapan
untuk melingkupi informasi di dalam citra. Tepi mencirikan batas objek dan
karena itu tepi berguna untuk proses segmentasi dan identifikasi objek di dalam
citra. Dalam penulisan tugas ini citra yang akan digunakan sebagai uji coba
adalah suatu citra diam berwarna dengan bentuk 2D (frontal) dengan format
JPEG/JPG.
- Tahapan Proses Pendeteksian Tepi
1.
Image Acquisition
Akuisisi citra merupakan tahap awal, pada tahap ini citra akan
diambil/ditangkap. Kamera akan dipergunakan untuk
tahapan ini. Kamera yang umum dipergunakan pada tahap ini, dapat berupa kamera
analog atau digital. Untuk citra yang diambil dengan menggunakan kamera analog
perlu dilakukan konversi ke dalam bentuk citra digital.
2.
Pra Processing (Preprocessing)
Pada Tahap ini dilakukan
proses grayscale terhadap citra yang akan dideteksi tepi citraanya.
· Proses grayscalling : adalah proses untuk mengubah gambar yang memiliki warna
menjadi gambar yang memiliki tingkat warna ke abu-abuan.
· Gambar yang akan di-gray-scalling nilai tiap titik akan disamakan dengan
nilai red-green-bluenya sehingga untuk tiap titik hanya memiliki 1 nilai saja,
yang disebut nilai gray-level-nya
· Pada dasarnya proses ini dilakukan dengan meratakan nilai pixel dari 3
nilai RGB menjadi 1 nilai
3.
Segmentasi (Segmentation)
Pada
tahap ini citra yang telah diubah menjadi grayscale akan dideteksi tepi citranya
menggunakan analisis sobel.
4.
Post Processing
Pada tahap ini akan
dihasilkan citra yang berupa citra yang hanya terdiri dari gambar hitam putih yang
memiliki tepi citra.
- 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 Bulder)
Produk MATLAB
menyediakan alat interaktif dan fungsi command-line untuk operasi analisis
data, termasuk:
- Interpolasi
dan menebangi
- Mengekstrak
bagian data, scaling, dan rata-rata
- Thresholding
dan perataan
- Korelasi,
analisis Fourier, dan filtering
- 1-D
puncak, lembah, dan nol menemukan
- Statistik
dasar dan curve fitting
- Analisis Matrix
III. Rancangan Program
1.
Pertama buat rancangan GUI terlebih
dahulu dengan cara klik File pada Menu bar-New-GUI-Blank GUI-Ok.
2. Selanjutnya buatlah sebuah rancangan GUI dimana disini
kami membuat 6 buah axes dan 8 buah push button, jika sudah selesai simpan file
dengan ekstensi (.fig).
3. Kemudian pada push button browse, klik kanan-View
Callback-Callback maka akan muncul tampilan editor untuk memasukkan script
pendeteksian tepi untuk program Matlab yang kami buat.
Ø Pada
pushbutton1 masukkan kodingan berikut untuk memilih gambar yang akan diproses :
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
prj=guidata(gcbo);
[nama,direktori]=uigetfile({'*.jpg'},'BUKA
GAMBAR');
if isequal(nama,0)
return;
end;
eval(['cd ''' direktori ''';']);
i=imread(nama);
set(prj.figure1,'CurrentAxes',prj.axes1);
set(imshow(i));
set(prj.figure1,'Userdata',i);
set(prj.axes1,'Userdata',i);
% 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)
Ø Pada pushbutton2 ketik
kodingan berikut untuk memasukkan perintah mengubah gambar menjadi efek
sobel :
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
sobel=guidata(gcbo);
i=get(sobel.axes1,'Userdata');
if isequal(i,[])
warndlg('Belum ada gambar !','Sobel
Process error');
else
gray=rgb2gray(i);
bw=edge(gray,'sobel');
px=[-1 0 1;-1 0 1;-1 0 1];
grayx=filter2(px,gray);
py=px';
grayy=filter2(py,gray);
edge_p=sqrt(grayx.^2+grayy.^2);
edge_t=im2bw(edge_p/255,0.3);
set(sobel.figure1,'CurrentAxes',sobel.axes2);
set(imshow(edge_t));
set(sobel.axes3,'Userdata',edge_t);
end
%end;
% 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)
Ø Pada pushbutton3 ketik
kodingan berikut untuk memasukkan perintah mengubah gambar menjadi efek robert
:
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
robert=guidata(gcbo);
i=get(robert.axes1,'Userdata');
if isequal(i,[])
warndlg('Belum ada gambar !','robert
prcess error');
else
gray=rgb2gray(i);
bw=edge(gray,'robert');
px=[0 1;-1 0];
grayx=filter2(px,gray);
py=px';
grayy=filter2(py,gray);
edge_p=sqrt(grayx.^2+grayy.^2);
edge_t=im2bw(edge_p/255,0.3);
set(robert.figure1,'CurrentAxes',robert.axes3);
set(imshow(edge_t));
set(robert.axes3,'Userdata',edge_t);
end
% 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)
Ø Pada pushbutton4 ketik
kodingan berikut untuk memasukkan perintah mengubah gambar menjadi efek prewitt
:
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
prewitt=guidata(gcbo);
i=get(prewitt.axes1,'Userdata');
if isequal(i,[])
warndlg('Belum ada gambar1','Prewitt
process error');
else
gray=rgb2gray(i);
bw=edge(gray,'prewitt');
px=[-1 0 1;-2 0 1;-1 0 1];
grayx=filter2(px,gray);
py=px';
grayy=filter2(py,gray);
edge_p=sqrt(grayx.^2+grayy.^2);
edge_t=im2bw(edge_p/255,0.3);
set(prewitt.figure1,'CurrentAxes',prewitt.axes4);
set(imshow(edge_t));
set(prewitt.axes4,'Userdata',edge_t);
end
% 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)
Ø Pada pushbutton5 ketik
kodingan berikut untuk memasukkan perintah mengubah gambar menjadi efek
canny :
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
prj=guidata(gcbo);
i=get(prj.axes1,'Userdata');
gray=rgb2gray(i);
bw=edge(gray,'canny');
set(prj.figure1,'CurrentAxes',prj.axes5);
set(imshow(bw));
set(prj.axes5,'Userdata',bw);
% 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)
Ø Pada pushbutton6 ketik
kodingan berikut untuk memasukkan perintah mengubah gambar menjadi efek LOG
:
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject,
eventdata, handles)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW = edge(gray,'log');
set(proyek.figure1,'CurrentAxes',proyek.axes6);
set(imshow(BW));
set(proyek.axes6,'Userdata',A);
redo_Callback(hObject, eventdata, handles);
% hObject
handle to pushbutton6 (see GCBO)
% eventdata
reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see
GUIDATA)
Ø Pada pushbutton7 ketik
kodingan berikut untuk memasukkan perintah menyimpan program yang sudah dibuat
:
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
proyek=guidata(gcbo);
[namafile,direktori]=uiputfile({'*.jpg';'*.*'},'Simpan
Citra');
I=get(proyek.axes6,'Userdata');
imwrite(I,strcat(direktori,namafile));
% hObject handle to
pushbutton7 (see GCBO)
% eventdata reserved
- to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
Ø Pada pushbutton8 ketik
kodingan berikut untuk keluar dari program :
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
selection=questdlg(['Keluar '
get(handles.figure1,'Name')''],...
['Keluar ' get(handles.figure1,'Name')''],...
'Ya','Tidak','Ya');
if strcmp(selection,'Tidak')
return;
end
delete(handles.figure1)
% 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)
jika sudah maka simpan data tersebut
dengan format “nama_file.fig” kemudian RUN.
4.
Jika sudah di RUN lalu kita pilih gambar yang akan
diproses, kemudian klik open. Setelah itu kita coba satu – persatu proses dari
pendetekasian tepi pada button yang sudah ditulis kodingnya tadi. Maka akan tampil hasil dari
proses tersebut, seperti berikut ini:
5. Jika telah selesai kita dapat menyimpan hasil gambar
program matlab pendeteksian tepi dengan pilih tombol simpan. Lalu tentukan file
direktori tempat kita akan menyimpan hasil gambar. Dan simpan gambar dengan
file berekstensi (.jgp). klik save.
6. Jika kita ingin keluar dari program maka pilih
button keluar. Pilih Ya jika ingin keluar dri program dan pilih tidak jika
tidak ingin keluar dari program
By : Fitria Ayu Andina 50409379
Linda Mella Listiara 55409579
4IA03
Sumber
:
mba saya mau nanya kalau di button open dikasih kodingan seperti ini
BalasHapusfunction 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)
[name_file1,name_path1] = uigetfile( ...
{'*.bmp;*.jpg;*.tif','Files of type (*.bmp,*.jpg,*.tif)';
'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.tif','File Tif (*.tif)';
'*.*','All Files (*.*)'},...
'Open Image');
if ~isequal(name_file1,0)
handles.data1 = imread(fullfile(name_path1,name_file1));
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
else
return;
end
apa yang harus di ganti yah di bagian button 2 nya? makasih :)
ray ban ray ban sunglasses ray-ban ray ban glasses ray ban aviators ray ban eyeglasses cheap ray bans ray ban outlet fake ray bans ray ban erika ray bans on sale ray ban sunglasses outlet ray ban repair prescription ray ban sunglasses ray ban rb2132 http://www.ray-bansunglasseswarbyparker.com warby parker
BalasHapusmba kalau error seperti berikut :
BalasHapus??? Reference to non-existent field 'axes2'.
Error in ==> sss>pushbutton2_Callback at 112
set(sobel.figure1,'CurrentAxes',sobel.axes2);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> sss at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)sss('pushbutton2_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
error saat push button2 sobel..
itu bagaimana solusinya, saya sudah mengikuti step by step seperti diatas. Mohon bantuan nya :)
Diane von Furstenberg is no stranger to feminine flair, and her look for Fall 2014 was all about the ballerina. It's soft, sweet, and rosy, louboutin Shoes with pink on the eyelids, cheeks, and lips. We talked to Diane about the inspiration for her iconic wrap dress and jimmy choo shoes also got the scoop on how to re-create the pretty makeup look at home. Beauty editor Jessica Cruel takes us backstage red bottoms shoes at Diane's show for the inside scoop.
BalasHapusGisele Bündchen may have easily owned the runway at the Balenciaga Fall 2014 show red bottoms shoes on sale in Paris on Thursday. The supermodel joined fellow catwalkers like Joan Smalls, Caroline Trentini, and Mariacarla Boscono and captured the attention red bottoms shoes of Fashion Week fixtures Anna Wintour, Dasha Zhukova, and Kanye West, who valentino boots sat front row. Gisele seemed to have a lot of fun during her return to the runway, as she shared a series of backstage snaps on Instagram before the big show.Gisele headed to Europe for the festivities earlier this week and christian louboutin sale marked her arrival with a gorgeous photo of the Eiffel Tower. In addition to showing off the Fall collection for Balenciaga louboutin outlet designer Alexander Wang, Gisele also celebrated a personal milestone this week — she and husband Tom Brady rang in their fifth louboutin shoes wedding anniversary on Wednesday, and the model commemorated the big day with a sweet snap from their ceremony that she captioned, christian louboutin