ANALISIS ALGORITMA TRANSFORMASI HOUGH
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAMDALAM
MENDETEKSI LINGKARAN DAN ELIPS
MENDETEKSI LINGKARAN DAN ELIPS BERBASIS PENGOLAHANBERBASIS PENGOLAHAN CITRA DIGITAL
CITRA DIGITAL
ANALYSIS OF HOUGH T
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR RANSFORM ALGORITHM FOR CIRCLE AND ELLIPSECIRCLE AND ELLIPSE DETECTION BASED ON
DETECTION BASED ON DIGITAL IMAGE PROCESSINGDIGITAL IMAGE PROCESSING
TUGAS AKHIR TUGAS AKHIR
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik
pada Fakultas Elektro dan Komunikasi Institut Teknologi Telkom pada Fakultas Elektro dan Komunikasi Institut Teknologi Telkom
Oleh:
Oleh:
Andri Pranata Kusuma Andri Pranata Kusuma
111090175 111090175 S1 Teknik
S1 Teknik TelekomunikasiTelekomunikasi
FAKULTAS ELEKTRO DAN
FAKULTAS ELEKTRO DAN KOMUNIKASIKOMUNIKASI INSTITUT TEKNOLOGI TELKOM
INSTITUT TEKNOLOGI TELKOM BANDUNG
BANDUNG 2013 2013
INSTITUT TEKNOLOGI TELKOM
INSTITUT TEKNOLOGI TELKOM No. Dokumen No. Dokumen ITT-AK-FITT-AK-FEK-PTT-PEK-PTT-PTT-FM-001/00TT-FM-001/0044
Jl. Telekomunikasi No. 1 Ters. Buah Batu Jl. Telekomunikasi No. 1 Ters. Buah Batu
Bandung 40257
Bandung 40257 No. Revisi No. Revisi 0000
FORMULIR LEMBAR PENGESAHAN FORMULIR LEMBAR PENGESAHAN
TUGAS AKHIR
TUGAS AKHIR Berlaku Berlaku Efektif Efektif 02 02 Mei Mei 20112011
LEMBAR PENGESAHAN LEMBAR PENGESAHAN
TUGAS AKHIR TUGAS AKHIR
ANALISIS ALGORITMA TRANSFORMASI HOUGH
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAMDALAM
MENDETEKSI LINGKARAN DAN ELIPS
MENDETEKSI LINGKARAN DAN ELIPS BERBASIS PENGOLAHANBERBASIS PENGOLAHAN CITRA DIGITAL
CITRA DIGITAL
ANALYSIS OF HOUGH TRA
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR CIRCLE ANDNSFORM ALGORITHM FOR CIRCLE AND ELLIPSE DETECTION BASED ON D
ELLIPSE DETECTION BASED ON DIGITAL IMAGE PROCESSINGIGITAL IMAGE PROCESSING
Andri Pranata Kusuma Andri Pranata Kusuma
111090175 111090175
Telah disetujui dan disahkan sebagai Tugas Akhir Telah disetujui dan disahkan sebagai Tugas Akhir Program Sl Teknik
Program Sl Teknik Telekomunikasi Fakultas Elektro dan KomunikasiTelekomunikasi Fakultas Elektro dan Komunikasi Institut Teknologi Telkom
Institut Teknologi Telkom
Pembimbing
Pembimbing I I Pembimbing Pembimbing IIII
Koredianto
Koredianto Usman, Usman, ST., ST., M.Sc. M.Sc. Suryo Suryo Adhi Adhi Wibowo, Wibowo, ST.,MT.ST.,MT.
NIK
NIK : : 02750290-1 02750290-1 NIK NIK : : 10870628-110870628-1
�������� ���������
�������� ��������� ������������ ��� ��� ������� ������� ����������������������������������������������������������
��� �������������� ��� � ����� ���� ����
��� �������������� ��� � ����� ���� ����
������� �����
������� ����� ��� ��� ������ ������ ����
�������� ���������� ������������
�������� ���������� ������������ ������� ������� ������� ������� �� �� ��� ��� ��������
HALAMAN PERNYATAAN ORISINALITAS HALAMAN PERNYATAAN ORISINALITAS
NAMA
NAMA : ANDRI PRANATA KUSUMA: ANDRI PRANATA KUSUMA NIM
NIM : 11109017: 1110901755 ALAMAT
ALAMAT : : JL. JL. MASJID MASJID RT RT 012/01 012/01 NO.1A NO.1A CIPINANG CIPINANG MELAYU, MELAYU, JAKARTA JAKARTA TIMURTIMUR 13620
13620 No. Telp / Hp
No. Telp / Hp : 08132168: 0813216806440644 Email
Email : : [email protected]@hotmail.com
Menyatakan bahwa Tugas Akhir ini merupakan karya orisinal saya sendiri, dengan judul : Menyatakan bahwa Tugas Akhir ini merupakan karya orisinal saya sendiri, dengan judul :
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAM
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAM MENDETEKSIMENDETEKSI LINGKARAN DAN ELIPS BERBASIS
LINGKARAN DAN ELIPS BERBASIS PENGOLAHAN CITRA DIGITALPENGOLAHAN CITRA DIGITAL
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR CIRCLE AND ELLIPSECIRCLE AND ELLIPSE DETECTION BASED ON DIGITAL IMAGE
DETECTION BASED ON DIGITAL IMAGE PROCESSINGPROCESSING
Atas pernyata
Atas pernyataan ini, an ini, saya saya siap menanggsiap menanggung rung resiko / esiko / sanksi yang sanksi yang dijatuhkan kepada dijatuhkan kepada saya saya apabilaapabila kemudian ditemukan adanya pelanggaran terhadap kejujuran akademik atau etika keilmuan kemudian ditemukan adanya pelanggaran terhadap kejujuran akademik atau etika keilmuan dalam karya ini, atau ditemukan bukti yang menunjukkan ketidakaslian karya ini.
dalam karya ini, atau ditemukan bukti yang menunjukkan ketidakaslian karya ini.
Bandung,
Bandung, Januari Januari 20132013
Andri Pranata Kusuma Andri Pranata Kusuma
111090175 111090175
LEMBAR PERSEMBAHAN
“Katakanlah (Muhammad), ‘Inilah jalanku yang lurus, aku dan orang-orang yang mengikutiku mengajak (kamu) kepada Allah dengan ilmu .’ (QS Yusuf [12]: 108)
“Dan perumpamaan-perumpamaan ini Kami buat untuk manusia; dan tiada yang memahaminya kecuali orang-orang yang berilmu.”(QS Al-‘Ankabuut[29]:43)
“Tuntutlah ilmu, sesungguhnya menuntut ilmu adalah pendekatan diri kepada Allah Azza wajalla, dan mengajarkannya kepada orang yang tidak mengetahuinya adalah sodaqoh.
Sesungguhnya ilmu pengetahuan menempatkan orangnya, dalam kedudukan terhormat dan mulia (tinggi). Ilmu pengetahuan adalah keindahan bagi ahlinya di dunia dan di
akhirat." (HR Ar-Rabii')
“Man Jadda Wajada = Siapa yang bersungguh-sungguh akan berhasil”
Tugas Akhir ini kupersembahkan untuk Papa dan Mamaku tercinta Kedua adikku tersayang Saudara, Sahabat, dan Teman-Temanku
Calon Pendamping Hidupku kelak Dan Pembaca yang giat mencari ilmu
ABSTRAK
Dalam aplikasi sensing robotic dan computer vision dibutuhkan sebuah algoritma pengenalan pola. Pada tugas akhir ini dilakukan penelitian terhadap algoritma Transformasi Hough dalam mendeteksi kurva tertutup sederhana seperti lingkaran atau elips. Pada penelitian sebelumnya, algoritma Transformasi Hough telah digunakan dalam pendeteksian jumlah sisi bangun geometri segi-N. Akan tetapi belum ada penelitian yang menganalisis Transformasi Hough dalam mendeteksi dan membedakan kurva tertutup sederhana.
Untuk mendeteksi objek elips dan lingkaran dalam sebuah citra digital, pertama-tama dilakukan proses akuisisi citra dengan meng- capture objek dari webcam atau dengan membangkitkan citra dari komputer. Lalu tahap preprocessing untuk mendapatkan garis tepi objek. Kemudian digunakan Transformasi Hough Standar (SHT) dan dianalisis kurva sinusoidal hasil transformasi tersebut. Lingkaran akan memiliki bentuk kurva sinusoidal yang cukup teratur dibandingkan elips. Oleh karena itu pada penelitian kali ini akan
digunakan metode standar deviasi untuk membedakan objek lingkaran dan elips. Setelah mendapatkan objek yang diinginkan, kemudian digunakan Transformasi Hough yang di modifikasi (MHT) untuk merekonstruksi bangun tersebut.
Untuk menganalisis tingkat performasi algoritma dalam pendeteksian dan rekonstruksi, maka diujikan 108 citra berbentuk lingkaran dan elips dengan warna dan besar berbeda. Berdasarkan hasil uji, sistem dapat membedakan objek kurva tertutup dengan akurasi 95,46% dan merekonstruksi kurva tertutup dengan akurasi sebesar 100%.
Waktu komputasi rata-rata dalam merekonstruksi lingkaran 4,86 detik dan merekonstruksi elips 0,594 detik.
Kata Kunci : Transformasi Hough Standar (SHT ), Standar Deviasi, Transformasi Hough di Modifikasi (MHT), Lingkaran dan Elips
ABSTRACT
Pattern recognition algorithm is very important for robotic sensing and computer vision. On this thesis, Hough Transform Algorithm is tested to detect simple closed curve like circle and ellipse. On the previous research, Hough Transform Algorithm was used to detect the number of N-side from a geometry object. However, there is still no research to analyze Hough Transform performance in detecting and differentiating simple closed curve.
To detect an object such as ellipse and circle in a digital image, first the image is acquired by capturing from a webcam or generating images from computer. Then the preprocessing stage will be done to get its edges. Next the edges will be transformed using Standard Hough Transform and the curve from Hough Transform will be analyzed. The circle will have a more constant sinusoidal curve than the ellipse. Therefore, in this research standard deviation method is used to differentiate those objects. After gaining the expected ones, a Modified Hough Transform is used to reconstruct the objects.
To analyze the performance of algorithm, all the 108 images of cicrle and ellipse with different color and size is tested. Based on the results, the system can detect and distiguish circle and ellipse objects with 95,46% accuracy as well as reconstruct those object with 100% accuracy. The average computation time in circle reconstruction is 4,86 seconds and ellipse reconstruction is about 0,594 s econds
Keywords : Standard Hough Transform (SHT), Modified Hough Transform (MHT), Circle and Ellipse
KATA PENGANTAR
Segala puji dan syukur sedalam-dalamnya penulis panjatkan ke hadapan Allah SWT, karena berkat rahmat, taufiq, hidayah-NYA, Tugas akhir yang berjudul “ Analisis Algoritma Transformasi Hough Dalam Mendeteksi Lingkaran dan Elips Berbasis Pengolahan Citra Digital” ini bisa diselesaikan sebagai salah satu syarat menyelesaikan program pendidikan
sarjana pada Fakultas Elektro dan Komunikasi, Institut Teknologi Telkom Bandung
Diharapkan Tugas Akhir ini dapat bermanfaat dalam pengembangan dunia keilmuan di kampus Institut Teknologi Telkom yang berkaitan dengan cabang ilmu pengolahan sinyal digital, dan selanjutnya bisa diimplementasikan ke dalam bidang robotik.
Penulis menyadari masih terdapat kekurangan dalam penyusunan Tugas Akhir ini.
Sehingga Penulis pun terbuka untuk menerima saran dan kritik yang bersifat membangun.
Dengan segala kerendahan hati, penulis berharap semoga Tugas Akhir ini dapat bermanfaat dan penulis pada khususnya, serta bagi dunia pendidikan pada umumnya.
Bandung, Januari 2013
Penulis
UCAPAN TERIMA KASIH
Puji syukur Penulis panjatkan kepada Allah SWT, Tuhan Yang Maha Esa, karena atas rahmat dan hidayah-Nya Tugas Akhir ini dapat terselesaikan dengan baik. Shalawat serta salam tidak lupa penulis curahkan kepada Nabi Besar Muhammad SAW, keluarganya, sahabatnya serta pengikutnya.
Penulis sadar bahwa penulis tidak dapat menyelesaikan Tugas Akhir dan perkuliahan di IT Telkom ini tanpa adanya bantuan dari lingkungan sekitar Penulis. Oleh karena itu, penulis mengucapkan terima kasih kepada :
1. Ibu Penulis, Ibu Kusmiyati, SE. yang tidak ada hentinya memberikan perhatian, berdoa, mengingatkan anaknya disetiap keadaan, dan rela datang ke Bandung sendiri untuk mendampingi Penulis disaat sidang. Ayah Penulis, Bpk. Sumatno, yang selalu memberikan semangat, berbagai jenis sokongan dan mengingatkan
untuk selalu tidak boleh jauh dari Allah. Ahmad Zuhdi Dwi Kusuma dan Anita Putri Kusuma yang mendoakan kakaknya mengerjakan Tugas Akhir supaya bisa lulus dan cepat kerja.
2. Keluarga besar Penulis, Nenek Penulis di Jakarta yang senantiasa mendoakan cucu pertamanya, kakek, om, tante, saudara-saudaraku, dengan mengingat kalian Penulis jadi termotivasi untuk mengerjakan Tugas Akhir ini.
3. Bapak Koredianto Usman, ST.,M.sc., selaku pembimbing pertama dan Bapak Suryo Adhi Wibowo, ST., MT., selaku pembimbing kedua. Dua orang yang selalu memotivasi penulis, mengingatkan deadline, dan membimbing penulis di tengah kesibukannya.
4. Bapak Inung Wijayanto, ST.,MT. Selaku dosen wali Penulis yang mengarahkan dan memudahkan segala urusan perwalian agar bisa lanjut sidang dan cepat lulus dari kampus ini dan seluruh dosen IT Telkom atas bimbingannya selama ini.
5. Issafitri Nur Rachmawati alias bebe alias calon ST 2014, atas doa, kesabaran, dan kesediaannya ketika penulis sedang kalut mengingat Tugas Akhir untuk mendengarkan segala keluhan dan curhatan. Ikut mencari pinjaman webcam agar Penulis lancar dalam pengambilan data. Merelakan kamarnya dipakai untuk pengambilan data TA, dan senantiasa memberi semangat kepada penulis. Terima kasih cantik.
6. Kak Anggunmeka Luhur Prasasti, ST. dan kak Dzikrina Khoirunnisak, ST.
yang telah membuka pikiran penulis dalam pengambilan judul dan pembimbing dalam Tugas Akhir ini.
7. Anggi Permata Hadwi alias Tank , sahabat terbaik Penulis selama berkuliah di IT Telkom. Teman seperjuangan di Kopma, teman motivasi, teman saingan, dan teman curhat ketika Penulis masih berada di zaman “kelabilan”. Rodia Mardia, sahabat sesama 3,5 tahun yang siap membantu dan mendengarkan keluh kesah teman seperjuangannya ini.
8. Keluarga besar Kopma IT Telkom, kak Sugeng, kak DJ, kak Ardan, kak Kahfi, Abang, Patur, kak Be, kak Unan, kak Ayu, kak Cus, kak Rebek, Kak Baal, kak Arnas, kak Ria, kak Indah, kak Vira, Luthfi, Pras, Qori, Asuh, Edho, Ninis, Evan, Rina, Dion, Adel, Sari, Mure, Adhi, Doni, Alfath, Zulfi, Fikri, Firda, Dinda, Ebi, Vita, Madu, Hilda, Erty, Puji, Fajar, Andang, Krisna, Bowo, Richo, Yudha, Ilham, teh Yuli, bibi untuk doa dan “pembakaran” yang semakin membuat penulis semangat untuk lulus dari kampus ini.
9. Keluarga besar IMV, squad KRU dan “bimbs of SAO”, Tika, Noi, Rina, Dian, Munawar, Syifa, Ika, Rizka, Rahma, Kun, Lintang, Audy, Kode, Heru, Umi, Janu, Lala yang memberikan dukungan moril dan semangat.
10. Keluarga kelas TT-33-03, teman-teman yang saling memberikan semangat dan motivasi dalam mengerjakan TA, Ayu, Aceng, Relung, Arga, Aul, Muflich, Dwi. Risa yang sudah membantu memeriksa abstrak dan slide Bahasa Inggris . Irna, Iqbal, Rizwan yang sudah menyempatkan waktu untuk datang ke sidang Penulis. Dan Teman-teman TT-33-03 terbaik lainnya, Shid, Safrian, Rahmat, Kompyang, Evan, Luthfi, Tika, Rizka, Mira dan teman lainnya.
Terima kasih untuk seluruh pihak yang tidak dapat dijabarkan satu per satu yang telah membantu Penulis selama ini. Semoga Allah SWT Membalas semua kebaikan dengan karunia-Nya.
DAFTAR ISI
LEMBAR JUDUL ... i
LEMBAR PENGESAHAN ... ii
LEMBAR PERYATAAN ORISINALITAS ... iii
LEMBAR PERSEMBAHAN ... iv
ABSTRAK ... v
ABSTRACT ... vi
KATA PENGANTAR ... vii
UCAPAN TERIMA KASIH ... viii
DAFTAR ISI ... x
DAFTAR GAMBAR ... xiii
DAFTAR TABEL ... xv
DAFTAR PERSAMAAN ... xvi
DAFTAR ISTILAH ... xvii
DAFTAR SINGKATAN ... xix
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Tujuan ... 2
1.3 Manfaat ... 2
1.4 Perumusan masalah ... 2
1.5 Batasan Masalah ... 3
1.6 Metodologi Penelitian ... 3
1.7 Sistematika Penulisan ... 4
1.8 Jadwal Pelaksanaan ... 5
BAB II DASAR TEORI ... 6
2.1 Citra Digital ... 6
2.2 Citra RGB ... 7
2.3 Model Warna HSV ... 7
2.4 Operasi Batas Ambang (Thresholding ) ... 8
2.5 Deteksi Tepi ... 9
2.6 Operasi Morfologi dalam Citra Digital ... 9
2.6.1 Operasi Dilasi dan Erosi ... 10
2.6.2 Operasi Opening ... 11
2.7 Transformasi Hough ... 12
2.7.1 Transformasi Hough Normal ... 12
2.7.2 Transformasi Hough Diskrit ... 13
2.8 Lingkaran ... 13
2.9 Elips ... 14
2.10 Derau ... 15
BAB III PERANCANGAN SISTEM ... 16
3.1 Masukan Sistem ... 17
3.2 Derau/Gangguan ... 18
3.3 Pemrosesan Awal ... 19
3.4 Algoritma Transformasi Hough Standar (SHT) ... 21
3.5 Analisis SHT dalam Membedakan Elips dan Lingkaran ... 24
3.6 Proses Deteksi Letak Posisi dan Rekonstruksi Elips dan Lingkaran ... 26
3.6.1 Analisis Algoritma Transformasi Hough dalam mendeteksi Lingkaran ... 26
3.6.2 Analisis Algoritma Transformasi Hough dalam mendeteksi Elips ... 28
BAB IV ANALISIS HASIL SIMULASI ... 31
4.1 Proses Pengujian ... 31
4.2 Deteksi pada Citra yang dibangkitkan Komputer ... 32
4.3 Deteksi pada Citra yang di-capture Webcam ... 33
4.4 Analisis Hasil Deteksi dan Kesalahan pada Citra Komputer dan Webcam ... 34
4.5 Analisis Hasil Uji Tingkat Eksentrisitas Elips pada Citra Komputer dan Webcam ... 37
4.6 Hasil Uji Keandalan Sistem dengan Derau yang Dibangkitkan MATLAB ... 38
4.6.1 Poisson ... 38
4.6.2 Speckle ... 39
4.6.3 Salt and Pepper ... 40
4.6.4 Gaussian ... 42
4.7 Analisis Hasil Deteksi Objek Lingkaran dan Elips Sebenarnya pada Citra yang di-capture Webcam ... 43
4.8 Pengujian dengan Objek Selain Elips dan Lingkaran ... 45
BAB V PENUTUP ... 47
5.1 Kesimpulan ... 47
5.2 Saran ... 48
DAFTAR PUSTAKA ... xx
DAFTAR LAMPIRAN ... xxii LAMPIRAN
DAFTAR GAMBAR
Gambar 2.1 Representasi citra dalam bentuk matriks ... 6
Gambar 2.2 Kombinasi warna RGB ... 7
Gambar 2.3 Model Warna HSV ... 8
Gambar 2.4 Citra masukan (kiri), citra grayscale (tengah), citra hasil thresholding (kanan) ... 8
Gambar 2.5 Citra masukan (kiri), hasil deteksi tepi canny (kanan) ... 9
Gambar 2.6 Citra masukan (kiri), hasil dilasi (tengah), hasil erosi (kanan) ... 10
Gambar 2.7 Macam-macam elemen penstruktur (strel) ... 11
Gambar 2.8 Citra masukan (kiri), hasil bwareaopen dengan 50 piksel yang terhubung dihilangkan (kanan) ... 11
Gambar 2.9 Transformasi domain citra ke domain hough ... 12
Gambar 2.10 Lingkaran ... 14
Gambar 2.11 Parameter Elips ... 14
Gambar 3.1 Diagram alir cara kerja sistem ... 16
Gambar 3.2 Contoh citra input yang dibangkitkan oleh computer ... 17
Gambar 3.3 Contoh citra input yang di-capturedari web-cam ... 17
Gambar 3.4 Diagram blok preprocessing ... 19
Gambar 3.5 Tahap pemrosesan awal ( preprocessing) berdasarkan gambar ... 21
Gambar 3.6 Representasi persamaan garis parameter rho(r), theta ... 22
Gambar 3.7 Contoh implementasi Standard Hough Transform (1) ... 22
Gambar 3.8 Contoh implementasi Standard Hough Transform (2) ... 23
Gambar 3.9 Local Maxima Hasil Transformasi Hough ... 23
Gambar 3.10 Diagram alir proses pendeteksian dan pengklasifikasian ... 24
Gambar 3.11 Hasil Transformasi Hough standar terhadap citra lingkaran ... 24
Gambar 3.12 Hasil Transformasi Hough standar terhadap citra elips ... 24
Gambar 3.13 Hasil Ekstraksi Transformasi Hough ... 25
Gambar 3.14 Diagram alir Algoritma Transformasi Hough untuk mendeteksi dan merekonstruksi lingkaran ... 27
Gambar 3.15 Hasil rekonstruksi dengan algoritma TransformasiHough untuk lingkaran ... 28
Gambar 3.16 Diagram alir Algoritma Transformasi Hough untuk mendeteksi dan
merekonstruksi elips ... 29
Gambar 3.17 Geometri sebuah Elips ... 29
Gambar 3.18 Hasil rekonstruksi algoritma Transformasi Hough untuk elips ... 30
Gambar 4.1 Rincian citra input ... 31
Gambar 4.2 Grafik perbandingan persentasi akurasi citra komputer ... 33
Gambar 4.3Grafik perbandingan persentase akurasi citra webcam ... 34
Gambar 4.4 Citra komputer dan ditambah derau Poisson ... 38
Gambar 4.5 Citra komputer dan ditambah derau Poisson ... 38
Gambar 4.6 Grafik akurasi hasil uji derau Speckle dengan berbagai variance ... 39
Gambar 4.7 Citra komputer dan ditambah derau Speckle (variance 0,3) ... 40
Gambar 4.8 Citra webcam dan ditambah derau Speckle (variance 0,3) ... 40
Gambar 4.9 Grafik akurasi hasil uji derau Salt and Pepper dengan berbagai Kerapatan ... 41
Gambar 4.10 Citra webcam dan ditambah derau Salt & Pepper (density 0,2) ... 41
Gambar 4.11 Citra komputer dan ditambah derau Salt & Pepper (density 0,2) ... 41
Gambar 4.12 Grafik akurasi hasil uji derau Gaussian dengan mean=0 ... 42
Gambar 4.13 Grafik akurasi hasil uji derau Gaussian dengan variance=0,01 ... 42
Gambar 4.14 Derau Gaussian dengan mean= 0 (var=0 kiri, var=0,2 tengah, var=0,5 kanan) ... 43
Gambar 4.15 Derau Gaussian dengan variance = 0.01 (mean=0 kiri,mean=0,2 tengah, mean=0,5 kanan) ... 43
Gambar 4.16 Citra lingkaran yang terdeteksi sebagai elips karena bayanga n (kiri= citra masukan, tengah=model warna HSV, kanan=hasil threshold ) ... 44
Gambar 4.17 Citra lingkaran yang tidak terdeteksi karena terlalu gelap (kiri= citra masukan, tengah=model warna HSV, kanan=hasil threshold ) ... 45
Gambar 4.18 Hasil transformasi segi sepuluh kedalam domain Hough ... 46
Gambar 4.19 Hasil transformasi segi dua belas kedalam domain Hough ... 46
DAFTAR TABEL
Tabel 4.1 Perbandingan Hasil Uji Deteksi Lingkaran dan Elips ... 36
Tabel 4.2 Perbandingan Hasil Uji Tingkat Eksentrisitas ... 38
Tabel 4.3 Perbandingan Hasil uji dengan derau Poisson ... 39
Tabel 4.4 Hasil Uji Derau Speckle dengan Berbagai Variance ... 40
Tabel 4.5 Hasil Uji Derau Speckle dengan Berbagai Variance ... 41
Tabel 4.6 Hasil Uji Derau Gaussiandengan Mean=0 dan Berbagai Nilai Variance ... 43
Tabel 4.7 Hasil Uji Derau Gaussiandengan Variance=0 dan Berbagai Nilai Mean ... 43
Tabel 4.8 Perbandingan Hasil Uji Objek Sesungguhnya ... 45
Tabel 4.9 Hasil Uji Objek Selain Lingkaran dan Elips ... 45
DAFTAR PERSAMAAN
Persamaan (2.1) ... 8
Persamaan (2.2) ... 10
Persamaan (2.3) ... 10
Persamaan (2.4) ... 12
Persamaan (2.5) ... 13
Persamaan (2.6) ... 13
Persamaan (2.7) ... 13
Persamaan (2.8) ... 13
Persamaan (2.9) ... 13
Persamaan (2.10) ... 13
Persamaan (2.11) ... 13
Persamaan (2.12) ... 13
Persamaan (2.13) ... 14
Persamaan (2.14) ... 14
Persamaan (2.15) ... 14
Persamaan (2.16) ... 15
Persamaan (2.17) ... 15
Persamaan (2.18) ... 15
Persamaan (3.1) ... 21
Persamaan (3.2) ... 21
Persamaan (3.3) ... 25
Persamaan (3.4) ... 29
Persamaan (3.5) ... 29
Persamaan (3.6) ... 29
Persamaan (3.7) ... 29
Persamaan (3.8) ... 30
Persamaan (3.9) ... 30
Persamaan (4.1) ... 33
DAFTAR ISTILAH
Accumulator Array Tabel yang digunakan untuk meletakkan parameter Transformasi Hough yaitu parameter dari objek yang ingin dideteksi dan bertambah jika terdapat suatu kondisi yang terpenuhi.
Computer Vision Proses otomatis yang mengintegrasikan sejumlah besar proses persepsi visual seperti akuisisi citra, pengolahan citra, pengenalan, dan pembuat keputusan.
Eksentrisitas Elips (e) Derajat kepipihan elips, secara teoretis
1
0≤e< semakin mendekati 1 maka elips akan semakin pipih.
Fitting Proses rekonstruksi dan pengepasan
sebuah objek.
Local Maxima Nilai maksimum yang terdapat pada
ruang akumulator.
Preprocessing (Pemrosesan Awal) Suatu proses dalam pengolahan citra digital untuk mendapatkan kondisi citra yang diinginkan untuk proses
selanjutnya.
Robotic Sensing kemampuan robot untuk melakukan
proses visual seperti pada indera manusia.
Standar Deviasi Metode statistik yang digunakan untuk
melihat homogenitas dari sebuah kelompok.
Threshold Suatu nilai (bisa lebih dari 1) batas
ambang yang biasa digunakan untuk proses pengklasifikasian.
Transformasi Hough Standar (SHT) Transformasi yang digunakan untuk mengubah domain citra menjadi domain ( ρ ,θ ) untuk mendeteksi keberadaan garis.
Transformasi Hough dimodifikasi (MHT) Transformasi hough yang dimodifikasi untuk mendeteksi dan merekonstruksi suatu objek tertentu.
DAFTAR SINGKATAN
Bi : Blue Input
BMP : Windows Bitmap Image File Bo : Blue Output
CHT : Circular Hough Transform EHT : Elliptical Hough Transform Gi : Green Input
Go : Green Output
GST : Gray Scale Transformation HSV : Hue, Saturation, Value MHT : Modified Hough Transform RGB : Red Green Blue
Ri : Red Input Ro : Red Output
SHT : Standard Hough Transform Strel : Structuring Element
BAB I
PENDAHULUAN
1.1 Latar Belakang
Bangun geometri 2 dimensi adalah sebuah bidang datar yang dibatasi oleh garis-garis dan dimana titik ujung setiap garis terhubung dengan garis yang lain minimal tiga buah garis, sehingga membentuk sebuah bangun tertutup[12]. Berbeda dengan bangun geometri, Lingkaran dan elips merupakan kurva sederhana tertutup yang beraturan. Lingkaran adalah himpunan titik-titik pada bidang dalam jarak tertentu (r), dari suatu titik tertentu, yang disebut pusat[17]. Sedangkan elips didefinisikan sebagai tempat kedudukan titik-titik dalam bidang yang jumlah jarak dari dua titiknya konstan. Suatu elips punya dua sumbu simetri, yaitu sumbu sumbu utama (sumbu panjang) dan sumbu minor (sumbu pendek)[20]. Selain
itu yang membedakan antara elips dan lingkaran adalah nilai eksentrisitasnya. Elips memiliki nilai eksentrisitas antara 0-1 sedangkan lingkaran memiliki nilai eksentrisitas 0[19].
Pada aplikasi sensing robotic atau computer vision, dibutuhkan sebuah algoritma pengenalan pola. Hal ini bertujuan agar komputer dapat mengidentifikasi obyek-obyek tertentu. Salah satu algoritma pengenalan pola adalah algoritma Transformasi Hough.
Transformasi Hough telah diperkenalkan oleh Paul Hough pada tahun 1962. Pada implementasinya Transformasi Hough melakukan pemetaan titik-titik pada citra ke dalam ruang parameter ( Hough space) berdasarkan suatu fungsi dari bentuk yang ingin dideteksi.
Pada awalnya TH digunakan untuk mendeteksi garis pada sebuah citra. Namun oleh Duda dan Hart[4], Transformasi Hough dikembangkan dalam pendeteksian kurva, umumnya seperti lingkaran dan elips. Salah satu keunggulan dari Transformasi Hough adalah lebih cepat dan lebih baik akurasinya dari Transformasi Radon[9].
Pada penelitian sebelumnya oleh Aji Atturmudzi[1], algoritma Transformasi Hough digunakan dalam pendeteksian posisi mata dan oleh Dzikrina Khoirunnisak[9], telah dilakukan penganalisisan terhadap performansi algoritma Transformasi Hough dalam mengidentifikasi bangun geometri 2D segi-N. Namun belum ada penelitian yang membahas bagaimana performansi algoritma Transformasi Hough dalam mendeteksi dan membedakan kurva tertutup yaitu lingkaran dan juga elips. Banyak objek yang terbentuk dari kurva tertutup, misal bola, piring, telur, sabun, dll. Oleh karena itu, kemampuan untuk membedakan dan menganalisis elips dan lingkaran merupakan hal penting untuk
diimplementasikan agar objek-objek yang tersusun dari kurva tertutup tersebut dapat terdeteksi dan dibedakan. Maka dari itu, pada penelitian kali akan dibuat dan dianalisis suatu aplikasi untuk mendeteksi dan menganalisis objek lingkaran dan elips yang terdapat pada sebuah citra digital dengan menggunakan algoritma Transformasi Hough.
1.2 Tujuan
Tujuan tugas akhir ini dapat dirumuskan sebagai berikut.
1. Mengimplementasikan aplikasi untuk mendeteksi dan menganalisis objek lingkaran dan elips baik yang dibuat maupun objek sesungguhnya berbasis pengolahan citra digital.
2. Menguji dan menganalisis simulasi sistem untuk deteksi objek buatan hasil akuisisi webcam dan objek yang dibangkitkan lewat komputer
3. Menguji performansi Transformasi Hough dengan mengukur akurasi dan waktu komputasi dalam mendeteksi dan menganalisis objek lingkaran dan elips.
4. Menguji dan menganalisis hasil implementasi sistem dengan derau yang memiliki kerapatan yang berbeda.
1.3 Manfaat
Manfaat dari pelaksanaan tugas akhir ini adalah sebagai berikut.
1. Melengkapi penelitian sebelumnya dan bisa sebagai tambahan bahan perkuliahan di mata kuliah computer vision.
2. Dasar pengenalan objek karena objek selain terbentuk dari bangun geometri, objek-objek juga bisa terbentuk dari komponen lingkaran dan elips
3. Dapat digunakan dan diterapkan pada aplikasi sensing robotic.
1.4 Perumusan masalah
Perumusan masalah yang digunakan pada Tugas Akhir ini adalah:
1. Bagaimana melakukan tahap preprocessing dari objek lingkaran dan elips dalam citra digital menggunakan MATLAB.
2. Bagaimana menggunakan algoritma Transformasi Hough untuk mengetahui adanya objek lingkaran atau elips dari sebuah citra digital.
3. Bagaimana cara mendeteksi dan menganalisis objek lingkaran dan elips dari sebuah citra digital.
4. Bagaimana pengaruh tingkat eksentrisitas elips terhadap proses pendeteksian dengan Transformasi Hough.
5. Bagaimana pengaruh jenis citra masukan terhadap performansi sistem: citra dengan derau dan citra tidak dengan derau.
6. Bagaimana pengaruh level derau terhadap performansi Transformasi Hough.
7. Bagaimana tingkat keberhasilan sistem berdasarkan waktu komputasi, tingkat parameter akurasi, dan error.
1.5 Batasan masalah
Pengerjaan tugas akhir ini, dibatasi pada hal-hal sebagai berikut:
1. Masukan sistem merupakan citra dengan ukuran 640x480 piksel, memiliki format
*.bmp
2. Citra masukan didapat melalui akuisisi dari web-cam (untuk hasil aktual) dan beberapa citra masukan didapat dengan dibangkitkan oleh software (CorelDRAW X5) untuk pembuktian hasil teoretis.
3. Objek atau citra untuk pengujian eksentrisitas dibatasi dengan eksentrisitas 0.2, 0.3, 0.4, 0.5 , dan 0.8.
4. Citra masukan merupakan gambar lingkaran dengan jari-jari minimum piksel sebesar 50 pixel dan maksimal piksel bernilai 150 piksel baik aktual maupun ideal (CorelDRAW) dan elips.
5. Latar belakang objek berwarna putih.
6. Penambahan derau yang dibangkitkan lewat aplikasi MATLAB untuk menguji performansi sistem (derau Gaussian, Salt & Pepper, Speckle, dan Poisson).
7. Alat bantu yang digunakan pada penelitian ini adalah MATLAB versi R2009a.
1.6 Metodologi Penelitian
Penelitian ini bersifat terapan, hasil akhir dari penelitian dapat diaplikasikan dan diterapkan secara langsung. Metode yang digunakan untuk menyelesaikan tugas akhir ini adalah dengan melakukan eksperimen. Eksperimen akan berlangsung di laboratorium IMV dan tempat tinggal penulis. Eksperimen pertama yang dilakukan adalah mengakuisisi citra dan menentukan kategori citra, apakah termasuk berderau atau tidak. Kemudian akan dilakukan eksperimen pendeteksian bentuk dengan menggunakan Transformasi Hough sehingga hasil keluarannya berupa deteksi bidang yang diinginkan. Dan tahap terakhir dari
deteksi ini adalah proses rekonstruksi ( fitting ) dari objek yang diteliti. Implementasi Transformasi Hough ini dengan menggunakan platform MATLAB R2009a. Berdasarkan hasil keluaran sistem maka akan dibuat analisis berdasarkan skenario yang dijalankan.
Kemudian dapat ditarik kesimpulan dari hasil analisis tersebut.
1.7 Sistematika Penulisan
Tugas akhir ini dibagi dalam beberapa topik bahasan yang disusun secara sistematis sebagai berikut :
Bab I Pendahuluan
Bab ini membahas latar belakang, tujuan, manfaat, perumusan dan batasan masalah, metodologi penelitian serta sistematika pe nulisan.
Bab II Dasar Teori
Bab ini membahas teori yang mendukung dan mendasari penulisan tugas akhir ini, meliputi pengolahan citra digital, teori dasar algoritma Transformasi Hough, karakteristik bangun Lingkaran dan Elips, serta teori lain yang mendukung.
Bab III Perancangan Sistem
Dalam BAB III diuraikan tentang model perancangan sistem dari tahap pemrosesan awal, sampai penggunaan Algoritma Transformasi Hough dalam deteksi objek berbasis citra digital
Bab IV Analisis Hasil Simulasi
Bab ini membahas hasil simulasi yang diperoleh dan memberikan analisis terhadap hasil simulasi tersebut. Objek masukan dalam keadaan tanpa derau hingga objek diberikan derau dengan berbagai kerapatan dan analisis objek kurva tertutup dalam kehidupan nyata.
BAB V Kesimpulan Dan Saran
Bab ini berisi kesimpulan dari analisis–analisis skenario yang telah dilakukan dan saran untuk pengembangan lebih lanjut.
1.8 Jadwal Pelaksanaan
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 � 2 3 4 1 Studi Literatur
2
Pengumpulan Data
3
Implementasi Perangkat
Lunak 4
Analisis Performansi 5
Perbaikan Sistem 6
Pengambilan keputusan
7
Menulis Buku/Laporan
Tugas Akhir
Des-12 Jan-13 No Kegiatan Sep-12 Okt-12 Nop-12
BAB II DASAR TEORI
2.1 Citra Digital[9]
Citra digital merupakan citra yang dapat diolah oleh komputer. Sebuah citra digital dapat didefinisikan sebagai fungsi 2-Dimensi, f(x,y) dimana x dan y merupakan koordinat posisi, dan nilai dari f menunjukkan intensitas dari warna tiap piksel dari sebuah citra. Dan dapat diwakili oleh sebuah matriks yang terdiri dari M kolom dan N baris, dimana perpotongan antara kolom dan baris disebut piksel, yaitu elemen terkecil dari sebuah citra.
Setiap piksel f(x,y) memiliki nilai intensitas atau warna dari piksel di titik itu, sehingga sebuah citra digital dapat ditulis dalam bentuk matriks berikut
( )
−
−
−
−
−
−
=
) 1 , 1 ( ...
) 1 , 1 ( ) 0 , 1 (
...
...
...
...
) 1 , 1 ( ...
...
) 0 , 1 (
) 1 , 0 ( ...
) 1 , 0 ( )
0 , 0 ( ,
M N f N
f N
f
M f f
M f f
f y
x f
Dan bila matriks tersebut diubah dalam bentuk matematisnya, maka:
1 2 3 4 5 X
1 0 0 25 70 83 f(1,3)
2 0 15 17 26 76
f(x,y)= 3 0 31 25 21 61
4 0 2 1 17 22
5 0 14 28 52 65 f(5,1)
Y
Gambar 2.1 Representasi citra dalam bentuk matriks
Piksel pada koordinat (5,1) bernilai intensitas 0 yang berarti warna piksel tersebut hitam, piksel pada koordinat (1,3) bernilai 25 yang berarti warnanya terletak antara hitam dan putih, dan seterusnya.
2.2 Citra RGB[19]
Citra RGB, yang biasa disebut juga citra “true color”, disimpan dalam array berukuran m x n x 3 yang mendefinisikan warna merah, hijau, dan warna biru untuk setiap pikselnya. Warna pada tiap piksel ditentukan berdasarkan kombinasi dari warna merah, hijau, dan warna biru. RGB merupakan citra 24 bit dengan komponen merah, hijau, biru yang masing-masing bernilai 8 bit sehingga intensitas kecerahan warna sampai 256 level
dan kombinasi warnanya kurang lebih sekitar 16 juta warna sehingga disebut “ true color”.
Tingkat kecerahan paling rendah yaitu 0 untuk warna hitam dan putih bernilai 255.
Gambar 2.2 Kombinasi warna RGB
Masing-masing komponen warnanya dapat menyumbangkan tingkat kecerahan masing-masing. Sebagai contoh, apabila semua warna memberi intensitas warna yang sama, maka akan menjadi derajat keabuan dari hitam (intensitas warna level 0) sampai putih (intensitas warna level 255). Begitu juga apabila kombinasi intensitas warna ada yg paling dominan, maka kombinasi yang dihasilkan akan dominan dengan intensitas yang paling besar. Misal intensitas warna merah adalah 255 sedangkan hijau dan biru memiliki intensitas 0, maka akan menghasilkan warna kombinasi dominan biru.
2.3 Model Warna HSV[11]
Model warna HSV mendefinisikan warna dalam terminologi Hue, Saturation dan Value. Hue menyatakan warna sebenarnya, seperti merah, hijau, biru, violet, kuning, dsb.
Saturation menyatakan tingkat kemurnian suatu warna, yaitu mengindikasikan seberapa banyak warna putih diberikan pada warna. Value adalah derajat keterangan (brightness) atau atribut yang menyatakan banyaknya cahaya yang diterima oleh mata tanpa memperdulikan warna.
Gambar 2.3 Model Warna HSV
Karena model warna HSV merupakan model warna yang diturunkan dari model warna RGB maka untuk mendapatkan warna HSV ini , kita harus melakukan proses konversi warna dari RGB ke HSV. HSV merupakan salah satu cara untuk mendefinisikan warna yang didasarkan pada roda warna. Hue mengukur sudut sekitar roda warna (merah pada 0 derajat, 120 derajat di hijau, biru, di 240 derajat). Saturation yang menunjukkan pada radius roda warna sehingga menunjukkan proporsi antara gelap (pusat) untuk warna ke putih murni (di luar).Value Menunjukkan nilai kecerahan. Hue memiliki nilai antara 0 hingga 360 (derajat), Saturation and Value berkisar dari 0 hingga 100%.
2.4 Operasi Batas Ambang (Thresholding)[9]
Operasi Thresholding digunakan untuk mengubah citra dengan format skala keabuan, yang mempunyai kemungkinan nilai lebih dari 2 ke citra biner yang memiliki 2 buah nilai (yaitu 0 dan 1). Fungsi yang digunakan adalah fungsi transformasi skala keabuan (gray scale transformation/GST).
GST function adalah fungsi yang memetakan tingkat keabuan citra masukan (Ki) ke tingkat keabuan citra output (Ko).Untuk citra true color fungsi ini diterapkan pada ketiga elemen warna:
) ( ),
( ),
( 0 0
0 fR Ri G fG Gi B fB Bi
R = = = (2.1)
Gambar 2.4Citra masukan (kiri), citra grayscale (tengah), citra hasil thresholding (kanan)
2.5 Deteksi Tepi[19]
Tepi (edge) adalah bagian dari citra di mana intensitas kecerahan berubah secara drastis menjadi derajat keabuan. Deteksi tepi (edge detection) adalah langkah awal untuk melingkup operasi dalam citra. Tepi mencirikan batas-batas objek, oleh karena itu berguna untuk proses identifikasi objek dalam citra. Deteksi tepi pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
1. Untuk meningkatkan penampakan garis batas suatu daerah dalam citra
2. Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena efek dari proses akuisisi citra
3. Serta untuk mengubah citra 2-Dimensi menjadi bentuk kurva.
Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Dalam objek berdimensi1, perubahan dapat diukur dengan menggunakan fungsi turunan (derivative function).
Perubahan mencapai maksimum pada saat nilai turunan pertamanya mencapai nilai maksimum atau nilai turunan kedua (2ndderivative) bernilai 0.
Pada penelitian tugas akhir ini metode deteksi yang digunakan adalah metode deteksi tepi Canny (Canny Edge Detector). Metode pendeteksian Canny adalah metode pendeteksian tepi yang baik, karena metode ini menggunakan 2 batas ambang (threshold) berbeda untuk mendeteksi tepi “kuat” dan tepi “lemah” dan memasukkan tepi yang
“lemah” kedalam keluaran hanya saat tepi tersebut terhubung dengan tepi yang “kuat”.
Berikut adalah contoh dari hasil deteksi tepi menggunakan operator Canny.
Gambar 2.5Citra masukan (kiri), hasil deteksi tepi canny (kanan)
2.6 Operasi Morfologi dalam Citra Digital
Operasi-operasi morfologi pada MATLAB menyediakan informasi tentang bentuk atau struktur sebuah citra. Semua operasi morfologi bekerja pada citra biner. Beberapa dari perintah-perintah tersebut, seperti fungsi perimeter dan angka Euler, memungkinkan untuk melaksanakan operasi 4 sampai 8 ‘tetangga’ yang berhubungan. Berikut operasi morfologi yang digunakan dalam penelitian tugas akhir ini.
2.6.1 Operasi Dilasi dan Erosi[9]
Dilasi dan erosi merupakan proses operasi morfologi dalam pengolahan citra digital.
Operasi dilasi dilakukan untuk memperbesar ukuran segmen obyek, sedangkan operasi erosi dilakukan untuk memperkecil ukuran segmen obyek.
Secara matematis, proses dilasi dapat dilihat pada Persamaan (2.2), sedangkan proses erosi bisa dilihat pada Persamaan (2.3).
B A S A
D( , )= ⊕ (2.2)
B A S A
E ( , ) = ⊗ (2.3)
Dimana A merupakan objek yang akan didilasi/dierosi dengan objek S sebagai objek yang mempunyai titik pusat.
Persamaan 2.2 menjelaskan bahwa arti dari dilasi merupakan proses penggabungan titik-titik latar (0) menjadi bagian dari objek (1), berdasarkan strel (structuring element) S yang digunakan.
Secara definisi, cara dilasi untuk setiap titik pada A, dilakukan hal berikut:
1. Letakkan titik poros S pada titik A tersebut
2. Beri angka 1 untuk semua titik yang terkena/tertimpa oleh struktu S pada posisi tersebut
Operasi erosi adalah kebalikan dari operasi dilasi. Erosi merupakan proses penghapusan titik-titik objek (1) menjadi bagian dari latar (0), berdasarkan strel (structuring element) S yang digunakan. Persamaan 2.3 menjelaskan bahwa pada operasi ini, ukuran obyek diperkecil dengan mengikis sekeliling obyek. Terdapat dua cara yang dilakukan yaitu dengan mengubah semua titik batas menjadi titik latar dan dengan menset semua titik di sekeliling titik latar menjadi titik latar.
Secara definisi, cara erosi untuk setiap titik pada A, dilakukan hal berikut:
1. letakkan titik poros S pada titik A tersebut
2. jika ada bagian dari S yang berada di luar A, maka titik poros dihapus/dijadikan latar
Gambar 2.6 Citra masukan (kiri), hasil dilasi (tengah), hasil erosi (kanan)
Sama dengan fungsi dilate fungsi erode juga menggunakan (elemen penstruktur).
Gambar 2.7Macam-macam elemen penstruktur (strel)[18]
2.6.2 Operasi Opening[18]
Operasi ini secara morfologi “membuka” citra biner dengan kata lain menghilangkan objek tertentu. Dalam MATLAB fungsi yang digunakan adalah fungsi bwareaopen.
Fungsi tersebut menghilangkan objek biner yang saling terhubung yang memiliki jumlah piksel dibawah piksel yang sudah ditentukan, kemudian memunculkan citra biner baru tanpa objek yang ingin dihilangkan.
Gambar 2.8 Citra masukan (kiri), hasil bwareaopen dengan 50 piksel yang terhubung dihilangkan (kanan)
2.7 Transformasi Hough[18]
Transformasi Hough adalah teknik ekstraksi fitur yang digunakan dalam proses pengolahan citra digital. Transformasi Hough mengestimasi nilai parameter dengan menggunakan mekanisme voting. Titik dalam kurva menyumbang suara untuk beberapa kombinasi parameter. Parameter yang memperoleh suara terbanyak terpilih sebagai pemenang (Local Maxima).
Pada awalnya Transformasi Hough diperkenalkan oleh Paul Hough tahun 1962 untuk mendeteksi garis lurus pada sebuah citra. Pada tahun 1972 Transformasi Hough dimodifikasi oleh Richard Duda dan Peter Hart yang dikenal dengan "Generalized Hough Transform" dengan menggunakan parameter angle-radius dan slope-intercept .
2.7.1 Transformasi Hough Normal[25]
Transformasi Hough didefinisikan untuk fungsi A (x, y) sebagai:
( )
A( )
x y x y dxdy H θ , ρ =∫ ∫
∞ , δ ( ρ − cosθ − sinθ )∞
−
∞
∞
−
(2.4)
di mana adalah fungsi delta-Dirac. Dengan A (x, y), setiap titik (x, y) dalam gambar asli, A, berubah menjadi ρ = xcosθ + ysinθ , dimana adalah jarak tegak lurus dari asal garis pada sudut θ (sudut θ akan dibatasi untuk 0<θ <π yang dapat menghasilkan nilai
θ negatif).
Gambar 2.9Transformasi domain citra ke domain hough
Pada Transformasi Hough, titik-titik yang terletak pada baris yang sama dalam gambar akan menghasilkan sinusoid yang berpotongan di satu titik pada domain Hough.
Untuk invers transformasi, atau backprojection, setiap titik dalam domain Hough berubah menjadi garis lurus pada gambar.
Pada umumnya, Transformasi Hough digunakan dengan gambar biner, dengan
(
θ , ρ)
H = yang memberikan jumlah sinusoid yang melintasi di titik
(
θ , ρ)
, dan jumlah total poin yang terbentuk, dapat membentuk garis pada gambar asli. Dengan memilihthreshold/ T untuk H
( )
θ , ρ dan dengan menggunakan fungsi invers Hough, bisa diperoleh gambar asli dengan garis yang terbentuk sejumlah T poin.2.7.2 Transformasi Hough Diskrit[25]
Pada pemrosesan citra digital, dilakukan pendekatan secara diskrit dengan melakukan sampling pada setiap komponennya. Citra digital dengan ukuran MxN, memiliki komponen-komponen sebagai berikut [3]:
1 ,
, 1 ,
min + ∆ =0 −
=
= x x m x m M
x m K
(2.5)
1 ,
, 1 ,
min + ∆ =0 −
=
= y y n y n N
y n K
(2.6)
1 , , 1 ,
min + ∆ =0 −
=
= t t T
t θ θ K
θ
θ (2.7)
1 , , 1 ,
min+ ∆ =0 −
=
= ρ r ρ r ρ r
K
Rρ (2.8)
Transformasi Hough diskrit digunakan untuk pemrosesan citra digital dengan melakukan sampling pada setiap komponen citra tersebut. Hough diskrit dapat didefinisikan dengan persamaan berikut:
∑ ∑
= m n
Amn
H (θ , ρ ) δ ( ρ ,[ρ ']) (2.9) Dimana tanda kurung [] menunjukkan pembulatan ke integer terdekat, dan
θ θ
ρ '=(m∆ x+ xmin)cos +(n∆ y + ymin)sin (2.10)
Piksel yang diasumsikan memiliki jarak Dx dan Dy dalam arah x dan y. Fungsi delta- Dirac didefinisikan sebagai:
[ ] (
ρ , ρ ')
δ
(2.11)
2.8 Lingkaran[19]
Lingkaran adalah tempat kedudukan titik-titik yang berjarak sama dari suatu titik tetap. Titik tetap tersebut dinamakan pusat lingkaran. Suatu lingkaran memiliki persamaan
2 2 0 2
0) ( )
( x− x + y− y = R (2.12)
� � �′�
�
Dengan R adalah jari-jari lingkaran dan ( x0,y0)adalah koordinat pusat lingkaran.Jika pusat lingkaran terdapat di (0,0) maka persamaan di atas dapat dituliskan sebagai
2 2
2 y R
x + = (2.13)
Gambar 2.10 Lingkaran
Persamaan Lingkaran dapat pula dirumuskan dalam suatu persamaan parametrik, yaitu
θ
0 Rcos
x
x = + (2.14)
θ
0 Rsin
y
y = + (2.15)
yang apabila dibiarkan menjalani t akan dibuat suatu lintasan berbentuk lingkaran dalam ruang x-y.
2.9 Elips[18]
Elips didefinisikan sebagai kurva tertutup halus yang simetris terhadap sumbu vertikal dan horizontalnya. Jarak antara 2 titik yang berlawanan letaknya, akan maksimum pada sumbu mayornya dan akan minimum pada sumbu minornya.
Gambar 2.11 Parameter Elips
F1 dan F2 merupakan poin yang disebut fokus elips. Terletak pada sumbu mayor dan sama jaraknya dari titik pusat. Jarak dari titik sembarang P terhadap dua titik fokus ini selalu konstan yaitu sama dengan panjang sumbu mayornya
(
PF 1 + PF 2 =2a)
.Eksentrisitas elips, yang biasanya dinotasikan dengan ε atau e, adalah rasio dari jarak antara titik fokus terhadap panjang dari sumbu utama
a f a
b a
b
e a =
−
− =
=
=
2 2
2 2
1
ε
(2.16)
eksentrisitas ini harus bernilai antara 0 dan 1, bernilai nol jika dan hanya jika a dan b sama (lingkaran). Jika eksentrisitas elips cenderung ke 1 maka elips memiliki bentuk lebih pipih melonjong.
Bentuk umum persamaan elips dengan titik pusat (0,0) adalah :
2 1
2 2
2
= + b
y a
x (2.17)
dimana a ≠ b, a dan b mempunyai tanda yang sama, tapi tidak sama besar. A merupakan setengah dari panjang sumbu mayor dan b merupakan panjang sumbu minor, berlaku sebaliknya.
Bentuk umum elips ini dapat diubah ke dalam bentuk standar elips dengan
(
α ,β)
adalah titik pusat elips selain (0,0) menjadi : ) 1 (
) (
2 2 2
2
− =
− +
b y a
x α β
(2.18)
2.10 Derau ( Noise)[9]
Noise (Derau) adalah citra atau gambar atau piksel yang mengganggu kualitas citra.
Derau (noise) dapat disebabkan oleh gangguan fisis (optik) pada alat akuisisi maupun secara disengaja akibat proses pengolahan yang tidak sesuai. Pada beberapa pengolahan citra, terkadang noise diperlukan untuk menguji performansi sistem, baik akurasi maupun waktu komputasi yang diperlukan. Contoh adalah bintik hitam atau putih yang muncul secara acak yang tidak diinginkan di dalam citra. bintik acak ini disebut dengan derau salt
& pepper.
BAB III
PERANCANGAN SISTEM
Secara umum sistem pendeteksian bangun komponen lingkaran atau elips dalam citra yang dirancang dalam tugas akhir ini, dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram alir cara kerja sistem
Untuk melakukan proses pendeteksian kurva tertutup, awalnya dilakukan akuisisi citra atau proses mendapatkan citra. Citra berukuran 640x480 piksel ini nantinya didapatkan lewat webcam atau kamera untuk hasil aktual dan untuk hasil teoretis digunakan citra yang sudah disimpan dalam komputer. Setelah itu dilakukan tahap preprocessing untuk mengurangi efek derau dan mendapatkan citra tepi elips atau lingkaran berbentuk citra biner Setelah didapatkan citra tersebut, maka bisa dilakukan tahap selanjutnya yaitu pemilihan deteksi. Dengan menggunakan Standard Hough Transform, maka akan terbentuk hasil pengolahan tepi yang dihasilkan dari tahap preprocessing .
Tahap tersebut akan mengklasifikasikan jenis bangun yang terdeteksi menjadi elips
parameter berbeda untuk mendeteksi keberadaan lingkaran dan elips. Hasil yang diharapkan kurva tertutup akan terdeteksi dan diketahui letaknya, dan sesuai dengan dengan citra yang terlihat pada mata atau teoretis. Proses pengujian dilakukan dengan tambahan-tambahan noise dalam citra masukan.
3.1 Masukan Sistem
Tahap pertama dalam cara kerja sistem ini adalah dengan memulai aplikasi yang telah dibuat dengan menggunakan MATLAB R2009A. Kemudian kita masukan citra ke dalam aplikasi tersebut. Berikut Beberapa kriteria masukansistem:
8. Citra RGB dengan ukuran 640x480 piksel dan memiliki format *.bmp berlatar putih
9. Citra masukan didapat melalui akuisisi dari web-cam atau kamera digital (untuk hasil aktual), dan didapat dari file citra yang dibentuk dalam komputer untuk hasil teoretis.
10. Masing-masing citra memiliki warna yang berbeda (merah, hijau, dan biru).
11. Penambahan derau yang dibangkitkan langsung dari MATLAB berupa derau Gaussian, salt & pepper, speckle, dan poisson.
12. Citra masukan merupakan gambar lingkaran dengan minimum piksel sebesar 50 pixel dan maksimal piksel bernilai 150 piksel baik aktual maupun ideal (CorelDRAW) dan elips.
Gambar 3.2 Contoh citra input yang dibangkitkan oleh computer
Gambar 3.3 Contoh citra input yang di-capture dari web-cam
3.2 Derau/Gangguan[12]
Noise (Derau) adalah citra atau gambar atau piksel yang mengganggu kualitas citra.
Derau (noise) dapat disebabkan oleh gangguan fisis (optik) pada alat akuisisi maupun secara disengaja akibat proses pengolahan yang tidak sesuai[9]. Pada beberapa pengolahan citra, terkadang noise diperlukan untuk menguji performansi sistem, baik akurasi maupun waktu komputasi yang diperlukan.
a. Gaussian, disebut juga Gaussian White Noise. Untuk menambahkan derau ini pada MATLAB memerlukan masukan tambahan berupa rata-rata dan variasi.
Rata-rata dan variasi merupakan suatu konstanta real . Nilainya bisa positif maupun negatif. Makin besar rata-rata dan variasinya maka citra akan semakin kabur, sebaliknya makin kecil konstantanya efek pada citra makin tidak terlihat.
Nilai default adalah 0 untuk mean dan 0,01 untuk variance. Disebut white derau karena pada saat nilai rata-rata dan variasinya besar maka citra seolah-olah hanya terlihat seperti citra putih saja.
b. Salt & Pepper, untuk citra RGB titik-titik muncul dalam tiga warna yakni merah, hijau dan biru, sedangkan pada citra grayscale, derau akan muncul dalam dua warna yakni hitam dan putih. Derau ini memberikan efek ”on dan off” pada piksel. Pada MATLAB dapat diatur ”konstanta” derau dengan range 0 sampai dengan 1. Makin besar konstantanya citra akan semakin kabur, sebaliknya makin kecil konstantanya efek pada citra makin tidak terlihat. Nilai default untuk konstanta derau adalah 0,05.
c. Speckle, Speckle merupakan derau ganda. Derau ini ditambahkan pada citra menggunakan persamaan J = I +n*1, dimana n terdistribusi random seragam dengan mean 0 dan variance V. V adalah konstanta non negative yang besarnya dapat berubah-ubah. Default nilai untuk V adalah 0,04. Makin besar nilai V maka citra akan semakin kabur.
d. Poisson, derau Poisson merupakan derau yang ditambahkan langsung pada citra tanpa kita menambahkan parameter apapun, sehingga efeknya pada citra pun tetap. Pada MATLAB, jika matrik citra adalah double precision, maka nilai piksel masukannya dianggap sebagai mean dari distribusi Poisson dengan skala 1012. Sebagai contoh jika piksel masukannya mempunyai nilai 5.5x10-12, maka piksel keluaran akan dibangkitkan dari distribusi Poisson dengan mean 5,5 di kembalikan lagi ke skala 1012. Jika matrik citra adalah single precision, maka
faktor skalanya menggunakan 106. Jika matrik citra adalah uint8 atau uint16, maka nilai masukan piksel digunakan langsung tanpa faktor skala. Sebagai contoh, jika masukan piksel uint8 mempunyai nilai 10, maka piksel keluaran akan dibangkitkan dari distribusi Poisson denganmean 10.
3.3 Pemrosesan Awal
Pemrosesan awal atau preprocessing adalah tahap untuk mempersiapkan citra hasil akuisisi berupa frame RGB yang kemudian akan dijadikan binary frame atau black and white. Tujuan dari tahap preprocessing ini diharapkan citra hasil keluaran memiliki noise yang paling minimal agar bisa siap diolah ke tahap selanjutnya. Alur preprocessing
digambarkan dalam diagram alir berikut:
Gambar 3.4Diagram blok preprocessing
Citra masukan RGB memiliki 3 layer yaitu layer merah, hijau, dan biru. Oleh karena itu untuk memudahkan proses berikutnya, citra 3 layer tersebut pertama kali diproses menjadi citra dengan model HSV ( Hue, Saturation, Value). Model HSV dipilih karena model tersebut Dalam penelitian ini, peneliti menggunakan ruang warna HSV. Hal ini disebabkan HSV sangat cocok untuk mengidentifikasi warna-warna dasar, di mana warna dasar ini digunakan dalam penelitian sebagai warna identifikasi robot. Selain itu, HSV menoleransi terhadap perubahan intensitas cahaya [15].
Citra HSV kemudian bentuk citra biner (black & white) untuk lebih mempermudah ke proses pendeteksian.
a. Pengisian (Fill ). Tahap ini menggunakan fungsi imfill. Fungsi pengisian ini bertujuan untuk mengisi bagian-bagian yang kosong di dalam area tertutup. Hal ini diperlukan untuk menghindari celah kosong hasil proses pengubahan citra RGB ke citra biner, bagian kosong dalam area tertutup sering terjadi di citra hasil akuisisi webcam, misal karena efek cahaya yang kurang merata.
b. Pengikisan ( Erode). Pengikisan pada MATLAB dapat dilakukan dengan fungsi
imerode. Erosi merupakan suatu metode untuk menipiskan objek. Pada tugas akhir ini, erosi bertujuan untuk menghilangkan daerah yang tidak diinginkan untuk proses lebih lanjut. Pada preprocessing ini digunakan erosi dengan strel ‘disk’ dan jari-jari 10.
Elemen penstruktur “disk ” dipilih karena objek yang dideteksi berupa kurva, sehingga tujuan setelah melewati proses ini agar objek memiliki bentuk yang tidak berbeda dari objek sebelumnya. Erosi ini cukup baik dalam menghilangkan spot putih/derau (bukan citra utama) yang tersebar di sekitaran citra utama.
c. Opening. Fungsi yang digunakan yaitu bwareaopen. Fungsi ini bertujuan untuk menghilangkan sekumpulan piksel dibawah batas tertentu. Pada tugas akhir kali ini, batas piksel yang akan hilang adalah piksel yang saling terhubung dibawah 1000 piksel.
Proses ini membantu erosi apabila masih ada piksel derau yang tidak lolos hasil pengikisan.
d. Penebalan ( Dilation). Fungsi yang digunakan untuk penebalan dalam MATLAB yaitu
imfill. Penebalan/dilasi merupakan suatu metode untuk menebalkan objek. Setelah dilakukan erosi untuk menghilangkan bagian-bagian yang bukan merupakan citra utama, tentu ukuran citra utama juga akan mengecil. Maka dari itu, dibutuhkan proses dilasi untuk menebalkan kembali citra utama. Pada preprocessing ini digunakan dilasi dengan strel ‘disk’ dengan jari-jari 10.
e. Deteksi Tepi ( Edge Detection). Tahap ini menggunakan fungsi edge. Fungsi ini akan mendeteksi tepi citra tergantung dari jenis deteksi tepi yang diinginkan. Deteksi tepi pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek citra.
Deteksi tepi yang digunakan dalam preprocessing ini adalah tipe canny.
f. Penipisan Tepi (Edge Thinning). Tahap ini menggunakan fungsi bwmorph dengan operasi yang digunakan adalah thin. Operasi ini menipiskan objek menjadi sebuah
terhubung. Proses ini diperlukan untuk meningkatkan akurasi deteksi posisi dengan Transformasi Hough, agar letak objek semakin tepat.
Gambar 3.5 Tahap pemrosesan awal ( preprocessing) berdasarkan gambar
3.4 Algoritma Transformasi Hough Standar (SHT)
Transformasi Hough bisa digambarkan sebagai transformasi dari sebuah titik dalam daerah 2D kedalam ruang parameter, tergantung bentuk objek yang mau diidentifikasi.
Dasar fungsi Transformasi Hough adalah untuk mendeteksi garis lurus. Garis lurus dibidang x,y dilukiskan sebagai
b x m
y = * + (3.1)
Garis ini direpresentasikan di sistem koordinat kartesian dengan parameternya b dan m, dimana m adalah slope (gradien) dan b sepagai intercept (pintasan). Faktanya adalah, apabila terdapat garis yang tegak lurus terhadap sumbu horizontal bisa memberikan nilai yang tak hingga untuk parameter m dan b, maka garis diubah parameternya dalam rho(r)
dan theta(θ), menjadi :
) sin(
* ) cos(
* θ θ
ρ = x + y untuk θ ∈[0,π ] (3.2)
Gambar 3.6Representasi persamaan garis parameter rho(r), theta
Dimana r (rho) adalah jarak garis dengan titik origin, θ adalah sudutnya. Jadi diberikan nilai x dan y, untuk setiap garis yang melalui titik (x,y) secara unik bisa direpresentasikan dengan (θ, r). θ dan r memiliki ukuran yang berhingga. Nilai r punya nilai maksimum 2 kali diagonal citra.
Sebuah proses deteksi tepi dibutuhkan untuk menyediakan sekumpulan piksel/titik yang merepresentasikan batas dari sebuah ruang citra. Persamaan (3.1) berkorespondensi
dengan kurva sinusoidal dalam ruang (r, θ). Jika beberapa titik terdapat dalam sebuah garis yang sama, titik tersebut memproduksi sinusoid yang saling bersilangan dalam ruang
parameter garis tersebut.
Gambar 3.7Contoh implementasi Standard Hough Transform (1)
Pada Transformasi Hough, pertama sebuah tabel atau array yang disebut akumulator digunakan untuk mendeteksi keberadaan sebuah garis y =m* x+b. Dengan kata lain, akumulator tersebut menghitung voting untuk sekumpulan nilai parameter m dan b.
Transformasi Hough kemudian melanjutkan ke proses voting untuk menentukan piksel mana yang kiranya adalah tepi dari citra. Jika ada nilai yang sudah cukup memungkinkan
piksel tersebut adalah sebuah tepi, maka tambahkan nilai parameter yang berkorespondensi dengan garis tersebut, yang akan menyebabkan garis tersebut akan tampil di citra tepi.
Sebagai contoh gambar 3.7. tiap titik di gambar tersebut adalah titik dalam citra tepi.
Anggap ada beberapa garis yang melewati titik tersebut. 1 garis dimulai dari titik origin (pusat) dan terletak tegak lurus terhadap garis utama kemudian di gambar. Panjang dan sudut dari garis yang terbentuk itu dihitung dan di masukkan ke tabel yang terletak masih di gambar 3.7.
Gambar 3.8 Contoh implementasi Standard Hough Transform (2)
Grafik di gambar 3.8 menunjukkan bagaimana perbedaan panjang berhubungan dengan sudut yang berbeda pula. Titik ungu adalah titik yang menunjukkan dimana kurva sinusoid saling bersilangan. Nilai dari parameter (sudut dan jarak) dari kurva yang bersilangan tersebut dimasukkan ke dalam tabel untuk penelitian lebih lanjutnya seperti rekonstruksi garis. Objek yang terdeteksi adalah objek yang mengumpulkan vote terbanyak atau merupakan local maxima dari accumulator array.
Gambar 3.9 Local Maxima Hasil Transformasi Hough
Warna terang pada Transformasi Hough, menunjukkan nilai Local Maxima. Pada Gambar 3.9 terdapat beberapa nilai puncak. Hal ini menunjukkan adanya beberapa jumlah garis.