Makalah Algoritma Hough Transform & Source Code
MAKALAH
Algoritma
Hough Transform dan Source Code
Disusun oleh :
SYAHROZI
3201516010
5A
PROGRAM
STUDI TEKNIK INFORMATIKA
JURUSAN D3 TEKNIK ELEKTRO
POLITEKNIK
NEGERI PONTIANAK
2018
BAB I
PENDAHULUAN
1.1 Latar
Belakang
Aplikasi ilmu bidang teknik elektro
dewasa ini semakin berkembang. Salah satunya dalam subbidang pengolahan citra
digital. Sebagai contohnya adalah aplikasi deteksi garis lurus dalam suatu
citra yang perlu dilakukan karena pada dasarnya bentuk suatu kurva atau bidang
adalah suatu bentukan dari beberapa garis lurus. Oleh karena itu penulis ingin
menjelaskan Algoritma dari Hough
Transform dan Source Code yang di dapat dari beberapa refrerensi .
Dari latar
belakang di atas dapat di simpulkan rumusan masalah dari makalah ini adalah
a.
Apa
itu Hough TransForm ?
b.
Bagaimana
Algoritma Hough Transform ?
c.
Apa
Source Kode nya ?
Dengan di buatnya makalah ini di harapkan pembaca
dapat mengetahui Algoritma Hough Transform dan Source Code yang di gunakan.
Selain itu juga tujuan dari penulisan atau pembuatan makalah ini untuk memenuhi
atau menyelesaikan tugas dari mata mta kuliah Pengolahan Citra Digital.
1.4 Metode Pengumpulan Data
Dalam penyusunan
makalah ini, perlu sekali pengumpulan data serta sejumlah informasi aktual yang
sesuai dengan permasalahan yang akan di bahas. Sehubungan dengan masalah
tersebut dalam penyusunan makalah ini, kami menggunakan beberapa metode
pengumpulan data, yang pertama browsing di internet, kedua dengan pengetahuan yang
kami miliki walaupun hanya
sedikit hehe.
BAB II
PEMBAHASAN
2.1 Hough TransForm
Transformasi Hough
menggunakan bentuk parametrik dan menggunakan pemungutan suara terbanyak (voting)
untuk menentukan nilai parameter yang tepat. Apabila dalam citra terdapat
beberapa garis yang saling berpotongan pada suatu titik, maka apabila kemudian
titik tersebut ditransformasi ke dalam ruang parameter m – c akan didapati
bahwa transformasi dalam ruang parameter m – c adalah sebuah garis lurus dengan
persamaan garis dinyatakan sebagai
yi =
mxi + c (2.1)
Sebaliknya jika dalam citra terdapat sebuah
garis lurus, dimana garis tersebut mempunyai persamaan seperti persamaan (2.1),
maka apabila ditransformasi ke dalam ruang parameter m – c akan diperoleh bahwa
transformasi dalam ruang parameter m – c adalah beberapa garis yang saling berpotongan
dalam suatu titik. Persamaan transformasi diperoleh dengan cara memanipulasi persamaan
garisnya yaitu persamaan (2.1) menjadi bentuk parametrik menjadi persamaan.
c = yi -
mxi (2.2)
Perhitungan transformasi dilakukan dengan cara
menghitung tiap titik dalam citra kedalam semua variasi nilai m - c.
Dalam kenyataannya, apabila
ditemui sebuah garis vertikal, maka akan terjadi masalah dalam penghitungannya
dikarenakan garis vertical mempunyai nilai gradien kemiringan m yang besarnya
tak berhingga ∞. Sebagai alternatifnya digunakan persamaan (2.3).
r = x cos θ + y sin θ (2.3)
dimana gambar koordinat kartesiannya ditunjukkan pada
Gambar 2.1. Sebuah titik B dalam gambar tersebut apabila ditransformasi ke dalam
ruang parameter r - maka akan menjadi seperti Gambar 2.2.
Apabila di dalam citra
terdapat suatu garis lurus, maka jika garis lurus citra ditransformasi kedalam
ruang parameter r - θ akan terjadi
suatu titik penumpukan antar kurva sinusoida hasil pentransformasian
masing-masing komponen piksel garis yang membentuk garis lurus tersebut.
Gambar 2.1 Citra sebuah garis dalam koordinat
Kartesian
dengan satu
titik uji.
Gambar 2.2 Hasil transformasi dari satu titik uji
dalam ruang
parameter r
- θ.
2.2 Perancangan Program
Pada perancangan perangkat
lunak untuk aplikasi transformasi Hough untuk deteksi garis lurus. Pada
perancangan ini digunakan Matlab 7.1 karena fungsi-fungsinya lengkap dan mudah
dalam pembuatan tampilan antarmuka penggunaan grafis (GUI). Pada tugas akhir
ini digunakan berkas citra dengan ekstensi .bmp, .jpeg atau .jpg. Secara garis besar perangkat
lunak yang akan dirancang memiliki diagram alir seperti yang ditunjukkan pada
Gambar 3.1.
Urutan langkah-langkah proses jalannya program adalah sebagai berikut :
-
Pembacaan Berkas Citra
Pembacaan berkas citra dilakukan dengan perintah
imread. Pembacaan berkas citra dilakukan dengan perintah Matlab sebagai
berikut:
GbrAsli
= imread(filename);
axes(handles.axGbAsli);
imshow(GbrAsli);
-
Citra menjadi Citra Aras Keabuan
Setelah dilakukan pembacaan citra, dilanjutkan dengan
pengubahan citra menjadi citra aras keabuan dengan menekan tombol Aras Keabuan.
Pengubahan citra berwarna menjadi citra aras keabuan dalam program ini menggunakan
perintah rgb2gray.
Koding programnya sebagai
berikut:
gbrGR
= rgb2gray(gbrA);
-
Deteksi
Tepi
Setelah dilakukan pengubahan citra menjadi citra aras
keabuan, lalu dilanjutkan dengan pendeteksian tepi dengan menekan tombol Deteksi
Tepi. Deteksi tepi dilakukan menggunakan detektor Canny. Pendeteksian citra
dengan detektor Canny dalam program ini menggunakan perintah
edge(gbrGR,'canny'). Koding program
sebagai berikut;
axes(handles.axGbTepi);
gbrDT = edge(gbrGR,'canny');
imshow(gbrDT);
-
Transformasi
Citra Tepi dari Koordinat Kartesian menjadi Koordinat Polar
Setelah dilakukan
pendeteksian tepi, lalu dilanjutkan dengan transformasi dari koordinat
Kartesian ke dalam koordinat polar dengan menekan tombol Plot Hough. Transformasi
dari koordinat Kartesian ke dalam koordinat polar
dilakukan dengan menggunakan fungsi Radon yang ada dalam Matlab 7.1.
Koding programnya sebagai berikut:
theta_step=1;
theta = 0:theta_step:360;
[R,xp] = radon(gbrDT,theta);
imagesc(theta, xp, R);
colormap(gray);
xlabel('\theta (degrees)');
ylabel('X\prime');
title('R_{\theta} (X\prime)');
colorbar
Fungsi Radon berfungsi untuk transformasik citra dari
koordinat Kartesian ke dalam koordinat polar.
Deteksi dan Rekonstruksi Garis Lurus
Setelah dilakukan transformasi dari koordinat
Kartesian ke dalam koordinat polar, lalu dilanjutkan dengan deteksi dan
rekonstruksi garis lurus dengan menekan tombol Garis. Tahap-tahap
deteksi dan rekonstruksi garis lurus adalah sebagai berikut:
1. Penghitungan nilai maksimum dari R yaitu
dengan perintah sebagai berikut:
max_R=max(max(R));
2. Penentuan nilai ambang sebesar 0,75 yaitu dengan perintah sebagai
berikut:
threshold=.75;
3. Pencarian nilai R yang memenuhi ketentuan syarat nilai ambang, lalu membuat
indeksnya dengan perintah sebagai berikut.
[II,JJ]=find( R >= (max_R*threshold));
4. Rekonstruksi garis yang memenuhi ketentuan syarat nilai ambang dengan
perintah sebagai berikut:
[line_n, d]=size(II);
imshow(gbrA)
for k=1:line_n
j=JJ(k);
i=II(k);
R_i=(j-1)*theta_step;
xp_i=xp(i);
[n,m]=size(gbrDT);
x_origin=m/2 +(xp_i)*cos(R_i*pi/180);
y_origin=n/2 -(xp_i)*sin(R_i*pi/180);
x1=1;
xe=m;
y1=(y_origin-(x1-x_origin)*tan(((R_i)-90)*pi/180));
ye=(y_origin-(xex_origin)*tan(((R_i)-90)*pi/180));
xv=[x1 xe];
yv=[y1 ye];
hold on
line(xv,yv)
plot(x_origin,y_origin,'.g')
end
BAB III
PENUTUP
5.1 Kesimpulan
Hough Transform adalah teknik transformasi citra yang dapat digunakan
untuk mengisolasi atau dengan kata lain memperoleh fitur dari sebuah citra.
Karena tujuan dari sebuah transformasi adalah mendapatkan suatu fitur yang
lebih spesifik, Classical Hough Transform merupakan teknik yang paling umum
digunakan untuk mendeteksi objek yang berbentuk kurva seperti garis, lingkaran,
elips dan parabola. Keuntungan utama dari transformasi Hough adalah dapat
mendeteksi sebuah tepian dengan celah pada batas fitur dan secara relatif tidak
dipengaruhi oleh derau atau noise.
Daftar Pustaka
[1]. APLIKASI TRANSFORM
HOUGH UNTUK DETEKSI GARIS LURUS di acces
pada 2 januari 2018 pukul 19.42 WIB (http://eprints.undip.ac.id/25328/1/ML2F003503.pdf)
[2]. Transform Hough
Informatika di acces pada 15 januari 2018 pukul 13.20 WIB (http://informatika.web.id/transformasi-hough.htm)
transformasi polar pada iris mata dengan pemrograman vb ada nggak?
BalasHapusbutuh banget soalnya
BalasHapus