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 ?
1.3   Tujuan Penulisan
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.

Gambar 3.1 Diagram alir program.


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)















Komentar

Posting Komentar

Postingan populer dari blog ini

Pengolahan Citra Digital : Laporan Praktikum Jobsheet 3