Post on 23-Oct-2015
description
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAM
MENDETEKSI LINGKARAN DAN ELIPS BERBASIS PENGOLAHAN
CITRA DIGITAL
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR CIRCLE AND ELLIPSE
DETECTION BASED ON DIGITAL IMAGE PROCESSING
TUGAS AKHIR
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik
pada Fakultas Elektro dan Komunikasi Institut Teknologi Telkom
Oleh:
Andri Pranata Kusuma
111090175
S1 Teknik Telekomunikasi
FAKULTAS ELEKTRO DAN KOMUNIKASI
INSTITUT TEKNOLOGI TELKOM
BANDUNG
2013
INSTITUT TEKNOLOGI TELKOM No. Dokumen ITT-AK-FEK-PTT-PTT-FM-001/004
Jl. Telekomunikasi No. 1 Ters. Buah Batu
Bandung 40257 No. Revisi 00
FORMULIR LEMBAR PENGESAHAN
TUGAS AKHIR Berlaku Efektif 02 Mei 2011
LEMBAR PENGESAHAN
TUGAS AKHIR
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAM
MENDETEKSI LINGKARAN DAN ELIPS BERBASIS PENGOLAHAN
CITRA DIGITAL
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR CIRCLE AND
ELLIPSE DETECTION BASED ON DIGITAL IMAGE PROCESSING
Andri Pranata Kusuma
111090175
Telah disetujui dan disahkan sebagai Tugas Akhir
Program Sl Teknik Telekomunikasi Fakultas Elektro dan Komunikasi
Institut Teknologi Telkom
Pembimbing I Pembimbing II
Koredianto Usman, ST., M.Sc. Suryo Adhi Wibowo, ST.,MT.
NIK : 02750290-1 NIK : 10870628-1
INSTITUT TEKNOLOGI TELKOM No. Dokumen ITT-AK-FEK-PTT-PTT-FM-001/004
Jl. Telekomunikasi No. 1 Ters. Buah Batu
Bandung 40257 No. Revisi 00
FORMULIR PERNYATAAN ORISINALITAS Berlaku Efektif 02 Mei 2011
HALAMAN PERNYATAAN ORISINALITAS
NAMA : ANDRI PRANATA KUSUMA NIM : 111090175 ALAMAT : JL. MASJID RT 012/01 NO.1A CIPINANG MELAYU, JAKARTA TIMUR
13620 No. Telp / Hp : 081321680644 Email : andripranatakusuma@hotmail.com Menyatakan bahwa Tugas Akhir ini merupakan karya orisinal saya sendiri, dengan judul :
ANALISIS ALGORITMA TRANSFORMASI HOUGH DALAM MENDETEKSI
LINGKARAN DAN ELIPS BERBASIS PENGOLAHAN CITRA DIGITAL
ANALYSIS OF HOUGH TRANSFORM ALGORITHM FOR CIRCLE AND ELLIPSE
DETECTION BASED ON DIGITAL IMAGE PROCESSING
Atas pernyataan ini, saya siap menanggung resiko / sanksi yang dijatuhkan kepada saya apabila
kemudian ditemukan adanya pelanggaran terhadap kejujuran akademik atau etika keilmuan
dalam karya ini, atau ditemukan bukti yang menunjukkan ketidakaslian karya ini.
Bandung, Januari 2013
Andri Pranata Kusuma 111090175
iv
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
v
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
vi
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 seconds
Keywords : Standard Hough Transform (SHT), Modified Hough Transform (MHT),
Circle and Ellipse
vii
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
viii
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.
ix
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.
x
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
xi
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
xii
BAB V PENUTUP ......................................................................................................... 47
5.1 Kesimpulan ............................................................................................................ 47
5.2 Saran ....................................................................................................................... 48
DAFTAR PUSTAKA ...................................................................................................... xx
DAFTAR LAMPIRAN ................................................................................................. xxii
LAMPIRAN
xiii
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-capture dari 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
xiv
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.3 Grafik 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 bayangan (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
xv
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 Gaussian dengan Mean=0 dan Berbagai Nilai Variance ..... 43
Tabel 4.7 Hasil Uji Derau Gaussian dengan 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
xvi
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
xvii
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
10 <≤ 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.
xviii
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.
xix
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
1
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
2
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.
3
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
4
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 penulisan.
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.
5
1.8 Jadwal Pelaksanaan
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 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-13No Kegiatan
Sep-12 Okt-12 Nop-12
6
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(
,
MNfNfNf
Mff
Mfff
yxf
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.
7
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.
8
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:
)(),(),(000 iii
BfBBGfGGRfRR === (2.1)
Gambar 2.4 Citra masukan (kiri), citra grayscale (tengah), citra hasil thresholding
(kanan)
9
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 (2nd derivative) 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.5 Citra 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.
10
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).
BASAD ⊕=),( (2.2)
BASAE ⊗=),( (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)
11
Sama dengan fungsi dilate fungsi erode juga menggunakan (elemen penstruktur).
Gambar 2.7 Macam-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)
12
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:
( ) ( ) dxdyyxyxAH )sincos(,, θθρδρθ −−= ∫ ∫∞
∞−
∞
∞−
(2.4)
di mana � adalah fungsi delta-Dirac. Dengan A (x, y), setiap titik (x, y) dalam gambar
asli, A, berubah menjadi θθρ sincos yx += , dimana �adalah jarak tegak lurus dari asal
garis pada sudut θ (sudut θ akan dibatasi untuk πθ <<0 yang dapat menghasilkan nilai
θ negatif).
Gambar 2.9 Transformasi 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 memilih
13
threshold/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,0min
−=∆+== Mmxmxxxm
K
(2.5)
1,,1,0min
−=∆+== Nnynyyyn
K
(2.6)
1,,1,0min
−=∆+== Tttt
Kθθθθ (2.7)
1,,1,0min
−=∆+== Rrrr
Kρρρρ (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
mnAH ])'[,(),( ρρδρθ (2.9)
Dimana tanda kurung [] menunjukkan pembulatan ke integer terdekat, dan
θθρ sin)(cos)('minminyynxxm +∆++∆= (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
22
0
2
0)()( Ryyxx =−+− (2.12)
1� = [�′]
0�������
14
Dengan R adalah jari-jari lingkaran dan ),(00yx adalah koordinat pusat
lingkaran.Jika pusat lingkaran terdapat di (0,0) maka persamaan di atas dapat dituliskan
sebagai
222Ryx =+ (2.13)
Gambar 2.10 Lingkaran
Persamaan Lingkaran dapat pula dirumuskan dalam suatu persamaan parametrik,
yaitu
θcos0
Rxx += (2.14)
θsin0
Ryy += (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 ( )aPFPF 221=+ .
15
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
bae =
−=
−==
2
2
22
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 :
12
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.
16
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
atau lingkaran. Setelah itu dilakukan Transformasi Hough lagi dengan menggunakan
17
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 masukan sistem:
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
18
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 1*nIJ += , 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
19
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 dengan mean 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.4 Diagram 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].
20
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
garis. Proses ini membuat piksel hasil deteksi tepi menjadi hanya 1 yang saling
21
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
bxmy += *
(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(* θθρ yx +=
],0[ πθ∈untuk
(3.2)
22
Gambar 3.6 Representasi 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.7 Contoh implementasi Standard Hough Transform (1)
Pada Transformasi Hough, pertama sebuah tabel atau array yang disebut akumulator
digunakan untuk mendeteksi keberadaan sebuah garis bxmy += * . 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
23
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.
24
3.5 Analisis SHT dalam Membedakan Elips dan Lingkaran
Berikut adalah diagram alir dari proses pengklasifikasian :
Mulai
Masukan (Hasil Algoritma
Transformasi Hough Standar )
Penghitungan Jarak Piksel
Atas dengan Piksel Bawah
Analisis Standar Deviasi
(STDEV)
Klasifikasi hasil STDEV
e≤0,8 = Lingkaran
e>0,8 = Elips
Selesai
Gambar 3.10 Diagram alir proses pendeteksian dan pengklasifikasian
Untuk melakukan pengkalsifikasian objek penulis menerapkan Standard Hough
Transform atau dalam fungsi MATLAB nya adalah fungsi hough. Fungsi ini seperti
yang telah dijelaskan diatas, akan mengubah tiap-tiap piksel yang terdapat dalam citra tepi
menjadi parameter ( θρ, ).
Gambar 3.11 Hasil Transformasi Hough standar terhadap citra lingkaran
Gambar 3.12 Hasil Transformasi Hough standar terhadap citra elips
25
Setelah mendapatkan hasil Transformasi Hough standar tersebut, untuk mata
manusia dapat melihat secara jelas bahwa terlihat perbedaan jarak kurva sinusoidal yang
signifikan antara deteksi elips dan lingkaran. Lingkaran cenderung memiliki pola
sinusoidal yang sama. Sedangkan elips memiliki pola sinusoidal yang lebih cekung. Hal ini
disebabkan oleh jarak origin atau titik pusat menuju piksel tepi apabila saat mendeteksi
lingkaran, pola piksel tepi lingkaran cenderung lebih teratur daripada elips.
Hasil Transformasi Hough kemudian akan di ekstraksi lagi, tujuannya agar bisa
dilakukan penghitungan perbedaan jarak piksel paling atas hasil ekstraksi dengan piksel
paling bawah hasil ekstraksi tersebut. Karena perbedaan terletak pada bagian kolom, maka
penghitungan dilakukan sampai semua piksel kolom dihitung.
Gambar 3.13 Hasil Ekstraksi Transformasi Hough
Hasil penghitungan tersebut berupa data-data jarak piksel atas ke piksel bawah. Oleh
karena itu, penulis menggunakan metode standar deviasi untuk mengklasifikasikan elips
dan lingkaran. Standar deviasi[22] adalah salah satu metode statistik yang digunakan untuk
menjelaskan homogenitas kelompok
∑=
−
−
=
n
i
ixx
nS
1
2)(1
1
(3.3)
Dimana:
ix = data ke i
x = nilai rata-rata sampel
n = banyaknya data
Untuk lingkaran diestimasi memiliki standar deviasi mendekati nol, ini dikarenakan
data perbedaan jarak piksel atas dan piksel bawah hasil ekstraksi Transformasi Hough
mendekati sama semua. Sedangkan untuk elips, data standar deviasi harusnya besar karena
data jarak piksel atas dan piksel bawahnya bervariasi.
26
Berikut rentang standar deviasi dan nilai puncak yang digunakan untuk membedakan
elips dan lingkaran.(rentang ini didapat dari hasil percobaan):
Standar deviasi <=0.8 = Lingkaran
Standar deviasi >0.8 = Elips
3.6 Proses Deteksi Letak Posisi dan Rekonstruksi Elips dan Lingkaran
Setelah melewati proses pendeteksian jenis bangun yang ingin dideteksi, maka
proses selanjutnya adalah proses pendeteksian letak posisi dan rekonstruksi elips atau
lingkaran dari citra masukan.
Pada penelitian tugas akhir ini dilakukan algoritma 2 jenis pengembangan algoritma
Transformasi Hough (MHT). Di penelitian tugas akhir ini, apabila yang terdeteksi dalam
tahap klasifikasi adalah bangun lingkaran, maka Transformasi Hough untuk mendeteksi
lingkaran (Circular Hough Transform) diaktifkan. Sedangkan apabila yang terdeteksi
dalam tahap klasifikasi adalah bangun elips, maka Transformasi Hough untuk
pendeteksian Elips (Elliptical Hough Transform) diaktifkan. Fungsi Transformasi Hough
untuk deteksi Elips ini sudah dioptimasi sedemikian rupa agar dapat mendeteksi elips lebih
cepat.
3.6.1 Analisis Algoritma Transformasi Hough dalam mendeteksi Lingkaran[3]
Diagram alir dari proses Algoritma Transformasi Hough untuk mendeteksi dan
merekonstruksi lingkaran adalah sebagai berikut :
Gambar 3.14 Diagram alir Algoritma Transformasi Hough untuk mendeteksi dan
merekonstruksi lingkaran
Mengacu pada persamaan 2.13, persamaan lingkaran dengan sebagai pusat
lingkaran, dapat dibentuk menjadi persamaan 2.14 dan 2.15. Dimana (x0.y0) adalah titik
pusat lingkaran dan r adalah jari-jari atau radius lingkaran. Biasanya untuk mengurangi
waktu komputasi, jari-jari (r) diatur dalam inisialisasi algoritma/ditentukan terlebih dahulu.
Akan tetapi karena pada tugas akhir ini diperlukan sebuah algoritma yang dapat
27
mendeteksi secara otomatis, maka nilai jari-jari nilainya tidak diketahui. Oleh karena itu,
nilai jari-jari akan dicoba dalam rentang 40-170 piksel.
Algoritma dalam mendeteksi lingkaran dan proses rekonstruksi adalah sebagai
berikut :
1. Untuk setiap piksel tepi, sebuah lingkaran dibentuk dengan piksel tersebut sebagai
titik pusat dan radius (r).
2. Transformasi Hough untuk lingkaran ini menggunakan array 3 Dimensi, 2 Dimensi
pertama merepresentasikan koordinat untuk titik pusat lingkaran dan dimensi terakhir
adalah radius lingkaran.
3. Nilai array tersebut meningkat setiap lingkaran terbentuk dengan jari-jari tertentu
untuk semua piksel tepi.
4. Array tersebut menghitung berapa banyak lingkaran yang melewati koordinat piksel
tepi, dan lanjut ke proses voting untuk menemukan nilai tertinggi.
5. Koordinat origin lingkaran dalam gambar adalah koordinat dengan nilai tertinggi
dalam array.
Dibawah ini adalah hasil algoritma Transformasi Hough dalam mendeteksi lingkaran
Gambar 3.15 Hasil rekonstruksi dengan algoritma Transformasi Hough untuk
lingkaran
Pada gambar pertama merupakan citra tepi hasil preprocessing. Tahap selanjutnya,
dengan menggunakan algoritma yang sudah dipaparkan di atas, maka penumpukan terletak
di pusat lingkaran (gambar tengah), berbeda dengan Standard Hough Transform,
penumpukan ini bukan mencerminkan garis yang terdapat dalam citra tepi, melainkan titik
pusat sebuah lingkaran.
Nantinya parameter local maxima yang didapat dari proses Transformasi Hough
lingkaran ini, akan dilanjutkan ke proses rekonstruksi (gambar kanan), sekilas tidak ada
perbedaan dengan citra masukan. Sebenarnya gambar tersebut adalah hasil deteksi dengan
28
Transformasi Hough yang dilapiskan (superimposed) terhadap citra masukan. Terlihat dari
pinggir citra masukan yang seharusnya hitam, tetapi dilapisi garis berwarna merah. Pada
tahap ini akan terlihat posisi letak lingkaran yang tepat terhadap hasil rekonstruksi dari
Transformasi Hough.
3.6.2 Analisis Algoritma Transformasi Hough dalam mendeteksi Elips[14]
Untuk Elips yang sembarang, ada 5 parameter yang tidak diketahui, ),(00yx untuk
titik pusat elips, α untuk orientasi elips, ),( ba untuk sumbu mayor dan sumbu minornya.
Berikut adalah diagram alir untuk proses deteksi posisi dan rekonstruksi elips :
Gambar 3.16 Diagram alir Algoritma Transformasi Hough untuk mendeteksi dan
merekonstruksi elips
Untuk setiap pasang piksel ),(11yx dan ),(
22yx dimisalkan kedua titik itu adalah 2
titik pada ujung sumbu mayor elips, kemudian kita hitung 4 parameter untuk elips yang
diiinginkan dengan persamaan sebagai berikut :
2
)(21
0
xx
x
+
= (3.4)
2
)(21
0
yyy
+
= (3.5)
2
])()[(2
21
2
21yyxx
a+++
= (3.6)
+
+= −
)(
)(tan
21
211
yy
xxα
(3.7)
Dimana ),(00yx adalah titik pusat dari elips yang di cari, a adalah separuh panjang
dari sumbu mayor dan α merupakan orientasi elips.
29
Gambar 3.17 Geometri sebuah Elips
Gambar 3.15 merupakan geometri sebuah elips. 1f dan
2f merupakan fokus dari
elips. Fokus elips adalah 2 titik spesial di sebuah sumbu mayor elips dan memiliki jarak
yang sama jauhnya dari titik pusat. ),( yx merupakan titik ketiga untukmenghitung
parameter kelima. Jarak antara titik ),( yx dan ),(00yx akan lebih sedikit daripada jarak
antara ),(11yx dan ),(
00yx atau antara ),(
22yx dan ),(
00yx . Jadi setengah dari sumbu
minor bisa diestimasi dengan persamaan sebagai berikut :
)cos(
)sin(222
222
2
τ
τ
da
dab
−
=
(3.8)
Dimana cos τ adalah
−+=
ad
fda
2cos
222
τ
(3.9)
Secara konsisten dengan menggunakan persamaan (3.4)-(3.9) memungkinkan untuk
menghitung kelima parameter sebuah elips. Karena voting hanya dibutuhkan untuk
menentukan setengah panjang sumbu minor, maka array yang digunakan untuk deteksi
elips ini adalah array 1 Dimensi. Jika voting telah mencapai batas ambang (threshold),
maka sebuah elips ditemukan dan tampilkan seluruh parameter elips hasil deteksi tersebut.
Algoritmanya dalam mendeteksi elips dan proses rekonstruksi adalah sebagai
berikut:
1. Masukkan seluruh piksel tepi hasil tahap preprocessing kedalam sebuah array 1 D.
2. Kosongkan array akumulator.
3. Untuk setiap piksel ),(11yx maka lakukan tahap 4 sampai 14.
30
4. Untuk setiap piksel lainnya ),(22yx , jika jarak ),(
11yx dan ),(
22yx lebih besar dari
jarak yang dibutuhkan setidaknya untuk sepasang piksel yang dipertimbangkan,
maka lakukan tahap 5 sampai tahap 14.
5. Untuk setiap pasang ),(11yx dan ),(
22yx gunakan persamaan (3.4)-(3.7) untuk
menemukan titik pusat dan orientasi elips dan sumbu mayornya.
6. Untuk setiap piksel ketiga ),( yx , jika jarak antara ),( yx dan ),(00yx lebih besar dari
jarak yang dibutuhkan setidaknya untuk sepasang piksel yang dipertimbangkan,
maka lakukan tahap ke-7 sampai 9.
7. Gunakan persamaan (3.8) dan (3.9) untuk menghitung panjang sumbu minor.
8. Tambahkan array akumulator untuk panjang sumbu minor dengan 1.
9. Lakukan perulangan sampai seluruh piksel terhitunguntuk pasangan piksel ini.
10. Temukan nilai maksimum dalam array akumulator. Nilai tersebut menunjukkan
panjang sumbu minor elips yang ingin dideteksi.
11. Tampilkan seluruh parameter elips yang didapat.
12. Hilangkan piksel pada elips yang terdeteksi dari array piksel tepi.
13. Kosongkan array akumulator.
14. Lakukan perulangan sampai seluruh piksel terhitung.
15. Lakukan pelapisan elips yang terdeteksi dengan citra masukan.
16. Selesai.
Berikut adalah hasil rekonstruksi algoritma Transformasi Hough dalam mendeteksi
Elips
Gambar 3.18 Hasil rekonstruksi algoritma Transformasi Hough untuk elips
Gambar pertama adalah citra masukan, gambar tengah adalah hasil deteksi tepi
setelah melewati tahap preprocessing. Gambar paling kiri adalah contoh elips hasil deteksi
yang ditandai dengan warna merah yang dilapiskan (superimposed) terhadap citra
masukan.
31
BAB IV
ANALISIS HASIL SIMULASI
4.1 Proses Pengujian
Pada tugas akhir ini, sistem pendeteksi kurva tertutup lingkaran elips
diimplementasikan dengan menggunakan perangkat keras dan perangkat lunak untuk
membantu proses simulasi dan analisis sistem. Adapun uraian spesifikasi perangkat
tersebut adalah sebagai berikut:
a. Perangkat Keras
• Prosesor : Intel(R) Core(TM) 2 Duo CPU T6500@2.10GHz
• Memori : 3072MB RAM
• Tipe Sistem : 32-bit Operating System
• VGA On Board : Intel GMA 4500MHD 128 Mb
• Monitor : 14.0” Widescreen, Resolusi 1366x768
b. Perangkat Lunak
• Sistem operasi Microsoft Windows 7 Professional
• Bahasa pemrograman MATLAB versi R2009A
c. Webcam
• Logitech, 2.1MP. Resolusi 640x480 piksel
Pada tugas akhir ini diujikan citra digital dengan rincian sebagai berikut
Gambar 4.1 Rincian citra input
Tiap-tiap Citra masukan diproses oleh perangkat lunak yang telah diimplementasikan
lewat MATLAB. Keluaran dari perangkat lunak itu berupa parameter dari elips dan
32
lingkaran yang terdeteksi dan rekonstruksi dari elips atau lingkaran tersebut. Selain itu juga
diketahui termasuk jenis bangun apa yang terdeteksi. Keluaran dinyatakan benar jika hasil
deteksi perangkat lunak sama dengan citra yang diketahui oleh penglihatan secara teoretis.
Presentasi keberhasilan diukur dari jumlah keluaran perangkat lunak yang benar dibagi
jumlah masukan dikali 100%.
%100xinputjumlah
benarjumlahakurasi =
(4.1)
Selain itu dibandingkan waktu komputasi untuk setiap kategori citra. Kemudian
dapat diambil kesimpulan dari pengujian yang telah dilakukan. Pengujian tersebut
dilakukan berulang dengan tambahan derau yang dibangkitkan MATLAB (Gaussian, Salt
& Pepper, Speckle, dan Poisson) untuk menguji keandalan sistem.
4.2 Deteksi pada Citra yang Dibangkitkan Komputer
Pada citra yang dibangkitkan dari komputer (menggunakan CorelDRAW X5), untuk
lingkaran didapatkan hasil uji yang terlampir pada lampiran A.1. Dari hasil pengujian
terhadap 27 citra lingkaran, dapat diketahui bahwa:
1. Jumlah error dalam melakukan pendeteksian jenis bangun = 0, sehingga
akurasinya 100%.
2. Jumlah error dalam melakukan pendeteksian posisi dan rekonstruksi = 0,
sehingga akurasinya 100%
3. Waktu komputasi rata-rata=4,628 detik, dengan waktu paling singkat 2,609 detik
dan waktu terlama 6,726 detik
Sementara, pada citra elips didapatkan hasil uji yang terlampir pada lampiran A.2.
dari hasil pengujian terhadap 27 citra elips, dapat diketahui bahwa:
1. Jumlah error dalam melakukan pendeteksian jenis bangun = 0, sehingga
akurasinya 100%.
2. Jumlah error dalam melakukan pendeteksian posisi dan rekonstruksi = 0,
sehingga akurasinya 100%.
3. Waktu komputasi rata-rata= 0,516 detik, dengan waktu paling singkat 0,268 detik
dan waktu terlama 0,799 detik.
33
Gambar 4.2 Grafik perbandingan persentasi akurasi citra komputer
Sehingga dapat disimpulkan bahwa dari 54 gambar yang dibangkitkan dari komputer
yang diujikan. Dapat diketahui bahwa:
1. Jumlah error dalam mendeteksi jenis bangun (lingkaran atau elips) = 0, sehingga
akurasinya 100%
2. Jumlah error dalam mendeteksi letak atau posisi setelah rekonstruksi = 0,
sehingga akurasinya 100%.
3. Waktu komputasi rata-rata dalam menggunakan Transformasi Hough deteksi
lingkaran adalah 4,628 detik dengan waktu paling singkat 2,609 detik dan waktu
terlama 6,726 detik.
4. Waktu komputasi rata-rata dalam menggunakan Transformasi Hough deteksi
Elips 0,516 detik, dengan waktu paling singkat 0,268 detik dan waktu terlama
0,799 detik.
4.3 Deteksi pada Citra yang di-capture Webcam
Pada citra yang di-capture oleh webcam, didapatkan hasil uji yang terlampir pada
lampiran A.3. Dari hasil pengujian terhadap 27 citra lingkaran, dapat diketahui bahwa:
1. Jumlah error dalam melakukan pendeteksian jenis bangun = 5, sehingga
akurasinya 81,48%.
2. Jumlah error dalam melakukan pendeteksian posisi dan rekonstruksi = 0,
sehingga akurasinya 100%.
3. Waktu komputasi rata-rata= 5,093 detik, dengan waktu paling singkat 0,269 detik
dan waktu terlama 7,563 detik.
Sementara, pada citra elips didapatkan hasil uji yang terlampir pada lampiran A.2.
dari hasil pengujian terhadap 27 citra elips, dapat diketahui bahwa:
80%
85%
90%
95%
100%
Jenis Posisi
Pe
rse
nta
si A
ku
rasi
Kategori
Lingkaran
Elips
34
1. Jumlah error dalam melakukan pendeteksian jenis bangun = 0, sehingga
akurasinya 100%.
2. Jumlah error dalam melakukan pendeteksian posisi dan rekonstruksi = 0,
sehingga akurasinya 100%.
3. Waktu komputasi rata-rata= 0,672 detik, dengan waktu paling singkat 0,264 detik
dan waktu terlama 1,145 detik.
Gambar 4.3 Grafik perbandingan persentase akurasi citra webcam
Sehingga dapat disimpulkan bahwa dari 54 gambar yang di-capture dari webcam
yang diujikan. Dapat diketahui bahwa:
1. Jumlah error dalam mendeteksi jenis bangun (lingkaran atau elips) = 0, sehingga
akurasinya 100%
2. Jumlah error dalam mendeteksi letak atau posisi setelah rekonstruksi = 0,
sehingga akurasinya 100%.
3. Waktu komputasi rata-rata dalam menggunakan Transformasi Hough deteksi
lingkaran (CHT) adalah 3,060 detik, dengan waktu paling singkat 2,056 detik dan
waktu terlama 4,232 detik
4. Waktu komputasi rata-rata dalam menggunakan Transformasi Hough deteksi
Elips (EHT) 0,264 detik, dengan waktu paling singkat 0,158 detik dan waktu
terlama 0,799 detik
4.4 Analisis Hasil Deteksi dan Kesalahan pada Citra Komputer dan Webcam
Secara keseluruhan dari 108 citra digital yang diujikan, dapat diketahui rincian hasil
deteksi pada tabel 4.1
20%
40%
60%
80%
100%
Jenis Posisi
Pe
rse
nta
si A
ku
rasi
Kategori
Lingkaran
Elips
35
Tabel 4.1 Perbandingan Hasil Uji Deteksi Lingkaran dan Elips
Parameter Komputer Webcam
Lingkaran Elips Lingkaran Elips
Jumlah Citra Uji 27 27 27 27
Jumlah Error Jenis bangun 0 0 5 0
Akurasi Jenis Bangun 100% 100% 81,84% 100%
Jumlah error posisi 0 0 0 0
Akurasi posisi 100% 100% 100% 100%
Waktu Komputasi rata-rata (s) 4,628 0,516 5,093 0,672
Waktu Komputasi Minimum (s) 2,609 0,268 0,269 0,264
Waktu Komputasi Maksimum (s) 6,726 0,799 7,563 1,145
Berdasarkan tabel tersebut, dapat disimpulkan:
1. Jumlah error dalam mendeteksi jenis bangun sebanyak 5, sehingga akurasi dalam
pendeteksian jenis bangun 95,46%
2. Dalam mendeteksi posisi dan proses rekonstruksi bangun, jumlah error =0,
sehingga akurasinya 100%.
3. Waktu Komputasi Algoritma Transformasi Hough untuk mendeteksi lingkaran
(CHT) rata-rata 4,86 detik, dengan waktu komputasi terlama mencapai 7,563
detik sedangkan waktu tercepat 0,269 detik.
4. Waktu Komputasi Algoritma Transformasi Hough untuk mendeteksi Elips (EHT)
rata-rata 0,594 detik, dengan waktu komputasi terlama mencapai 1,145 detik
sedangkan waktu tercepat 0,264 detik.
Dalam mendeteksi jenis bangun, kesalahan sebanyak 5 buah dalam mendeteksi
bangun terletak pada citra lingkaran hasil capture dari webcam. Hal ini dikarenakan objek
lingkaran yang di capture webcam masih meninggalkan derau berupa bayangan dari objek
tersebut. Sehingga pada pemrosesan awal, bayangan objek mempengaruhi kelengkungan
lingkaran. Maka akan berakibat pada hasil algoritma Transformasi Hough standar yang
menghasilkan standar deviasi yang melebihi threshold untuk mendeteksi lingkaran. Selain
itu kesalahan deteksi juga bisa diakibatkan objek mengalami kelengkungan yang tidak
diinginkan karena terdapat lipatan pada objek. Hal ini juga bisa menyebabkan standar
deviasi yang dihasilkan melebihi threshold lingkaran. Kesalahan juga bisa terdapat dalam
posisi kamera saat meng-capture objek lingkaran. Apabila posisi kamera tidak tegak lurus
dengan objek maka perbedaan sudut dengan objek lingkaran akan berpengaruh pada citra
lingkaran yang di-capture menjadi citra elips.
36
Untuk citra yang dibangkitkan lewat komputer, akurasi mencapai 100%. Hal ini
dikarenakan tidak adanya derau berupa bayangan dan bentuk elips dan lingkaran yang
dideteksi sudah absolut, yaitu dalam penglihatan sudah terlihat berbeda. Ini menyebabkan
hasil Transformasi Hough Standar akan terlihat berbeda untuk lingkaran dan elips,
sehingga plot data standar deviasi pun dapat terlihat jelas. Lingkaran yang diuji berbentuk
bulat teratur, yaitu dengan jari-jari yang sama. Sedangkan elips yang diuji memiliki sumbu
mayor yang secara kasat mata berbeda dengan sumbu minornya. Dalam sub-bab
berikutnya akan dilihat bagaimana pengaruh dari jari-jari (eksentrisitas) elips terhadap
pendeteksian elips.
Dalam penelitian ini untuk penelitian dengan citra yang diambil dari webcam,
digunakan lingkaran dengan diameter 4cm, 5cm, dan 6cm, sedangkan elips dengan jari-jari
minor (b) tetap yaitu 1,5cm tetapi jari-jari mayor yang berbeda yaitu 3cm, 4,5cm, dan 6cm.
Pengambilan dilakukan 30cm dari objek. Sedangkan untuk penelitian ideal (CorelDRAW)
jari-jari lingkaran yang dipakai adalah 60 piksel, 90 piksel, dan 120 piksel. Untuk elips
yang dipakai jari-jari minor tetap yaitu 60 piksel tetapi jari-jari mayornya yang berbeda
yaitu 120 piksel, 180 piksel, dan 240 piksel.
Pada penelitian elips dan penelitian lingkaran jangka waktu komputasi berbeda
cukup signifikan. Hal ini seperti yang telah dijelaskan di bab 2, pada algoritma
Transformasi Hough untuk deteksi lingkaran, masih menggunakan array 3 Dimensi,
dimana array ini berisikan jari-jari, dan 2 titik pusat, sedangkan pada algoritma
Transformasi Hough untuk mendeteksi elips, sudah di optimasi sehingga hanya
menggunakan array 1 Dimensi yang berisikan calon sumbu minor dari elips saja.
Dalam algoritma Transformasi Hough untuk mendeteksi lingkaran tersebut, waktu
komputasi terlama mencapai 7,563 detik sedangkan waktu tercepat 0,269 detik. Perbedaan
ini juga didapat berdasarkan jari-jari lingkaran yang berbeda, seperti yang terlampir di
lampiran A.1 dan A.3, semakin besar jari-jari lingkaran maka akan semakin lama waktu
komputasinya. Karena jari-jari lingkaran yang ingin dideteksi tidak diketahui, maka
dibutuhkan iterasi rentang R minimum sampai R batas maksimum untuk mendapatkan jari-
jari yang terbaik. Maka apabila lingkaran semakin besar, maka iterasi dilanjutkan sampai
batas maksimum jari-jari lingkaran ditemukan. Begitu juga dalam algoritma Transformasi
Hough untuk mendeteksi elips, perbedaan sumbu mayor dan sumbu minor yang semakin
besar maka akan mempengaruhi waktu komputasi juga. Semakin besar ukuran citra tepi
hasil preprocessing maka akan semakin bertambah waktu untuk komputasinya.
37
Dapat disimpulkan, waktu komputasi dipengaruhi oleh spesifikasi komputer yang
digunakan, ukuran objek, serta jenis bangun yang akan dideteksi (lingkaran atau elips)
4.5 Analisis Hasil Uji Tingkat Eksentrisitas Elips pada Citra Komputer dan
Webcam
Rincian tabel hasil uji eksentrisitas elips dapat dilihat pada lampiran B. Secara
keseluruhan dari 60 citra digital yang diujikan, dapat diketahui hasil deteksi pada tabel 4.2
Tabel 4.2 Perbandingan Hasil Uji Tingkat Eksentrisitas
Berdasarkan tabel tersebut, dapat disimpulkan:
1. Kesalahan terdapat dalam pendeteksian elips dengan eksentrisitas 0,2-0,4.
Sehingga akurasi dalam mendeteksi jenis bangun dengan eksentrisitas 0,2 adalah
0%, eksentrisitas 0,3 adalah 25%, dan eksentrisitas 0,4 adalah 91,67%. Elips
dengan eksentrisitas 0,5 dan 0,8 memiliki kesalahan 0 dari masing-masing 12 kali
percobaan, sehingga akurasi dalam mendeteksi elips sebesar 100%.
2. Dalam mendeteksi posisi setelah proses rekonstruksi keseluruhan, jumlah error
=0, sehingga akurasinya 100%.
3. Waktu Komputasi rata-rata Algoritma Transformasi Hough untuk mendeteksi
Elips untuk seluruh eksentrisitas 1,259 detik, dengan waktu komputasi terlama
mencapai 6,029 detik sedangkan waktu tercepat 0,092 detik.
Pada bagian ini bertujuan untuk mengetahui apakah pengaruh dari eksentrisitas
dalam pendeteksian. Pada pendeteksian eksentrisitas 0,2 terdapat error yang cukup besar.
Error disini adalah hasil pendeteksian berupa lingkaran, bukan sebuah elips. Hal ini
dikarenakan elips dengan eksentrisitas yang mendekati 0, akan mendekati bentuk seperti
lingkaran, sesuai dengan rumus 2.16 pada bab 2. Lingkaran itu sendiri berarti sebuah elips
yang memiliki jari-jari mayor dan jari-jari minor yang sama. Elips dengan eksentrisitas
kecil akan memiliki hasil deteksi Transformasi Hough standar yang mirip seperti
lingkaran, sehingga standar deviasi yang dihasilkan akan mendekati lingkaran pula. Oleh
karena itu pada perangkat lunak akan mendeteksi bangun tersebut sebagai lingkaran.
0.2 0.3 0.4 0.5 0.8 0.2 0.3 0.4 0.5 0.8
Jumlah Citra Uji 6 6 6 6 6 6 6 6 6 6
Jumlah Error Jenis Bangun 6 5 1 0 0 6 3 0 0 0
Akurasi Jenis Bangun 0% 16,67% 83,33% 100% 100% 0% 50% 100% 100% 100%
Jumlah Error Posisi (Fitting) 0 0 0 0 0 0 0 0 0 0
Akurasi Posisi 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
Waktu Komputasi rata-rata (s) 3,914 2,749 0,5966 0,19 0,159 3,72074 1,494 0,192 0,19372 0,15903
Waktu Komputasi Maksimum (s) 6,029 4,971 2,414 0,315 0,266 5,41935 3,195 3,195 0,2794 0,23711
Waktu Komputasi minimum (s) 2,6142 0,401 0,152 0,108 0,092 2,25877 0,215 0,106 0,1138 0,09327
ParameterKomputer Webcam
38
Pada bagian eksentrisitas 0,2-0,4 dengan menggunakan citra yang di-capture oleh
webcam ataupun dibangkitkan lewat komputer, kesalahan terletak pada bentuk elips yang
apabila semakin kecil eksentrisitasnya maka akan semakin terlihat mirip lingkaran.
Eksentrisitas juga dapat mempengaruhi waktu komputasi. Semakin besar eksentrisitas
maka semakin sedikit dibutuhkan waktu untuk mencari parameter elips dengan EHT.
Semakin kecil eksentrisitas, maka algoritma yang digunakan mendekati algoritma CHT,
yang memeriksa semua kemungkinan jari-jari sebuah lingkaran.
Akan tetapi perangkat lunak yang diaplikasikan tetap memiliki akurasi yang sangat
baik dalam proses fitting (rekonstruksi) dan mencari letak posisi benda berada, yaitu
mencapai 100%.
Dapat disimpulkan, eksentrisitas elips mempengaruhi standar deviasi pada
transformasi hough standar, sehingga mempengaruhi proses pemilihan deteksi, dan juga
mempengaruhi waktu komputasi algoritma.
4.6 Hasil Uji Keandalan Sistem dengan Derau yang Dibangkitkan MATLAB
4.6.1 Poisson
Hasil uji dengan membangkitkan derau Poisson dapat dilihat pada tabel 4.3. Hasil uji
diambil dari perwakilan masing-masing jenis dan rekonstruksi citra yang terdeteksi benar.
Tabel tersebut terletak dalam lampiran C.1. Secara keseluruhan dari 36 citra uji, akurasi
deteksi jenis lingkaran atau elips mencapai 100% dan akurasi deteksi posisi mencapai 97%
dengan waktu komputasi rata-rata MHT untuk mendeteksi lingkaran 3,64 detik dan untuk
mendeteksi elips 0,303 detik.
Secara Jelas dapat dilihat pada tabel dibawah ini:
Tabel 4.3 Perbandingan Hasil uji dengan derau Poisson
Dari hasil uji tersebut, dapat dilihat bahwa citra yang dibangkitkan dikomputer
maupun citra yang dibangkitkan lewat webcam masih mampu mendeteksi jenis bangun
(lingkaran atau elips), akan tetapi untuk citra yang dibangkitkan oleh webcam sensitifitas
akan derau Poisson ini lebih tinggi, misal apabila citra yang di-capture kondisi cahayanya
buruk maka akan semakin sulit untuk melakukan preprocessing. Oleh karena itu, pada citra
Jenis Fitting Jenis Fitting Jenis Fitting
Jumlah 18 18 18 18 36 36
Error 0 1 0 0 0 1
Akurasi 100% 94% 100% 100% 100% 97%
TotalCitra Webcam Citra Komputer
39
hasil capture webcam mengalami kesalahan dalam merekonstruksi elips karena masih
banyaknya derau setelah tahap preprocessing. Berikut adalah perbandingan tampilan citra
komputer dengan derau poisson dan citra webcam dengan derau poisson
Gambar 4.4 Citra komputer dan ditambah derau Poisson
Gambar 4.5 Citra komputer dan ditambah derau Poisson
4.6.2 Speckle
Berikut hasil pengujian sistem dengan citra yang ditambah derau Speckle dengan
beberapa nilai variance. Jumlah citra yang diujikan masing-masing sebanyak 18 buah citra
yang sama dengan citra uji derau Poisson.
Tabel 4.4 Hasil Uji Derau Speckle dengan Berbagai Variance
Berdasarkan tabel tersebut dapat diperoleh grafik akurasi sebagai berikut:
Gambar 4.6 Grafik akurasi hasil uji derau Speckle dengan berbagai variance
Nilai Variance 0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
Jenis (Webcam) 18 11 10 7 7 7 7 7 7
Jenis (komputer) 18 18 18 17 9 9 9 9 9
Fitting (Webcam) 18 12 11 0 0 0 0 0 0
Fitting (komputer) 18 18 18 18 0 0 0 0 0
0%
20%
40%
60%
80%
100%
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
pe
rse
nta
si a
ku
rasi
(%
)
Variance
Jenis (Webcam)
Jenis(komputer)
Fitting(webcam)
Fitting (komputer)
40
Dari grafik tersebut dapat diketahui bahwa semakin besar variance derau, maka akan
semakin tidak akurat sistem. Dalam mendeteksi jenis bangun, untuk citra yang
dibangkitkan komputer dapat dikatakan cukup akurat. Kesalahan di variance 0,2 terdapat
pada citra lingkaran warna merah yang sudah terdeteksi sebagai elips. Pada citra webcam,
dalam mendeteksi jenis bangun memiliki akurasi yang sangat buruk dikarenakan tidak
dapat terdeteksinya garis tepi objek pada preprocessing karena derau yang semakin
menumpuk pada objek. Pada variance diatas 0,2, proses rekonstruksi/fitting tidak dapat
dilakukan karena akibat derau yang menumpuk maka tepi yang terdeteksi bukanlah tepi
dari objek utama.
Dapat disimpulkan dalam pendeteksian jenis bangun, semakin besar nilai variance
pada derau Speckle maka semakin tidak akurat sistem ini. Tampilan citra dengan derau
Speckle dapat dilihat pada gambar di bawah ini.
Gambar 4.7 Citra komputer dan ditambah derau Speckle (variance 0,3)
Gambar 4.8 Citra webcam dan ditambah derau Speckle (variance 0,3)
4.6.3 Salt and Pepper
Berikut hasil pengujian sistem dengan citra yang ditambah derau Salt and pepper
dengan beberapa nilai kerapatan (density). Jumlah citra yang diujikan masing-masing
sebanyak 18 buah citra yang sama dengan pengujian derau Poisson.
Tabel 4.5 Hasil Uji Derau Speckle dengan Berbagai Variance
Noise Density 0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
Jenis (Webcam) 18 18 18 12 9 9 9 9 9
Jenis (komputer) 18 18 18 18 13 9 9 9 9
Posisi (Webcam) 18 18 18 14 6 0 0 0 0
Posisi (komputer) 18 18 18 18 18 0 0 0 0
41
Berdasarkan tabel tersebut dapat diperoleh grafik akurasi sebagai berikut:
Gambar 4.9 Grafik akurasi hasil uji derau Salt and Pepper dengan berbagai
kerapatan
Dari grafik tersebut dapat terlihat untuk semua jenis citra, baik dari komputer
maupun webcam memiliki akurasi 100% hingga nilai kerapatan (density) sebesar 0,1
dalam mendeteksi jenis dan menentukan posisi dari bangun elips dan lingkaran. Untuk
semua jenis citra (dari komputer atau webcam) kesalahan dalam menentukan jenis terdapat
pada beberapa bangun lingkaran yang hasil pemrosesan awalnya tidak sempurna dan masih
meninggalkan derau yang mengakibatkan nilai standar deviasi SHT melebihi ambang batas
pendeteksian lingkaran sehingga mengakibatkan terdeteksi sebagai elips. Untuk citra
dengan kerapatan derau ≥ 0,4 proses fitting tidak dapat dilakukan lagi karena derau pada
citra sudah menumpuk dan tepi objek hasil pemrosesan awal sudah tidak terdeteksi lagi.
Tampilan citra dengan derau Salt and Pepper dapat dilihat pada gambar di bawah ini.
Gambar 4.10 Citra webcam dan ditambah derau Salt & Pepper (density 0,2)
Gambar 4.11 Citra komputer dan ditambah derau Salt & Pepper (density 0,2)
0%
20%
40%
60%
80%
100%
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7pe
rse
nta
si a
ku
rasi
(%
)
Noise Density
Jenis (Webcam)
Jenis (komputer)
Fitting (Webcam)
Fitting (komputer)
42
4.6.4 Gaussian
Berikut hasil pengujian sistem dengan citra yang ditambah derau Gaussian dengan
beberapa nilai kerapatan (density). Jumlah citra yang diujikan masing-masing sebanyak 18
buah citra yang sama dengan pengujian dengan derau Poisson.
Tabel 4.6 Hasil Uji Derau Gaussian dengan Mean=0 dan Berbagai Nilai Variance
Berdasarkan tabel tersebut dapat diperoleh grafik akurasi sebagai berikut:
Gambar 4.12 Grafik akurasi hasil uji derau Gaussian dengan mean=0
Tabel 4.7 Hasil Uji Derau Gaussian, Variance=0,01 dan Berbagai Nilai Mean
Berdasarkan tabel tersebut dapat diperoleh grafik akurasi sebagai berikut:
Gambar 4.13 Grafik akurasi hasil uji derau Gaussian dengan variance=0,01
Noise Density 0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
Jenis (Webcam) 18 18 18 18 18 18 18 18 18
Jenis (komputer) 18 18 18 18 18 18 17 18 18
Posisi (Webcam) 18 18 18 18 18 18 18 18 18
Posisi (komputer) 18 18 18 18 18 18 18 18 18
0%
20%
40%
60%
80%
100%
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7Pe
rse
nta
si A
ku
rasi
(%
)
Variance
Jenis (Webcam)
Jenis (komputer)
Posisi (Webcam)
Posisi (komputer)
Noise Density 0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
Jenis (Webcam) 17 12 10 3 3 2 3 0 0
Jenis (komputer) 18 18 18 18 18 18 18 11 11
Posisi (Webcam) 17 12 12 6 3 3 3 0 0
Posisi (komputer) 18 18 18 18 18 18 18 12 12
0,00%
20,00%
40,00%
60,00%
80,00%
100,00%
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
pe
rse
nta
si a
ku
rasi
(%
)
Mean
Jenis (Webcam)
Jenis (komputer)
Posisi (Webcam)
Posisi (komputer)
43
Berdasarkan hasil uji tersebut, Untuk derau Gaussian dengan mean konstan (nol)
citra yang dibangkitkan dari komputer saja yang terdeteksi 100% sampai variance 0,2.
Sementara untuk nilai variance konstan (0,01), untuk citra yang dibangkitkan oleh
komputer jenis dan rekonstruksi objek masih dapat dilakukan hingga variance 0,5.
Sedangkan untuk citra webcam saat mean sebesar 0,05 akurasi mulai menurun cukup
besar. Kesalahan terdapat pada citra berwarna hijau karena saat diberi derau warna objek
dan latar semakin menyatu dan sulit dibedakan sistem. Variance mempengaruhi tingkat
kerapatan derau, sementara mean mempengaruhi tingkat keputihan derau tersebut.
Tampilan derau Gaussian dapat dilihat pada gambar dibawah ini.
Gambar 4.14 Derau Gaussian dengan mean = 0, (var=0 kiri, var=0,2 tengah,
var=0,5 kanan)
Gambar 4.15 Derau Gaussian dengan variance = 0.01, (mean=0 kiri, mean=0,2
tengah, mean=0,5 kanan)
4.7 Analisis Hasil Deteksi Objek Lingkaran dan Elips Sebenarnya pada Citra yang
di-capture Webcam
Rincian tabel hasil uji objek sesungguhnya dapat dilihat pada lampiran D. Ada 120
citra yang akan diuji, masing-masing 60 citra elips dan 60 citra lingkaran. Dari 60 tersebut
dibagi lagi menjadi 3 kategori lagi (kecil, sedang, dan besar) untuk setiap kategori terdapat
5 buah objek berbeda yang masing-masing di-capture 4 kali. Secara keseluruhan dari 120
citra digital yang diujikan, dapat diketahui hasil deteksi pada tabel 4.8.
44
Tabel 4.8 Perbandingan Hasil Uji Objek Sesungguhnya
Berdasarkan tabel tersebut, dapat disimpulkan:
1. Jumlah error dalam mendeteksi jenis bangun sebanyak 24, sehingga akurasi
dalam pendeteksian jenis bangun 80%
2. Dalam mendeteksi posisi dan proses rekonstruksi bangun, jumlah error =16,
sehingga akurasinya 86,66%.
3. Waktu Komputasi Algoritma Transformasi Hough untuk mendeteksi objek
lingkaran rata-rata 3,933 detik, dengan waktu komputasi terlama mencapai 8,727
detik sedangkan waktu tercepat 0,437 detik.
4. Waktu Komputasi Algoritma Transformasi Hough untuk mendeteksi objek Elips
rata-rata 0,43 detik, dengan waktu komputasi terlama mencapai 0,997 detik
sedangkan waktu tercepat 0,636 detik.
Dalam pendeteksian jenis bangun terdapat berbagai jenis kesalahan, diantaranya
faktor derau bayangan. Bayangan yang terdapat pada citra lingkaran apabila terlihat
dengan jelas dan berbeda dengan warna latar saat diubah ke model warna HSV akan ikut
terdeteksi sebagai objek juga, sehingga saat diubah menjadi citra biner dengan level auto
threshold akan menjadikan objek tersebut berupa elips. Berikut contoh objek citra yang
salah akibat bayangan dalam pendeteksian.
Gambar 4.16 Citra lingkaran yang terdeteksi sebagai elips karena bayangan
(kiri=citra masukan, tengah=model warna HSV, kanan=hasil threshold)
Kecil Sedang Besar Kecil Sedang Besar
Jumlah Citra 20 20 20 20 20 20
Kesalahan Deteksi Jenis 5 4 8 0 3 4
Akurasi Jenis Bangun 75% 80% 60% 100% 85% 80%
Kesalahan Fitting Bangun 5 2 1 0 4 4
Akurasi Fitting Bangun 75% 90% 95% 100% 75% 80%
Waktu Komputasi Rata-Rata(s) 2,557 4,457 4,783 0,267 0,237 0,786
Waktu Komputasi Maksimum (s) 3,025 6,152 8,727 0,593 0,679 0,997
Waktu Komputasi Minimum (s) 2,088 0,437 0,926 0,107 0,118 0,636
Lingkaran Elips
45
Selain bayangan, penyebab kesalahan deteksi yang lain adalah objek yang terlalu
gelap dan berwarba terlalu mirip ke latar. Dalam pengubahan menjadi model warna HSV,
objek dengan warna gelap dan mendekati kecerahan seperti warna latar akan menyebabkan
sebagian besar bagian objek terdeteksi sama seperti latar. Sehingga objek akan menjadi
tidak sempurna karena saat diubah menjadi citra biner sistem akan sulit menentukan
threshold yang cocok. Berikut contoh objek citra yang salah karena berwarna terlalu gelap.
Gambar 4.17 Citra lingkaran yang tidak terdeteksi karena terlalu gelap (kiri=citra
masukan, tengah=model warna HSV, kanan=hasil threshold)
4.8 Pengujian dengan Objek Selain Elips dan Lingkaran
Dalam tugas akhir ini, untuk mengetahui tingkat efektifitas sistem dalam
pendeteksian dengan metode standar deviasi untuk mengklasifikasikan objek, maka sistem
juga diuji dengan menggunakan bangun selain elips dan lingkaran. Dalam pengujian ini
digunakan poligon bangun segitiga, segiempat, segilima, segi sepuluh, dan segi dua belas.
Berikut adalah tabel hasil penelitian dengan objek poligon:
Tabel 4.9 Hasil Uji Objek Selain Lingkaran dan Elips
Menurut teori, poligon merupakan sebuah bangun geometri yang tersusun dari garis
lurus dan membentuk bidang tertutup[9]. Sedangkan elips dan lingkaran merupakan sebuah
kurva yang tertutup membentuk bidang. Dalam analisis ini sistem hanya akan digunakan
sampai tahap pendeteksian saja, hal ini dikarenakan rekonstruksi menggunakan Algoritma
Transformasi Hough Modifikasi hanya bisa mendeteksi objek tertentu saja (lingkaran dan
Elips). Hasil pemetaan citra poligon segitiga, segiempat, dan segilima terdapat dalam
lampiran E.
Name(*.bmp) Maxima STDEV
Segitiga 195 1,84527
Segiempat 169 3,66939
Segilima 139 1,41098
Segisepuluh 70 4,18936
Segiduabelas 68 4,09427
46
Dari hasil penelitian tersebut dapat dilihat standar deviasi yang dihasilkan berbeda-
beda dan melebihi batas threshold lingkaran sehingga sistem akan mendeteksinya sebagai
elips, oleh karena itu metode standar deviasi tidak dapat digunakan untuk mendeteksi
objek selain lingkaran dan elips. Akan tetapi dapat dilihat juga untuk parameter Local
Maxima, semakin banyak sisi dari poligon, maka Local Maxima akan semakin mengecil.
Hal ini dikarenakan garis yang terdapat pada objek semakin kecil. Sehingga bisa
mendekati bentuk objek lingkaran. Untuk itu parameter Local Maxima dapat digunakan
untuk mendeteksi objek yang memiliki garis lurus seperti poligon.
Pada penelitian sebelumnya oleh Dzikrina Khoirunnisak, titik tersebut akan
digunakan untuk penelitian selanjutnya untuk proses rekonstruksi poligon. Sedangkan
dalam pendeteksian lingkaran nilai puncak tersebar dalam sinusoidal yang terbentuk dalam
domain hough. Hal ini disebabkan karena lingkaran terbentuk dari garis yang tidak lurus
melainkan kurva yang teratur. Untuk Deteksi Elips, titik puncak terdeteksi di pinggir
sinusoidal, karena elips yang dideteksi membentuk kurva yang tidak teratur seperti
lingkaran melainkan mendekati sebuah garis.
Gambar 4.18 Hasil transformasi segi sepuluh kedalam domain Hough
Gambar 4.19 Hasil transformasi segi duabelas kedalam domain Hough
47
BAB V
PENUTUP
5.1 Kesimpulan
Dari hasil analisis terhadap pengujian yang dilakukan pada sistem pendeteksi
lingkaran dan elips pada bangun 2 dimensi dengan menggunakan Transformasi Hough
berbasis pengolahan citra digital, maka dapat diambil kesimpulan sebagai berikut:
a. Metode standar deviasi dapat digunakan dalam membedakan hasil ekstraksi ciri
Transformasi Hough standar dalam pendeteksian elips dan lingkaran. Akan tetapi
untuk mendeteksi bangun selain elips dan lingkaran metode ini tidak lagi bisa
digunakan karena hanya bangun lingkaran yang memiliki homogenitas data jarak
piksel atas dan piksel bawah yang paling stabil. Sehingga apabila mendeteksi
bangun selain elips dan lingkaran akan menghasilkan bangun elips.
b. Perbedaan dalam pendeteksian objek kurva tertutup dengan objek poligon (segi
3,4,5) dapat dilihat dari nilai puncak (local maxima) dari hasil algoritma
Transformasi Hough standar. Nilai puncak bangun poligon rata-rata diatas 100,
dikarenakan poligon terdiri dari garis-garis lurus.
c. Dalam mendeteksi jenis bangun lingkaran atau elips 2D, tingkat akurasi mencapai
100% untuk citra tidak berderau yang dibangkitkan dari komputer dan 81,84%
untuk citra yang di-capture oleh webcam. Sehingga akurasi total adalah 95,46%
dengan jumlah citra uji 108 buah.
d. Dalam mendeteksi posisi dan rekonstruksi bangun lingkaran dan elips, tingkat
akurasi mencapai 100% untuk citra tidak berderau yang dibangkitkan dari
komputer maupun citra yang di-capture oleh webcam dengan jumlah citra uji 108
buah.
e. Untuk pendeteksian objek sebenarnya yang di-capture melalui webcam, akurasi
dalam mendeteksi jenis bangun mencapai 80%. Akurasi dalam merekonstruksi
bangun mencapai 86,66% untuk keseluruhan citra uji 120 citra digital.
f. Semakin besar objek yang diteliti maka menyebabkan waktu komputasi Modified
Hough Transform (MHT) untuk merekonstruksi objek akan semakin bertambah.
Pada penelitian ini MHT untuk mendeteksi elips lebih cepat daripada untuk
mendeteksi lingkaran
48
g. Nilai batas ambang (threshold) standar deviasi yang digunakan dalam penentuan
bangun elips dan lingkaran dapat mempengaruhi proses pendeteksian. Dalam
penelitian ini nilai batas ambang standar deviasi yang ditentukan adalah 0,8.
h. Untuk pengujian eksentrisitas elips, semakin besar eksentrisitas elips maka objek
elips akan semakin pipih, sehingga hasil pendeteksian elips mencapai tingkat
akurasi 100%. Semakin kecil eksentrisitas elips maka objek elips akan semakin
mirip dengan lingkaran, sehingga akurasi dalam mendeteksi jenis bangun dengan
eksentrisitas 0,2 adalah 0%, eksentrisitas 0,3 adalah 25%, dan eksentrisitas 0,4
adalah 91,67%. Elips dengan eksentrisitas 0,5 dan 0,8 memiliki kesalahan 0 dari
masing-masing 12 kali percobaan, sehingga akurasi dalam mendeteksi elips
sebesar 100%.
i. Untuk derau Poisson, akurasi deteksi jenis bangun lingkaran dan elips sebesar
100% dan akurasi dalam pendeteksian posisi dan rekonstruksi (fitting) mencapai
97%. Kesalahan fitting terdapat pada citra elips yang di-capture webcam karena
citra tersebut sudah punya derau bayangan dan ditambah derau lagi sehingga
objek yang telah melewati tahap preprocessing tidak sempurna lagi.
j. Untuk derau Speckle, Salt and Pepper, dan Gaussian, semakin besar kerapatan,
mean atau variance-nya maka akan membuat sistem semakin tidak akurat.
Umumnya untuk citra yang dibangkitkan lewat komputer, mampu bertahan
sampai variance/density sebesar 0.2, sedangkan citra yang di-capture lewat
webcam rata-rata mampu bertahan sampai variance/density sebesar 0.05.
k. Kesalahan dalam memasukkan derau sering terjadi pada objek lingkaran. Karena
semakin rapat derau, hasil pemrosesan awal terkadang menghasilkan objek
lingkaran yang tidak sempurna hingga mengakibatkan sistem mendeteksinya
sebagai elips.
5.2 Saran
Pengembangan yang dapat dilakukan pada tugas akhir ini antara lain sebagai berikut:
a. Perancangan sistem yang mampu mendeteksi keseluruhan jenis bangun, baik
pendeteksian kurva tertutup maupun poligon.
b. Perancangan sistem preprocessing yang lebih baik sehingga dapat mendeteksi
bangun dengan latar yang beragam atau adaptif terhadap berbagai derau.
49
c. Perancangan sistem algoritma Transformasi Hough dalam mendeteksi lingkaran
yang lebih efisien agar waktu komputasi yang diperlukan tidak terlalu besar.
d. Dilakukan penelitian lebih lanjut dengan mengaplikasikan algoritma Transformasi
Hough General agar mampu mendeteksi objek sembarang ataupun objek 3-D.
e. Dilakukan penelitian lebih lanjut dengan menggunakan software/platform yang
berbeda sehingga dapat diaplikasikan kedalam kehidupan nyata.
xx
DAFTAR PUSTAKA
[1] Atturmudzi, Aji. 2008. Eye Detection Menggunakan Template Matching, Algoritma
Genetika, dan Hough Transform. Tugas Akhir Program Sarjana, Institut
Teknologi Telkom
[2] Basca, C.A. et al. 2005. Randomized Hough Transform for Ellipse Detection with
Result Clustering. University of Sibiu. Romania.
[3] Dembele, Fatoumata. Object Detection Using Circular Hough Transform. Michigan
State University.
[4] Duda, R. O. and P. E. Hart. 1971. Use of the Hough Transformation to Detect Lines
and Curves in Pictures. Artificial Intelligence Center.
[5] Herdiyeni, Yeni. 2008. Hough Transform. Institut Pertanian Bogor, Ilmu Komputer.
[6] Illingworth, J and Kittler, J. 1988. A Survey of the Hough Transform. Department of
Electronics and Electrical Engineering, University of Surrey, Guildford. United
Kingdom.
[7] Ji, Qiang and Xie, Yonghong. 2002. A New Efficient Ellipse Detection Method.
IEEE.
[8] J.K. Pedersen, Simon. 2007. Circular Hough Transform. Aalborg University, Vision,
Graphics, and Interactive System.
[9] Khoirunnisak, Dzikrina. 2011. Analisis Perbandingan Algoritma Transformasi
Hough Dan Algoritma Transformasi Radon Untuk Deteksi Objek Planar Segi-
N Berbasis Pengolahan Citra Digital. Tugas Akhir Program Sarjana, Institut
Teknologi Telkom.
[10] Lee, Kyewook. 2006. Application of the Hough Transform. University of
Massachusetts. Lowel
[11] McAndrew, Alasdair. An Introduction to Digital Image Processing with Matlab.
School of Computer Science and Mathematics. Victoria University of
Technology
[12] Prasasti, Anggunmeka L. 2012. Deteksi Dan Analisis Convex Dan Concave Polygon
Pada Bangun Geometri 2-Dimensi Dengan Menggunakan Transformasi Radon
Berbasis Pengolahan Citra Digital. Tugas Akhir Program Sarjana, Institut
Teknologi Telkom.
[13] Putra, Dharma. 2010. Pengolahan Citra Digital. Yogyakarta: Andi Publisher.
xxi
[14] Sa’diyah, Halimatus. 2008. Aplikasi Transformasi Hough Untuk Deteksi Garis
Lurus. Tugas Akhir Program Sarjana, Universitas Diponegoro.
[15] Sembor, Dhiemas R.Y., et al. 2010. Pengenalan dan Pencarian Posisi Robot Dalam
Pencarian Sumber Kebocoran Gas. Fakultas Ilmu Komputer, Universitas
Indonesia.
[16] Simonovsky, Martin. 2011. Ellipse Detection Using 1D Hough Transform.
Mathworks.
[17] Wijaya, M.C. dan Prijono A. 2007. Pengolahan Citra Digital Menggunakan Matlab.
Bandung: Informatika.
[18] http://en.wikipedia.org/wiki/Hough_transform Tanggal akses 11 April 2012
[19] http://id.wikipedia.org/wiki/Lingkaran Tanggal 12 April 2012
[20] http://web-matematika.blogspot.com/2010/03/persamaan-elips.html Tanggal akses
12 April 2012
[21] http://en.wikipedia.org/wiki/Eccentricity_%28mathematics%29 Tanggal akses 12
April 2012
[22] http://www.mathworks.com/help/images/ref/hough.html Tanggal akses 12 April
2012
[23] http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm Tanggal akses 20 Oktober 2012
[24] http://blog.ub.ac.id/rakamahendras/2012/03/14/mean-median-modus-dan-standar-
deviasi/ Tanggal akses 23 Oktober 2012
[25] http://basic-eng.blogspot.com/2005/12/object-detection-using-hough-transform.html
Tanggal akses 23 Oktober 2012
[26] http://www.mathworks.com/help/images/morphology-fundamentals-dilation-and-
erosion.html#f18-24720?s_tid=doc_12b Tanggal akses 28 Desember 2012
xxii
DAFTAR LAMPIRAN
A.1 Data Citra Masukan Sistem (CorelDraw/Komputer) ........................................... A-1
A.2 Data Citra Masukan Sistem (Webcam) ................................................................ A-2
A.3 Citra yang dibangkitkan Komputer (Lingkaran) .................................................. A-5
A.4 Citra yang dibangkitkan komputer (Elips) ........................................................... A-6
A.5 Citra yang di-capture oleh webcam (Lingkaran) ................................................. A-7
A.6 Citra yang Di-capture oleh Webcam (Elips) ....................................................... A-8
B.1 Data Citra Eksentrisitas Masukan Sistem (CorelDraw/Komputer) ..................... B-1
B.2 Data Citra Eksentrisitas Masukan Sistem (Webcam) .......................................... B-2
B.3 Hasil Uji Deteksi Elips Eksentrisitas 0.2 (Komputer) ......................................... B-3
B.4 Hasil Uji Deteksi Elips Eksentrisitas 0.3 (Komputer) ......................................... B-3
B.5 Hasil Uji Deteksi Elips Eksentrisitas 0,4 (Komputer) ......................................... B-3
B.6 Hasil Uji Deteksi Elips Eksentrisitas 0,5 (Komputer) ......................................... B-3
B.7 Hasil Uji Deteksi Elips Eksentrisitas 0.8 (Komputer) ......................................... B-4
B.8 Hasil Uji Deteksi Elips Eksentrisitas 0.2 (Webcam) ........................................... B-4
B.9 Hasil Uji Deteksi Elips Eksentrisitas 0.3 (Webcam) ........................................... B-4
B.10 Hasil Uji Deteksi Elips Eksentrisitas 0.4 (Webcam) ........................................... B-4
B.11 Hasil Uji Deteksi Elips Eksentrisitas 0.5 (Webcam) ........................................... B-5
B.12 Hasil Uji Deteksi Elips Eksentrisitas 0.8 (Webcam) ........................................... B-5
C.1 Deteksi Jenis dan Rekonstruksi Elips dan Lingkaran pada Citra
Komputer dan Webcam dengan Derau Poisson ................................................... C-1
C.2 Deteksi Jenis Elips dan Lingkaran pada Citra webcam dengan
Derau Speckle ....................................................................................................... C-2
C.3 Rekonstruksi Elips dan Lingkaran pada Citra webcam dengan
Derau Speckle ....................................................................................................... C-2
C.4 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan
Derau Speckle ....................................................................................................... C-3
C.5 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan
Derau Speckle ....................................................................................................... C-3
C.6 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan
Derau Salt and Pepper ......................................................................................... C-4
xxiii
C.7 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan
Derau Salt and Pepper ......................................................................................... C-4
C.8 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan
Derau Salt and Pepper ......................................................................................... C-5
C.9 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan
Derau Salt and Pepper ......................................................................................... C-5
C.10 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan
Derau Gaussian (mean=0) ................................................................................... C-6
C.11 Rekonstruksi Elips dan Lingkaran pada Citra Webcam dengan
Derau Gaussian (mean=0) ................................................................................... C-6
C.12 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan
Derau Gaussian (mean=0) ................................................................................... C-7
C.13 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan
Derau Gaussian (mean=0) ................................................................................... C-7
C.14 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan
Derau Gaussian (variance=0,01) ......................................................................... C-8
C.15 Rekonstruksi Elips dan Lingkaran pada Citra Webcam dengan
Derau Gaussian (variance=0,01) ......................................................................... C-8
C.16 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan
Derau Gaussian (variance=0,01) ......................................................................... C-9
C.17 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan
Derau Gaussian (variance=0,01) ......................................................................... C-9
D.1 Data Citra Masukan Sistem Objek Lingkaran Ukuran Kecil ............................... D-1
D.2 Data Citra Masukan Sistem Objek Lingkaran Ukuran Sedang ............................ D-1
D.3 Data Citra Masukan Sistem Objek Lingkaran Ukuran Besar .............................. D-2
D.4 Data Citra Masukan Sistem Objek Elips Ukuran Kecil ....................................... D-3
D.5 Data Citra Masukan Sistem Objek Elips Ukuran Sedang .................................... D-3
D.6 Data Citra Masukan Sistem Objek Elips Ukuran Besar ....................................... D-4
D.7 Hasil Uji Citra Objek Lingkaran Ukuran Kecil ................................................... D-5
D.8 Hasil Uji Citra Objek Lingkaran Ukuran Sedang ................................................ D-5
D.9 Hasil Uji Citra Objek Lingkaran Ukuran Besar ................................................... D-6
D.10 Hasil Uji Citra Objek Elips Ukuran Kecil ............................................................ D-6
D.11 Hasil Uji Citra Objek Elips Ukuran Sedang ........................................................ D-7
xxiv
E.1 Hasil Uji Citra Objek Elips Ukuran Besar ........................................................... D-7
E.2 Perbandingan Deteksi Kurva dengan Poligon ..................................................... E-1
F.1 Tampilan Program Utama .................................................................................... F-1
F.2 Listing Program .................................................................................................... F-2
A-1
LAMPIRAN A
Data Uji Dan Hasil Deteksi
A.1 Data Citra Masukan Sistem (CorelDraw/Komputer)
bluecr60px_1
bluecr60px_2
bluecr60px_3
Bluecr90px_1
Bluecr90px_2
Bluecr90px_3
Bluecr120px_1
Bluecr120px_2
Bluecr120px_3
Greencr60px_1
Greencr60px_2
Greencr60px_3
Greencr90px_1
Greencr90px_2
Greencr90px_3
Greencr120p_1
Greencr120p_2
Greencr120p_3
Redcr60px_1
Redcr60px_2
Redcr60px_3
Redcr90px_1
Redcr90px_2
Redcr90px_3
redcr120px_1
Redcr120px_2
Redcr120px_3
A-2
Blue_El_a120b60_1
Blue_El_a120b60_1
Blue_El_a120b60_3
Blue_El_a180b60_1
Blue_El_a180b60_2
Blue_El_a180b60_3
Blue_El_a240b60_1
Blue_El_a240b60_2
Blue_El_a240b60_3
Green_El_a120b60_1
Green_El_a120b60_2
Green_El_a120b60_3
Green_El_a180b60_1
Green_El_a180b60_2
Green_El_a180b60_2
Green_El_a240b60_1
Green_El_a240b60_2
Green_El_a240b60_3
Red_El_a120b60_1
Red_El_a120b60_2
Red_El_a120b60_3
Red_El_a180b60_1
Red_El_a180b60_2
Red_El_a180b60_3
Red_El_a240b60_1
Red_El_a240b60_2
Red_El_a240b60_1
A.2 Data Citra Masukan Sistem (Webcam)
bluecr4cm_1
bluecr4cm_2
bluecr4cm_3
Bluecr5cm_1
Bluecr5cm_2
A-3
Blue_El_a6b3_1
Blue_El_a6b3_2
Blue_El_a6b3_3
Blue_El_a9b3_1
Blue_El_a9b3_2
Blue_El_a9b3_3
Blue_El_a12b3_1
Blue_El_a12b3_2
Blue_El_a12b3_3
Green_El_a6b3_1
Bluecr5cm_3
Bluecr6cm_1
Bluecr6cm_2
Bluecr6cm_3
Greencr4cm_1
Greencr4cm_2
Greencr4cm_3
Greencr5cm_1
Greencr5cm_2
Greencr5cm_3
Greencr6cm_1
Greencr6cm_2
Greencr6cm_3
Redcr4cm_1
Redcr4cm_2
Redcr4cm_3
Redcr5cm_1
Redcr5cm_2
Redcr5cm_3
Redcr6cm_1
Redcr6cm_2
Redcr6cm_3
A-4
Green_El_a6b3_2
Green_El_a6b3_3
Green_El_a9b3_1
Green_El_a9b3_2
Green_El_a9b3_3
Green_El_a12b3_1
Green_El_a12b3_2
Green_El_a12b3_3
Green_El_a12b3_1
Green_El_a12b3_2
Green_El_a12b3_3
Green_El_a12b3_1
Green_El_a12b3_2
Green_El_a12b3_3
Red_El_a9b3_1
Red_El_a9b3_2
Red_El_a9b3_3
A-5
A.3 Citra yang dibangkitkan Komputer (Lingkaran)
Nama (*.bmp) Maxima STDEV DetectHough
Time (s)R Xo Yo Fitting
bluecr60px_1 24 0.393875 Circle 2,88172 60 84 222 v
bluecr60px_2 24 0.37109 Circle 3,09584 60 334 226 v
bluecr60px_3 24 0.333584 Circle 2,86264 60 565 226 v
bluecr90px_1 26 0.498437 Circle 4,91667 90 114 221 v
bluecr90px_2 26 0.518863 Circle 4,91346 90 352 221 v
bluecr90px_3 26 0.509848 Circle 4,81568 90 542 221 v
bluecr120px_1 29 0.369244 Circle 5,91623 125 142 225 v
bluecr120px_2 31 0.420916 Circle 6,40437 120 314 226 v
bluecr120px_3 31 0.460813 Circle 6,16864 120 512 226 v
greencr60px_1 25 0.319347 Circle 2,73354 60 100 226 v
greencr60px_2 28 0.386872 Circle 2,93146 60 334 222 v
greencr60px_3 24 0.241558 Circle 2,74707 60 565 226 v
greencr90px_1 26 0.493775 Circle 4,85622 90 114 221 v
greencr90px_2 28 0.498917 Circle 5,0988 90 360 221 v
greencr90px_3 26 0.492019 Circle 4,98247 90 540 221 v
greencr120px_1 37 0.44818 Circle 6,11197 120 133 226 v
greencr120px_2 36 0.443273 Circle 6,18032 120 336 226 v
greencr120px_3 36 0.432661 Circle 6,00264 120 507 226 v
redcr60px_1 24 0.358759 Circle 2,60935 60 84 222 v
redcr60px_2 24 0.258155 Circle 2,8611 60 332 222 v
redcr60px_3 24 0.241558 Circle 2,73773 60 561 222 v
redcr90px_1 26 0.49672 Circle 4,84964 90 114 221 v
redcr90px_2 29 0.509848 Circle 4,92341 90 346 221 v
redcr90px_3 29 0.501172 Circle 4,69682 90 536 221 v
redcr120px_1 31 0.381892 Circle 5,90475 125 142 225.5 v
redcr120px_2 38 0.423963 Circle 6,72569 125 336 225 v
redcr120px_3 34 0.364805 Circle 6,03126 120 506 225 v
A-6
A.4 Citra yang dibangkitkan komputer (Elips)
Nama (*.bmp) Maxima STDEV DetectHough
Time (s)x0 y0 Major Minor Alpha Fitting
Blue_El_a120b60_1 42 4,62561 Ellipse 0,293141 327 77 122,01 61 0.0613 v
Blue_El_a120b60_2 42 4,59149 Ellipse 0,282632 327 241 122,02 63 0.0204 v
Blue_El_a120b60_3 52 4,59821 Ellipse 0,269824 327 409 122,01 63 0.0613 v
Blue_El_a180b60_1 75 9,11675 Ellipse 0,486872 327 80,5 182 63 -0.082 v
Blue_El_a180b60_2 78 9,0722 Ellipse 0,484603 327,5 241 181,5 60 -0.0055 v
Blue_El_a180b60_3 72 9,06618 Ellipse 0,495971 327 405 182 63 0 v
Blue_El_a240b60_1 88 12,7138 Ellipse 0,774286 327,5 68 237,5 49 0.0042 v
Blue_El_a240b60_2 91 13,0592 Ellipse 0,793818 327 221,5 242 59 0.0020 v
Blue_El_a240b60_3 95 13,0188 Ellipse 0,790804 327 401 241 55 0 v
Green_El_a120b60_1 39 4,60964 Ellipse 0,276971 327 74 122,03 63 -0.024 v
Green_El_a120b60_2 38 4,61374 Ellipse 0,267773 327 246 122,01 59 -0.016 v
Green_El_a120b60_3 38 4,56823 Ellipse 0,274817 327 406,5 122,02 63 -0.02 v
Green_El_a180b60_1 54 9,13796 Ellipse 0,486753 327 82 182 60 0.0054 v
Green_El_a180b60_2 62 9,03263 Ellipse 0,480435 327 247,5 182 63 -0.0027 v
Green_El_a180b60_3 62 9,05478 Ellipse 0,489086 327 406 182,01 63 0.0109 v
Green_El_a240b60_1 90 13,0865 Ellipse 0,798998 323,5 97,5 236,54 50 0.019 v
Green_El_a240b60_2 93 13,3505 Ellipse 0,774303 326 222,5 241,01 55 -0.010 v
Green_El_a240b60_3 98 13,0146 Ellipse 0,799777 326,5 405 241,5 57 -0.08 v
Red_El_a120b60_1 41 4,62458 Ellipse 0,269198 327 76,5 122,05 63 0.0286 v
Red_El_a120b60_2 41 4,63608 Ellipse 0,277272 327 240 122 60 0 v
Red_El_a120b60_3 52 4,59015 Ellipse 0,270811 327 410,5 122 57 -0.0040 v
Red_El_a180b60_1 78 9,11606 Ellipse 0,486679 327,5 76,5 182 59 -0.0027 v
Red_El_a180b60_2 75 9,0604 Ellipse 0,489915 329 235,5 179,03 51 0.019 v
Red_El_a180b60_3 61 9,08189 Ellipse 0,483894 327 406.5 182 58 -0.0027 v
Red_El_a240b60_1 92 12,5993 Ellipse 0,788611 323,5 65,5 234,52 47 -0.014 v
Red_El_a240b60_2 95 13,0535 Ellipse 0,789415 326,5 211 236,5 48 0 v
Red_El_a240b60_3 91 12,8783 Ellipse 0,766128 327 410.5 242,02 63 0.0144 v
A-7
A.5 Citra yang di-capture oleh webcam (Lingkaran)
Nama (*.bmp) Maxima STDEV DetectHough
Time (s)R X0 Y0 Fitting
bluecr4cm_1 36 0,67101 Circle 5,76711 110 149 196 V
bluecr4cm_2 34 0,46305 Circle 5,17532 100 321 189 V
bluecr4cm_3 36 0,5604 Circle 4,82186 95 430 224 V
bluecr5cm_1 40 0,82391 Ellipse 0,440093 129,62/126 186 191,5 V
bluecr5cm_2 33 0,69849 Circle 6,55902 125 293 248 V
bluecr5cm_3 37 0,60061 Circle 6,34951 120 398 229 V
bluecr6cm_1 37 0,81136 Ellipse 0,51657 144,33/141 181,5 196,5 V
bluecr6cm_2 51 0,67686 Circle 7,12787 145 292 220 V
bluecr6cm_3 36 0,85557 Ellipse 0,480189 140,48/137 413,5 230,5 V
greencr4cm_1 38 0,65842 Circle 5,48206 100 165 181 V
greencr4cm_2 34 0,46855 Circle 4,95569 95 305 211 V
greencr4cm_3 34 0,52814 Circle 4,79566 90 454 238 V
greencr5cm_1 38 0,76287 Circle 6,16207 125 178 209 V
greencr5cm_2 44 0,50577 Circle 6,44107 130 296 219 V
greencr5cm_3 41 0,7606 Circle 6,3867 130 428 225 V
greencr6cm_1 36 0,55558 Circle 6,6007 150 204 204 V
greencr6cm_2 36 0,52016 Circle 7,56232 150 295 251 V
greencr6cm_3 41 0,78321 Circle 7,16592 150 385 268 V
redcr4cm_1 36 0,82575 Ellipse 0,26927 97,37/93 137,5 194 V
redcr4cm_2 37 0,65443 Circle 4,91597 95 292 249 V
redcr4cm_3 29 0,50913 Circle 5,33332 95 431 202 V
redcr5cm_1 48 1,02207 Ellipse 0,430528 129,47/125 166,5 227,5 V
redcr5cm_2 45 0,53937 Circle 6,37088 120 299 223 V
redcr5cm_3 38 0,69806 Circle 6,13225 125 425 214 V
redcr6cm_1 49 0,73961 Circle 6,83328 150 185 192 V
redcr6cm_2 45 0,5009 Circle 7,56268 150 255 232 V
redcr6cm_3 43 0,77193 Circle 6,86339 140 408 231 V
A-8
A.6 Citra yang Di-capture oleh Webcam (Elips)
Nama (*.bmp) Maxima STDEV DetectHough
Time (s)X0 Y0 major minor alpha Fitting
Blue_El_a6b3_1 45 10,2063 Ellipse 0,408954 291 126 151,74 71 -0,099 V
Blue_El_a6b3_2 47 10,1821 Ellipse 0,381426 293 201 150,08 74 -0,1202 V
Blue_El_a6b3_3 57 10,5576 Ellipse 0,371209 270,5 334,5 150,3 71 -0,1033 V
Blue_El_a9b3_1 72 19,693 Ellipse 0,67828 293 120 224,14 74 -0,0356 V
Blue_El_a9b3_2 77 19,8521 Ellipse 0,669184 310,5 199 223,5 74 -0,0089 V
Blue_El_a9b3_3 62 19,8188 Ellipse 0,645903 309 318,5 222,01 66 -0,0112 V
Blue_El_a12b3_1 106 28,1488 Ellipse 0,986363 300,5 111 289,64 73 -0,031 V
Blue_El_a12b3_2 87 27,9297 Ellipse 0,993789 296,5 200,5 284,52 60 -0,0123 V
Blue_El_a12b3_3 142 27,4525 Ellipse 0,902958 294,5 320 277,54 63 0,018 V
Green_El_a6b3_1 46 9,66008 Ellipse 0,360079 300 127 144,12 74 -0,1252 V
Green_El_a6b3_2 43 10,0618 Ellipse 0,359156 282 201 147,23 70 -0,129 V
Green_El_a6b3_3 48 10,2559 Ellipse 0,362627 258,5 324,5 145,41 68 -0,162 V
Green_El_a9b3_1 87 19,5207 Ellipse 0,670796 305 136 222,02 70 -0,0135 V
Green_El_a9b3_2 101 19,5672 Ellipse 0,670726 320,5 214 221,64 73 -0,0361 V
Green_El_a9b3_3 88 19,1504 Ellipse 0,645477 281 344 215,03 64 -0,018 V
Green_El_a12b3_1 108 28,4225 Ellipse 1,03744 303,5 148,5 291,52 71 -0,912 V
Green_El_a12b3_2 88 28,3227 Ellipse 0,983738 308 235,5 288,03 72 -0,0156 V
Green_El_a12b3_3 101 29,1703 Ellipse 1,14505 316,5 359 295,5 62 0 V
Red_El_a6b3_1 43 8,41993 Ellipse 0,302117 260 118,5 127,07 59 -0,13 V
Red_El_a6b3_2 43 8,47459 Ellipse 0,275336 267,5 238 124,46 63 -0,1776 V
Red_El_a6b3_3 53 8,29114 Ellipse 0,26457 277,5 290,5 121,62 60 -0,136 V
Red_El_a9b3_1 60 20,4521 Ellipse 0,688713 293 128 232,49 77 -0,1467 V
Red_El_a9b3_2 71 20,4809 Ellipse 0,688713 293 128 232,49 77 -0,1467 V
Red_El_a9b3_3 72 21,1312 Ellipse 0,711247 302,5 321,5 236,47 76 -0,129 V
Red_El_a12b3_1 90 29,0112 Ellipse 1,03477 304 114 297,04 73 -0,0168 V
Red_El_a12b3_2 93 28,3614 Ellipse 1,01384 301 191,5 288,03 63 -0,0156 V
Red_El_a12b3_3 96 26,6324 Ellipse 0,899447 298 343 269,03 63 0,0148 V
B-1
LAMPIRAN B
Data Uji Eksentrisitas
B.1 Data Citra Eksentrisitas Masukan Sistem (CorelDraw/Komputer)
1(e=0,2)
2(e=0,2)
3(e=0,2)
4(e=0,2)
5(e=0,2)
5(e=0,2)
1(e=0,3)
2(e=0,3)
3(e=0,3)
4(e=0,3)
5(e=0,3)
6(e=0,3)
1(e=0,4)
2(e=0,4)
3(e=0,4)
4(e=0,4)
5(e=0,4)
6(e=0,4)
1(e=0,5)
2(e=0,5)
3(e=0,5)
4(e=0,5)
5(e=0,5)
6(e=0,5)
1(e=0,8)
2(e=0,8)
3(e=0,8)
4(e=0,8)
5(e=0,8)
6(e=0,8)
B-2
B.2 Data Citra Eksentrisitas Masukan Sistem (Webcam)
1(e=0,2)
2(e=0,2)
3(e=0,2)
4(e=0,2)
5(e=0,2)
6(e=0,2)
1(e=0,3)
2(e=0,3)
3(e=0,3)
4(e=0,3)
5(e=0,3)
6(e=0,3)
1(e=0,4)
2(e=0,4)
3(e=0,4)
4(e=0,4)
5(e=0,4)
6(e=0,4)
1(e=0,5)
2(e=0,5)
3(e=0,5)
4(e=0,5)
5(e=0,5)
6(e=0,5)
1(e=0,8)
2(e=0,8)
3(e=0,8)
4(e=0,8)
5(e=0,8)
6(e=0,8)
B-3
B.3 Hasil Uji Deteksi Elips Eksentrisitas 0.2 (Komputer)
B.4 Hasil Uji Deteksi Elips Eksentrisitas 0.3 (Komputer)
B.5 Hasil Uji Deteksi Elips Eksentrisitas 0,4 (Komputer)
B.6 Hasil Uji Deteksi Elips Eksentrisitas 0,5 (Komputer)
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 22 0,51905 Circle 2,6142 v
2.bmp 22 0,42489 Circle 2,91523 v
3.bmp 24 0,45115 Circle 3,33835 v
4.bmp 24 0.447919 Circle 4,28381 v
5.bmp 28 0,46305 Circle 4,30328 v
6.bmp 26 0,55838 Circle 6,02871 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 30 0,58353 Circle 2,53533 v
2.bmp 23 0,60284 Circle 2,78549 v
3.bmp 33 0,5814 Circle 3,4007 v
4.bmp 25 0,64235 Circle 2,4007 v
5.bmp 33 0,73178 Circle 4,97143 v
6.bmp 33 0,86585 Ellipse 0,401225 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 24 0,71673 Circle 2,41392 v
2.bmp 24 0,82373 Ellipse 0,15233 v
3.bmp 33 0,93707 Ellipse 0,17175 v
4.bmp 31 1,02987 Ellipse 0,212764 v
5.bmp 33 1,17927 Ellipse 0,270165 v
6.bmp 35 1,42376 Ellipse 0,3588 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 20 1,13527 Ellipse 0,107937 v
2.bmp 23 1,277 Ellipse 0,128783 v
3.bmp 23 1,34713 Ellipse 0,154081 v
4.bmp 25 1,59026 Ellipse 0,184467 v
5.bmp 26 1,79679 Ellipse 0,248539 v
6.bmp 28 2,20145 Ellipse 0,314857 v
B-4
B.7 Hasil Uji Deteksi Elips Eksentrisitas 0.8 (Komputer)
B.8 Hasil Uji Deteksi Elips Eksentrisitas 0.2 (Webcam)
B.9 Hasil Uji Deteksi Elips Eksentrisitas 0.3 (Webcam)
B.10 Hasil Uji Deteksi Elips Eksentrisitas 0.4 (Webcam)
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 27 3,17312 Ellipse 0,0915031 v
2.bmp 28 3,48287 Ellipse 0,107163 v
3.bmp 29 3,96278 Ellipse 0,123373 v
4.bmp 35 4,50895 Ellipse 0,167602 v
5.bmp 31 5,2522 Ellipse 0,201616 v
6.bmp 33 6,31676 Ellipse 0,266329 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 24 0,52449 Circle 2,25877 v
2.bmp 25 0,45058 Circle 2,75116 v
3.bmp 34 0,43507 Circle 3,26244 v
4.bmp 32 0,51318 Circle 3,90366 v
5.bmp 27 0,49726 Circle 4,72903 v
6.bmp 32 0,50115 Circle 5,41935 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 24 0,64721 Circle 2,32052 v
2.bmp 33 0,5489 Circle 2,68844 v
3.bmp 28 0,75816 Circle 3,19548 v
4.bmp 27 0,93556 Ellipse 0,215089 v
5.bmp 29 0,89008 Ellipse 0,253678 v
6.bmp 35 0,93513 Ellipse 0,289229 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 26 0,80933 Ellipse 0,10632 v
2.bmp 26 0,86437 Ellipse 0,141876 v
3.bmp 33 0,94308 Ellipse 0,16958 v
4.bmp 36 1,12416 Ellipse 0,212106 v
5.bmp 28 1,22534 Ellipse 0,243531 v
6.bmp 36 1,34053 Ellipse 0,277009 v
B-5
B.11 Hasil Uji Deteksi Elips Eksentrisitas 0.5 (Webcam)
B.12 Hasil Uji Deteksi Elips Eksentrisitas 0.8 (Webcam)
Nama Maxima STDEV Detect Hough Time (s)
Fitting
1.bmp 35 2,97807 Ellipse 0,093273 v
2.bmp 34 3,32669 Ellipse 0,113877 v
3.bmp 38 3,84651 Ellipse 0,140291 v
4.bmp 37 4,69523 Ellipse 0,17692 v
5.bmp 37 4,92724 Ellipse 0,192726 v
6.bmp 44 5,40672 Ellipse 0,237111 v
Nama Maxima STDEV DetectHough
Time (s)Fitting
1.bmp 28 1,14126 Ellipse 0,113796 v
2.bmp 29 1,18404 Ellipse 0,141964 v
3.bmp 33 1,30725 Ellipse 0,179042 v
4.bmp 38 1,61854 Ellipse 0,202075 v
5.bmp 33 1,68852 Ellipse 0,246065 v
6.bmp 34 1,8615 Ellipse 0,279404 v
C-1
LAMPIRAN C
Data Uji dengan Derau MATLAB
C.1 Deteksi Jenis dan Rekonstruksi Elips dan Lingkaran pada Citra Komputer dan
Webcam dengan Derau Poisson
Keterangan :
V = Sesuai/Benar
X = Tidak Sesuai/Tidak benar
Tabel kiri merupakan citra hasil capture lewat webcam, tabel kanan citra hasil buatan
komputer
No Nama (*.bmp) Jenis Fitting Waktu (s) No Nama (*.bmp) Jenis Fitting Waktu
1 bluecr4cm_2 v v 5,17873 1 bluecr60px_2 v v 2,65611
2 bluecr5cm_2 v v 6,45202 2 bluecr90px_2 v v 4,62348
3 bluecr6cm_2 v v 6,93096 3 bluecr120px_2 v v 5,89796
4 greencr4cm_2 v v 4,55676 4 greencr60px_2 v v 2,66683
5 greencr5cm_2 v v 6,11272 5 greencr90px_2 v v 4,69994
6 greencr6cm_2 v v 6,93015 6 greencr120px_2 v v 5,95945
7 redcr4cm_2 v v 4,81164 7 redcr60px_2 v v 2,68108
8 redcr5cm_2 v v 6,25321 8 redcr120px_2 v v 4,74378
9 redcr6cm_2 v v 6,83066 9 redcr180px_2 v v 5,94794
10 Blue_El_a6b3_2 v v 0,39579 10 Blue_El_a120b60_2 v v 0,24942
11 Blue_El_a9b3_2 v v 0,684234 11 Blue_El_a180b60_2 v v 0,45725
12 Blue_El_a12b3_2 v v 0,954356 12 Blue_El_a240b60_2 v v 0,74492
13 Green_El_a6b3_2 v v 0,347054 13 Green_El_a120b60_2 v v 0,25991
14 Green_El_a9b3_2 v v 0,62103 14 Green_El_a180b60_2 v v 0,45977
15 Green_El_a12b3_2 v X 0,869178 15 Green_El_a240b60_2 v v 0,73486
16 Red_El_a6b3_2 v v 0,283753 16 Red_El_a120b60_2 v v 0,24793
17 Red_El_a9b3_2 v v 0,697889 17 Red_El_a180b60_2 v v 0,45289
18 Red_El_a12b3_2 v v 0,982713 18 Red_El_a240b60_2 v v 0.714167
C-2
C.2 Deteksi Jenis Elips dan Lingkaran pada Citra webcam dengan Derau Speckle
C.3 Rekonstruksi Elips dan Lingkaran pada Citra webcam dengan Derau Speckle
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V X X X X X X X
2 bluecr5cm_2 V X X X X X X X X
3 bluecr6cm_2 V X X X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 V X X X X X X X X
7 redcr4cm_2 V V V X X X X X X
8 redcr5cm_2 V V V X X X X X X
9 redcr6cm_2 V V V X X X X X X
10 Blue_El_a6b3_2 V V V V V V V V V
11 Blue_El_a9b3_2 V V V V V V V V V
12 Blue_El_a12b3_2 V V V V V V V V V
13 Green_El_a6b3_2 V V V V V V V V V
14 Green_El_a9b3_2 V X X X X X X X X
15 Green_El_a12b3_2 V X X X X X X X X
16 Red_El_a6b3_2 V V V V V V V V V
17 Red_El_a9b3_2 V V V V V V V V V
18 Red_El_a12b3_2 V V V V V V V V V
varianceNama (*.bmp)No
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V X X X X X X X
2 bluecr5cm_2 V V V X X X X X X
3 bluecr6cm_2 V V V X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 V X X X X X X X X
7 redcr4cm_2 V V V X X X X X X
8 redcr5cm_2 V V V X X X X X X
9 redcr6cm_2 V V V X X X X X X
10 Blue_El_a6b3_2 V V V X X X X X X
11 Blue_El_a9b3_2 V V V X X X X X X
12 Blue_El_a12b3_2 V V V X X X X X X
13 Green_El_a6b3_2 V X X X X X X X X
14 Green_El_a9b3_2 V X X X X X X X X
15 Green_El_a12b3_2 V X X X X X X X X
16 Red_El_a6b3_2 V V V X X X X X X
17 Red_El_a9b3_2 V V V X X X X X X
18 Red_El_a12b3_2 V V V X X X X X X
No Namavariance
C-3
C.4 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan Derau Speckle
C.5 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan Derau Speckle
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V X X X X X
2 bluecr90px_2 V V V V X X X X X
3 bluecr120px_2 V V V V X X X X X
4 greencr60px_2 V V V V X X X X X
5 greencr90px_2 V V V V X X X X X
6 greencr120px_2 V V V V X X X X X
7 redcr60px_2 V V V V X X X X X
8 redcr120px_2 V V V V X X X X X
9 redcr180px_2 V V V X X X X X X
10 Blue_El_a120b60_2 V V V V V V V V V
11 Blue_El_a180b60_2 V V V V V V V V V
12 Blue_El_a240b60_2 V V V V V V V V V
13 Green_El_a120b60_2 V V V V V V V V V
14 Green_El_a180b60_2 V V V V V V V V V
15 Green_El_a240b60_2 V V V V V V V V V
16 Red_El_a120b60_2 V V V V V V V V V
17 Red_El_a180b60_2 V V V V V V V V V
18 Red_El_a240b60_2 V V V V V V V V V
No Nama (*.bmp)variance
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V X X X X X
2 bluecr90px_2 V V V V X X X X X
3 bluecr120px_2 V V V V X X X X X
4 greencr60px_2 V V V V X X X X X
5 greencr90px_2 V V V V X X X X X
6 greencr120px_2 V V V V X X X X X
7 redcr60px_2 V V V V X X X X X
8 redcr120px_2 V V V V X X X X X
9 redcr180px_2 V V V V X X X X X
10 Blue_El_a120b60_2 V V V V X X X X X
11 Blue_El_a180b60_2 V V V V X X X X X
12 Blue_El_a240b60_2 V V V V X X X X X
13 Green_El_a120b60_2 V V V V X X X X X
14 Green_El_a180b60_2 V V V V X X X X X
15 Green_El_a240b60_2 V V V V X X X X X
16 Red_El_a120b60_2 V V V V X X X X X
17 Red_El_a180b60_2 V V V V X X X X X
18 Red_El_a240b60_2 V V V V X X X X X
varianceNo Nama
C-4
C.6 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan Derau Salt and
Pepper
C.7 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan Derau Salt
and Pepper
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V V X X X X X X
2 bluecr5cm_2 V V V X X X X X X
3 bluecr6cm_2 V V V X X X X X X
4 greencr4cm_2 V V V X X X X X X
5 greencr5cm_2 V V V X X X X X X
6 greencr6cm_2 V V V X X X X X X
7 redcr4cm_2 V V V V X X X X X
8 redcr5cm_2 V V V V X X X X X
9 redcr6cm_2 V V V V X X X X X
10 Blue_El_a6b3_2 V V V V V V V V V
11 Blue_El_a9b3_2 V V V V V V V V V
12 Blue_El_a12b3_2 V V V V V V V V V
13 Green_El_a6b3_2 V V V V V V V V V
14 Green_El_a9b3_2 V V V V V V V V V
15 Green_El_a12b3_2 V V V V V V V V V
16 Red_El_a6b3_2 V V V V V V V V V
17 Red_El_a9b3_2 V V V V V V V V V
18 Red_El_a12b3_2 V V V V V V V V V
No Nama (*.bmp)Noise Density
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V V V V X X X X
2 bluecr5cm_2 V V V V X X X X X
3 bluecr6cm_2 V V V V X X X X X
4 greencr4cm_2 V V V X V X X X X
5 greencr5cm_2 V V V X V X X X X
6 greencr6cm_2 V V V X V X X X X
7 redcr4cm_2 V V V V X X X X X
8 redcr5cm_2 V V V V X X X X X
9 redcr6cm_2 V V V V V X X X X
10 Blue_El_a6b3_2 V V V V X X X X X
11 Blue_El_a9b3_2 V V V V X X X X X
12 Blue_El_a12b3_2 V V V V X X X X X
13 Green_El_a6b3_2 V V V X V X X X X
14 Green_El_a9b3_2 V V V V X X X X X
15 Green_El_a12b3_2 V V V V X X X X X
16 Red_El_a6b3_2 V V V V X X X X X
17 Red_El_a9b3_2 V V V V X X X X X
18 Red_El_a12b3_2 V V V V X X X X X
No Nama (*.bmp)Noise Density
C-5
C.8 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan Derau Salt and
Pepper
C.9 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan Derau Salt
and Pepper
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V V X X X X
2 bluecr90px_2 V V V V V X X X X
3 bluecr120px_2 V V V V X X X X X
4 greencr60px_2 V V V V X X X X X
5 greencr90px_2 V V V V X X X X X
6 greencr120px_2 V V V V X X X X X
7 redcr60px_2 V V V V V X X X X
8 redcr90px_2 V V V V V X X X X
9 redcr120px_2 V V V V X X X X X
10 Blue_El_a120b60_2 V V V V V V V V V
11 Blue_El_a180b60_2 V V V V V V V V V
12 Blue_El_a240b60_2 V V V V V V V V V
13 Green_El_a120b60_2 V V V V V V V V V
14 Green_El_a180b60_2 V V V V V V V V V
15 Green_El_a240b60_2 V V V V V V V V V
16 Red_El_a120b60_2 V V V V V V V V V
17 Red_El_a180b60_2 V V V V V V V V V
18 Red_El_a240b60_2 V V V V V V V V V
No Nama (*.bmp)Noise Density
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V V X X X X
2 bluecr90px_2 V V V V V X X X X
3 bluecr120px_2 V V V V V X X X X
4 greencr60px_2 V V V V V X X X X
5 greencr90px_2 V V V V V X X X X
6 greencr120px_2 V V V V V X X X X
7 redcr60px_2 V V V V V X X X X
8 redcr90px_2 V V V V V X X X X
9 redcr120px_2 V V V V V X X X X
10 Blue_El_a120b60_2 V V V V V X X X X
11 Blue_El_a180b60_2 V V V V V X X X X
12 Blue_El_a240b60_2 V V V V V X X X X
13 Green_El_a120b60_2 V V V V V X X X X
14 Green_El_a180b60_2 V V V V V X X X X
15 Green_El_a240b60_2 V V V V V X X X X
16 Red_El_a120b60_2 V V V V V X X X X
17 Red_El_a180b60_2 V V V V V X X X X
18 Red_El_a240b60_2 V V V V V X X X X
No Namavariance
C-6
C.10 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan Derau Gaussian
(mean=0)
C.11 Rekonstruksi Elips dan Lingkaran pada Citra Webcam dengan Derau Gaussian
(mean=0)
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V X X X X X X X X
2 bluecr5cm_2 V V X X X X X X X
3 bluecr6cm_2 V V X X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 V X X X X X X X X
7 redcr4cm_2 V V X X X X X X X
8 redcr5cm_2 V V X X X X X X X
9 redcr6cm_2 V V X X X X X X X
10 Blue_El_a6b3_2 V V V V V V V V V
11 Blue_El_a9b3_2 V V V V V V V V V
12 Blue_El_a12b3_2 V V V V V V V V V
13 Green_El_a6b3_2 V V V V V V V V V
14 Green_El_a9b3_2 V V V V V V V V V
15 Green_El_a12b3_2 V V V V V V V V V
16 Red_El_a6b3_2 V V V V V V V V V
17 Red_El_a9b3_2 V V V V V V V V V
18 Red_El_a12b3_2 V V V V V V V V V
No Nama (*.bmp)Variance
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V X X X X X X X X
2 bluecr5cm_2 V V X X X X X X X
3 bluecr6cm_2 V V X X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 V V X X X X X X X
7 redcr4cm_2 V V X X X X X X X
8 redcr5cm_2 V V X X X X X X X
9 redcr6cm_2 V V X X X X X X X
10 Blue_El_a6b3_2 V V X X X X X X X
11 Blue_El_a9b3_2 V V X X X X X X X
12 Blue_El_a12b3_2 V V X X X X X X X
13 Green_El_a6b3_2 V X X X X X X X X
14 Green_El_a9b3_2 V V X X X X X X X
15 Green_El_a12b3_2 V V X X X X X X X
16 Red_El_a6b3_2 V V X X X X X X X
17 Red_El_a9b3_2 V V X X X X X X X
18 Red_El_a12b3_2 V V X X X X X X X
No Nama (*.bmp)Variance
C-7
C.12 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan Derau
Gaussian (mean=0)
C.13 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan Derau
Gaussian (mean=0)
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V X X X X X
2 bluecr90px_2 V V V V X X X X X
3 bluecr120px_2 V V V V X X X X X
4 greencr60px_2 V V V V X X X X X
5 greencr90px_2 V V V V V X X X X
6 greencr120px_2 V V V V V X X X X
7 redcr60px_2 V V V V V X X X X
8 redcr90px_2 V V V V X X X X X
9 redcr120px_2 V V V V X X X X X
10 Blue_El_a120b60_2 V V V V V V V V V
11 Blue_El_a180b60_2 V V V V V V V V V
12 Blue_El_a240b60_2 V V V V V V V V V
13 Green_El_a120b60_2 V V V V V V V V V
14 Green_El_a180b60_2 V V V V V V V V V
15 Green_El_a240b60_2 V V V V V V V V V
16 Red_El_a120b60_2 V V V V V V V V V
17 Red_El_a180b60_2 V V V V V V V V V
18 Red_El_a240b60_2 V V V V V V V V V
No Nama (*.bmp)Noise Density
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V V X X X X
2 bluecr90px_2 V V V V V X X X X
3 bluecr120px_2 V V V V V X X X X
4 greencr60px_2 V V V V X X X X X
5 greencr90px_2 V V V V V X X X X
6 greencr120px_2 V V V V V X X X X
7 redcr60px_2 V V V V V X X X X
8 redcr90px_2 V V V V V X X X X
9 redcr120px_2 V V V V V X X X X
10 Blue_El_a120b60_2 V V V V V X X X X
11 Blue_El_a180b60_2 V V V V V X X X X
12 Blue_El_a240b60_2 V V V V V X X X X
13 Green_El_a120b60_2 V V V V V X X X X
14 Green_El_a180b60_2 V V V V V X X X X
15 Green_El_a240b60_2 V V V V V X X X X
16 Red_El_a120b60_2 V V V V V X X X X
17 Red_El_a180b60_2 V V V V X X X X X
18 Red_El_a240b60_2 V V V V V X X X X
varianceNo Nama
C-8
C.14 Deteksi Jenis Elips dan Lingkaran pada Citra Webcam dengan Derau Gaussian
(variance=0,01)
C.15 Rekonstruksi Elips dan Lingkaran pada Citra Webcam dengan Derau Gaussian
(variance=0,01)
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V V X X X X X X
2 bluecr5cm_2 V V X X X X X X X
3 bluecr6cm_2 V V X X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 X X X X X X X X X
7 redcr4cm_2 V V V X X X X X X
8 redcr5cm_2 V V V X X X X X X
9 redcr6cm_2 V V V X X X X X X
10 Blue_El_a6b3_2 V V V X X X X X X
11 Blue_El_a9b3_2 V V V X X X X X X
12 Blue_El_a12b3_2 V V V X X X X X X
13 Green_El_a6b3_2 V X X X X X X X X
14 Green_El_a9b3_2 V X X X X X X X X
15 Green_El_a12b3_2 V X X X X X X X X
16 Red_El_a6b3_2 V V V V V V V X X
17 Red_El_a9b3_2 V V V V V X V X X
18 Red_El_a12b3_2 V V V V V V V X X
No Nama (*.bmp)Mean
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr4cm_2 V V V X X X X X X
2 bluecr5cm_2 V V V X X X X X X
3 bluecr6cm_2 V V V X X X X X X
4 greencr4cm_2 V X X X X X X X X
5 greencr5cm_2 V X X X X X X X X
6 greencr6cm_2 X X X X X X X X X
7 redcr4cm_2 V V V V V V V X X
8 redcr5cm_2 V V V V V V V X X
9 redcr6cm_2 V V V V V V V X X
10 Blue_El_a6b3_2 V V V X X X X X X
11 Blue_El_a9b3_2 V V V X X X X X X
12 Blue_El_a12b3_2 V V V X X X X X X
13 Green_El_a6b3_2 V X X X X X X X X
14 Green_El_a9b3_2 V X X X X X X X X
15 Green_El_a12b3_2 V X X X X X X X X
16 Red_El_a6b3_2 V V V V X X X X X
17 Red_El_a9b3_2 V V V V X X X X X
18 Red_El_a12b3_2 V V V V X X X X X
No Nama (*.bmp)Mean
C-9
C.16 Deteksi Jenis Elips dan Lingkaran pada Citra Komputer dengan Derau
Gaussian (variance=0,01)
C.17 Rekonstruksi Elips dan Lingkaran pada Citra Komputer dengan Derau
Gaussian (variance=0,01)
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V V V V V V
2 bluecr90px_2 V V V V V V V V V
3 bluecr120px_2 V V V V V V V V V
4 greencr60px_2 V V V V V V V X X
5 greencr90px_2 V V V V V V V X X
6 greencr120px_2 V V V V V V V X X
7 redcr60px_2 V V V V V V V V V
8 redcr90px_2 V V V V V V V V V
9 redcr120px_2 V V V V V V V X X
10 Blue_El_a120b60_2 V V V V V V V V V
11 Blue_El_a180b60_2 V V V V V V V V V
12 Blue_El_a240b60_2 V V V V V V V V V
13 Green_El_a120b60_2 V V V V V V V X X
14 Green_El_a180b60_2 V V V V V V V X X
15 Green_El_a240b60_2 V V V V V V V X X
16 Red_El_a120b60_2 V V V V V V V V V
17 Red_El_a180b60_2 V V V V V V V V V
18 Red_El_a240b60_2 V V V V V V V V V
No Nama (*.bmp)Mean
0 0,05 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 bluecr60px_2 V V V V V V V V V
2 bluecr90px_2 V V V V V V V V V
3 bluecr120px_2 V V V V V V V V V
4 greencr60px_2 V V V V V V V X X
5 greencr90px_2 V V V V V V V X X
6 greencr120px_2 V V V V V V V X X
7 redcr60px_2 V V V V V V V V V
8 redcr90px_2 V V V V V V V V V
9 redcr120px_2 V V V V V V V V V
10 Blue_El_a120b60_2 V V V V V V V V V
11 Blue_El_a180b60_2 V V V V V V V V V
12 Blue_El_a240b60_2 V V V V V V V V V
13 Green_El_a120b60_2 V V V V V V V X X
14 Green_El_a180b60_2 V V V V V V V X X
15 Green_El_a240b60_2 V V V V V V V X X
16 Red_El_a120b60_2 V V V V V V V V V
17 Red_El_a180b60_2 V V V V V V V V V
18 Red_El_a240b60_2 V V V V V V V V V
MeanNo Nama
D-1
LAMPIRAN D
Data Uji dengan Citra Objek Sebenarnya
D.1 Data Citra Masukan Sistem Objek Lingkaran Ukuran Kecil
cr_bluepin_1
cr_bluepin_2
cr_bluepin_3
cr_bluepin_4
cr_brownpin_1
cr_brownpin_2
cr_brownpin_3
cr_brownpin_4
cr_coin_1
cr_coin_2
cr_coin_3
cr_coin_4
cr_greencap_1
cr_greencap_2
cr_greencap_3
cr_greencap_4
cr_vicks_1
cr_vicks_2
cr_vicks_3
cr_vicks_4
D.2 Data Citra Masukan Sistem Objek Lingkaran Ukuran Sedang
cr_donut_1
cr_donut_2
cr_donut_3
cr_donut_4
cr_lulur_1
cr_lulur_2
cr_lulur_3
cr_lulur_4
cr_orangecap_
1
cr_orangecap_
2
D-2
cr_orangecap_
3
cr_orangecap_
4
cr_pinkcap_1
cr_pinkcap_2
cr_pinkcap_3
cr_pinkcap_4
cr_salicyl_1
cr_salicyl_2
cr_salicyl_3
cr_salicyl_4
D.3 Data Citra Masukan Sistem Objek Lingkaran Ukuran Besar
cr_basketball_1
cr_basketball_2
cr_basketball_3
cr_basketball_4
cr_basketball_1
cr_basketball_2
cr_basketball_3
cr_basketball_4
cr_redcap_1
cr_redcap_2
cr_redcap_3
cr_redcap_4
cr_redplate_1
cr_redplate_2
cr_redplate_3
cr_redplate_4
cr_tennisball_1
cr_tennisball_2
cr_tennisball_3
cr_tennisball_4
D-3
D.4 Data Citra Masukan Sistem Objek Elips Ukuran Kecil
el_bluecap_1
el_bluecap_2
el_bluecap_3
el_bluecap_4
el_egg_1
el_egg_2
el_egg_3
el_egg_4
el_goldcap_1
el_goldcap_2
el_goldcap_3
el_goldcap_4
el_redcap_1
el_redcap_2
el_redcap_3
el_redcap_4
el_yellowcap_1
el_yellowcap_2
el_yellowcap_3
el_yellowcap_4
D.5 Data Citra Masukan Sistem Objek Elips Ukuran Sedang
el_goldplate_1
el_goldplate_2
el_goldplate_3
el_goldplate_4
el_nutella_1
el_nutella_2
el_nutella_3
el_nutella_4
el_pinkbox_1
el_pinkbox_2
el_pinkbox_3
el_pinkbox_4
el_purplecap_1
el_purplecap_2
el_purplecap_3
D-4
el_purplecap_4
el_soap_1
el_soap_2
el_soap_3
el_soap_4
D.6 Data Citra Masukan Sistem Objek Elips Ukuran Besar
el_blueplate_1 el_blueplate_2
el_blueplate_3
el_blueplate_4
el_bluewhiteplate_1
el_bluewhiteplate_2 el_bluewhiteplate_3
el_bluewhiteplate_4
el_greenplate_1
el_greenplate_2
el_greenplate_3 el_greenplate_4
el_greenwhiteplate_1
el_greenwhiteplate_2
el_greenwhiteplate_3
el_greenwhiteplate_4 el_redplate_1
el_redplate_2
el_redplate_3
el_redplate_4
D-5
D.7 Hasil Uji Citra Objek Lingkaran Ukuran Kecil
D.8 Hasil Uji Citra Objek Lingkaran Ukuran Sedang
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 cr_bluepin_1 0,38584 24 Circle v 2,68033
2 cr_bluepin_2 0,59252 26 Circle v 2,79514
3 cr_bluepin_3 0,78739 29 Circle v 2,83141
4 cr_bluepin_4 0,46677 23 Circle v 2,37074
5 cr_brownpin_1 0 0 x x 0
6 cr_brownpin_2 0 0 x x 0
7 cr_brownpin_3 0 0 x x 0
8 cr_brownpin_4 0 0 x x 0
9 cr_coin_1 0,62477 26 Circle v 2,14622
10 cr_coin_2 0,63745 24 Circle v 2,36387
11 cr_coin_3 0,53767 25 Circle v 2,18702
12 cr_coin_4 0,53204 21 Circle v 2,08806
13 cr_greencap_1 0,53264 26 Circle v 2,16001
14 cr_greencap_2 0 0 x x 0
15 cr_greencap_3 0,51297 24 Circle v 2,78683
16 cr_greencap_4 0,50649 20 Circle v 3,02484
17 cr_vicks_1 0,43853 24 Circle v 2,86039
18 cr_vicks_2 0,47122 20 Circle v 2,49111
19 cr_vicks_3 0,50615 20 Circle v 2,99253
20 cr_vicks_4 0,40235 27 Circle v 2,57625
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 cr_donut_1 0,6456 27 Circle v 4,89683
2 cr_donut_2 0.69998 29 Circle v 5,176
3 cr_donut_3 0.4023 28 Circle v 4,91043
4 cr_donut_4 0.668393 42 Circle v 5,19941
5 cr_lulur_1 0,51559 29 Circle v 4,58726
6 cr_lulur_2 0,62354 32 Circle v 4,32597
7 cr_lulur_3 0,57055 27 Circle v 4,69655
8 cr_lulur_4 0,46074 34 Circle v 5,10017
9 cr_orangecap_1 1,02993 33 Ellipse v 0,437202
10 cr_orangecap_2 0,87597 29 Ellipse v 0,87597
11 cr_orangecap_3 0,54535 36 Circle v 5,04414
12 cr_orangecap_4 0,47479 39 Circle v 4,88425
13 cr_pinkcap_1 0,28838 28 Circle v 6,04999
14 cr_pinkcap_2 0,47752 29 Circle v 5,49258
15 cr_pinkcap_3 0.367025 31 Circle v 6,15191
16 cr_pinkcap_4 0,50073 41 Circle v 5,70872
17 cr_salicyl_1 0 0 x x 0
18 cr_salicyl_2 0,50813 27 Circle v 3,56898
19 cr_salicyl_3 0 0 x x 0
20 cr_salicyl_4 0,50145 26 Circle v 3,12121
D-6
D.9 Hasil Uji Citra Objek Lingkaran Ukuran Besar
D.10 Hasil Uji Citra Objek Elips Ukuran Kecil
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 cr_basketball_1 40,6166 30 Ellipse x 0,0308646
2 cr_basketball_2 28,8164 56 Ellipse v 3,56781
3 cr_basketball_3 18,7549 130 Ellipse v 3,70182
4 cr_basketball_4 20,5186 107 Ellipse v 2,98386
5 cr_greenplate_1 0,58837 36 Circle v 7,42387
6 cr_greenplate_2 0,45015 41 Circle v 7,74267
7 cr_greenplate_3 0,56238 42 Circle v 7,31336
8 cr_greenplate_4 0,5009 38 Circle v 7,33041
9 cr_redcap_1 0,50102 38 Circle v 7,48442
10 cr_redcap_2 0,49932 49 Circle v 6,8647
11 cr_redcap_3 0.478323 40 Circle v 6,89277
12 cr_redcap_4 0,38468 37 Circle v 7,30774
13 cr_redplate_1 0,47609 43 Circle v 8,7268
14 cr_redplate_2 0,79244 54 Circle v 8,47362
15 cr_redplate_3 1,08917 65 Ellipse v 1,16178
16 cr_redplate_4 0,42874 53 Circle v 8,4133
17 cr_tennisball_1 0.786958 46 Circle v 6,90397
18 cr_tennisball_2 2,44221 38 Ellipse v 0.919254
19 cr_tennisball_3 1,27627 36 Ellipse v 1,07663
20 cr_tennisball_4 1,60113 55 Ellipse v 0,926271
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 el_bluecap_1 4,56615 47 Ellipse v 0,179971
2 el_bluecap_2 4,72559 37 Ellipse v 0,180576
3 el_bluecap_3 4,57215 35 Ellipse v 0,107433
4 el_bluecap_4 4,26626 45 Ellipse v 0,175804
5 el_egg_1 1,63477 27 Ellipse v 0,10941
6 el_egg_2 1,61852 24 Ellipse v 0,111021
7 el_egg_3 2,68646 32 Ellipse v 0,144543
8 el_egg_4 1,82537 30 Ellipse v 0,127078
9 el_goldcap_1 18,3735 49 Ellipse v 0,592912
10 el_goldcap_2 18,5508 38 Ellipse v 0,513417
11 el_goldcap_3 18,5508 38 Ellipse v 0,503089
12 el_goldcap_4 3,86451 33 Ellipse v 0,206813
13 el_redcap_1 19,049 31 Ellipse v 0,328807
14 el_redcap_2 2,13542 33 Ellipse v 0,112804
15 el_redcap_3 13,5445 27 Ellipse v 0,373588
16 el_redcap_4 13,9743 30 Ellipse v 0,446808
17 el_yellowcap_1 5,86385 47 Ellipse v 0,273219
18 el_yellowcap_2 5,75002 48 Ellipse v 0,254625
19 el_yellowcap_3 6,7749 44 Ellipse v 0,307415
20 el_yellowcap_4 6,2775 47 Ellipse v 0,292184
D-7
D.11 Hasil Uji Citra Objek Elips Ukuran Sedang
D.12 Hasil Uji Citra Objek Elips Ukuran Besar
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 el_goldplate_1 4,16827 36 Ellipse v 0,500088
2 el_goldplate_2 0 0 x x 0
3 el_goldplate_3 0 0 x x 0
4 el_goldplate_4 4,5652 39 Ellipse v 0,679148
5 el_nutella_1 4,25925 40 Ellipse v 0,168658
6 el_nutella_2 2,6682 33 Ellipse v 0,117768
7 el_nutella_3 30,4445 40 Ellipse v 0,165879
8 el_nutella_4 2,80139 33 Ellipse v 0,196283
9 el_pinkbox_1 4,05023 30 Ellipse v 0,258147
10 el_pinkbox_2 3,89236 32 Ellipse v 0,256055
11 el_pinkbox_3 2,85527 42 Ellipse x 0,225348
12 el_pinkbox_4 5,11164 32 Ellipse v 0,308979
13 el_purplecap_1 3,48443 36 Ellipse v 0,187471
14 el_purplecap_2 3,54556 45 Ellipse v 0,198201
15 el_purplecap_3 3,87414 38 Ellipse v 0,205194
16 el_purplecap_4 3,89288 35 Ellipse v 0,18917
17 el_soap_1 4,14709 33 Ellipse v 0,201497
18 el_soap_2 5,42261 38 Ellipse x 0,152929
19 el_soap_3 4,22902 50 Ellipse v 0,259201
20 el_soap_4 0 0 x x 0
No Nama (*.bmp) STDEV Maxima Detect Fitting Waktu (s)
1 el_blueplate_1 7,20438 51 Ellipse v 0,730078
2 el_blueplate_2 7,05557 57 Ellipse v 0,780971
3 el_blueplate_3 5,93792 48 Ellipse v 0,923998
4 el_blueplate_4 6,88497 49 Ellipse v 0,827403
5 el_bluewhiteplate_1 0 0 x x 0
6 el_bluewhiteplate_2 0 0 x x 0
7 el_bluewhiteplate_3 0 0 x x 0
8 el_bluewhiteplate_4 0 0 x x 0
9 el_greenplate_1 7,22172 44 Ellipse v 0,654209
10 el_greenplate_2 6,85235 42 Ellipse v 0,643089
11 el_greenplate_3 6,9155 47 Ellipse v 0,636294
12 el_greenplate_4 7,03326 52 Ellipse v 0,636344
13 el_greenwhiteplate_1 9,71953 58 Ellipse v 0,937642
14 el_greenwhiteplate_2 8,42511 67 Ellipse v 0,997311
15 el_greenwhiteplate_3 8,42118 65 Ellipse v 0,993651
16 el_greenwhiteplate_4 8,38764 64 Ellipse v 0,982314
17 el_redplate_1 7,17229 61 Ellipse v 0,722236
18 el_redplate_2 7,0748 45 Ellipse v 0,694373
19 el_redplate_3 7,19415 66 Ellipse v 0,704295
20 el_redplate_4 7,38901 43 Ellipse v 0,71783
E-1
LAMPIRAN E
E.1 Perbandingan Deteksi Kurva dengan Poligon
F-1
LAMPIRAN F
F.1 Tampilan Program Utama
Keterangan :
1. Step 1 : panel pemilihan akuisisi citra sebagai masukan sistem
2. Step 2 : panel untuk tahap preprocessing
3. Step 3 : panel pendeteksian jenis bangun
4. Step 4 : panel untuk merekonstruksi bangun hasil pendeteksian
F-2
F.2 Listing Program
%%Initiation (Activate Webcam)%% global movie; axes(handles.axes3); movie=videoinput('winvideo',1,'YUY2_640x480');%imaqhwinfo set(movie,'ReturnedColorSpace','rgb'); set(movie,'LoggingMode','memory'); set(movie,'TriggerRepeat',Inf); set(movie,'FramesPerTrigger',1); triggerconfig(movie, 'manual'); z=image(zeros(480,640,3)); preview(movie,z);
%% Load Image %% [f,p]=uigetfile('*.bmp', 'Choose Your Saved Image', 'D:\#TUGAS AKHIR\TA Andri Pranata Kusuma\Bismillahirrahmaanirrahim TA\Citra'); if (ischar(f) & ischar (p))==1 im_input=imread([p,f]); im_noise=im_input; axes(handles.axes3); set(handles.edit1,'string',f); imshow(im_input); save input.mat im_input im_noise end
%%Capture from Webcam %% global movie; vid = movie; start(vid); pause(1); trigger(vid); stoppreview(vid); im_input = getdata(vid); imwrite(im_input, 'captured.bmp'); save input.mat im_input stop(vid); axes(handles.axes3); set(handles.edit1,'string','captured.bmp'); imshow(im_input);
%%Select Noise%% load input.mat im_input valpop=get(handles.popupmenu1,'value');
switch valpop case 1 im_noise = im_input; set(handles.slider2,'visible','off'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise case 2 im_noise = imnoise(im_input,'poisson'); set(handles.slider2,'visible','off'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise case 3 im_noise = imnoise(im_input,'salt & pepper',get(handles.slider2,'value')); set(handles.slider2,'visible','on'); set(handles.text38,'string','noise density :'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise case 4 im_noise = imnoise(im_input,'speckle',get(handles.slider2,'value')); set(handles.slider2,'visible','on'); set(handles.text38,'string','variance :'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise case 5 im_noise = imnoise(im_input,'gaussian',0,get(handles.slider2,'value')); set(handles.slider2,'visible','on');
F-3
set(handles.text38,'string','variance :'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise case 6 im_noise = imnoise(im_input,'gaussian',get(handles.slider2,'value'),0.01); set(handles.slider2,'visible','on'); set(handles.text38,'string','mean :'); axes(handles.axes3); imshow(im_noise); save input.mat im_input im_noise end
%%PREPROCESSING %% load input.mat im_noise y0=im_noise set(handles.figure1,'currentaxes',handles.axes4); imshow(y0); pause(0.1); set(handles.edit2, 'String', 'Image Input' ); %% GRAYSCALE and BW %% pause(1); yhsv = rgb2hsv(y0); imshow(yhsv); pause(0.1); set(handles.edit2, 'String', 'HSV Color Space...'); pause(1); level=graythresh(yhsv); ybw=im2bw(yhsv, level); imshow(ybw); pause(0.1); set(handles.edit2, 'String', 'Thresholding...' ); %% FILLING %% pause(1); y1=imfill(ybw,'holes'); pause(0.1); imshow(y1); pause(0.1); set(handles.edit2, 'String', 'Filling...' ); %% ERODE %% pause(1); se=strel('disk',10); y2=imerode(y1,se);
imshow(y2); pause(0.1); set(handles.edit2, 'String', 'Erode...'); %% OPENING %% pause(1); citra_open=bwareaopen(y2,1000); imshow(citra_open); pause(0.1); set(handles.edit2, 'String', 'Opening...'); %% DILATION %% pause(1); se=strel('disk',10); y3=imdilate(citra_open,se); imshow(y3); pause(0.1); set(handles.edit2, 'String', 'Dilation...'); %% EDGE DETECTION %% pause(1); y4=edge(y3,'canny'); imshow(y4); pause(0.1); set(handles.edit2, 'String', 'Edge Detection...' ); %% THINNING %% pause(1); y5=bwmorph(y4,'thin',Inf); imshow(y5); pause(0.1); set(handles.edit2, 'String', 'Edge Thinning...'); figure;imshow(y5); save tepi.mat y5 im_noise
%% STANDARD HOUGH TRANSFORM
ALGORITHM %% % UNTUK MENGKLASIFIKASIKAN OBJEK LINGKARAN DAN ELIPS load tepi.mat y5 im_noise global X [H,theta,rho] = hough(y5); axes(handles.axes5); X=imadjust(mat2gray(H)),[],'XData',theta,'YData',rho,... 'InitialMagnification','fit'; imshow(X); xlabel('\theta (degrees)'), ylabel('\rho'); axis on, axis normal, hold on; colormap(hot) maxima=max(max(H)); set(handles.editmaxima,'string',maxima);
F-4
%% PENGKLASIFIKASIAN HASIL DETEKSI SHT %% capt = getframe(handles.axes5); citra_capture = capt.cdata; % Pre-processing untuk mendapatkan standar deviasi citra_capture = rgb2gray(citra_capture); level=0.2; citra_capture_bw = im2bw(citra_capture,level); [jml_bar jml_kol] = size(citra_capture_bw); lebar = []; for i = 1:jml_kol atas = find(citra_capture_bw(:,i) > 0, 1, 'first'); bawah = find(citra_capture_bw(:,i) > 0, 1, 'last'); if (~isempty(atas) && ~isempty(bawah)) lebar(i) = bawah - atas; end end nonzero=find(lebar); lebarnonzero=lebar(nonzero); lebar_rata = mean(lebarnonzero) lebar_std = std(lebarnonzero) set(handles.editstdev,'string',lebar_std); if lebar_std<=0.8 set(handles.editdeteksi,'string','Circle'); else set(handles.editdeteksi,'string','Ellipse'); end save hasil_hough.mat H y5 im_noise lebar_std %% Fitting (Rekonstruksi)
Lingkaran dan Elips %% load hasil_hough.mat y5 H im_noise lebar_std if lebar_std<=0.8 %%UNKNOWN RADIUS CHT %% tic deret_R = 40:5:170;
deret_maxval = []; % Cari R yang memiliki penumpukan nilai a dan b yang maksimum for j = deret_R [y,x]=find(y5); [sy,sx]=size(y5); % variabel totalpix untuk mengetahui jumlah "1" dalam citra totalpix = length(x); % Alokasi Memori untuk Hough matrix. dan atur nilai R HM = zeros(sy*sx,1); R = j; R2 = R.^2; % Circular Hough Transform. % Persiapkan matrix untuk penghitungan b = 1:sy; a = zeros(sy,totalpix); y = repmat(y',[sy,1]); x = repmat(x',[sy,1]); b1 = repmat(b',[1,totalpix]); b2 = b1; % PERSAMAAN LINGKARAN r^2 = (x-a)^2+(y-b)^2 dg a,b adalah titik pusat % mengahasilkan 2 kemungkinan nilai "a" a1 = (round(x - sqrt(R2 - (y - b1).^2))); a2 = (round(x + sqrt(R2 - (y - b2).^2))); % Menghapus semua nilai yang tidak valid pada matrix a dan b b1 = b1(imag(a1)==0 & a1>0 & a1<sx); a1 = a1(imag(a1)==0 & a1>0 & a1<sx); b2 = b2(imag(a2)==0 & a2>0 & a2<sx); a2 = a2(imag(a2)==0 & a2>0 & a2<sx); ind1 = sub2ind([sy,sx],b1,a1); ind2 = sub2ind([sy,sx],b2,a2); ind = [ind1; ind2]; % Rekonstruksi Hough matrix val = ones(length(ind),1); data=accumarray(ind,val); HM(1:length(data)) = data; HM2 = reshape(HM,[sy,sx]); HM2_bw = (HM2>(2/5*R)); [HM2_label jml_lingkaran] = bwlabel(HM2_bw); maxval = []; for i = 1:jml_lingkaran pusat_bw = (HM2_label == i);
F-5
pusat_lingkar = pusat_bw .* HM2; % MENEMUKAN LINGKARAN DG RADIUS R maxval(i) maxind] = max(max(pusat_lingkar)); [B,A] = find(pusat_lingkar==maxval(i)); end deret_maxval = [deret_maxval max(maxval)]; end [best_maxval best_idx] = max(deret_maxval); [y,x]=find(y5); [sy,sx]=size(y5); % variabel totalpix untuk mengetahui jumlah "1" dalam citra totalpix = length(x); % alokasi awal untuk hough matrix, R terbaik didapat dari pencarian R lewat % tahap diatas HM = zeros(sy*sx,1); R = deret_R(best_idx); R2 = R^2; %% Hough Transform % a. menyiapkan matrix perhitungan b = 1:sy; a = zeros(sy,totalpix); y = repmat(y',[sy,1]); x = repmat(x',[sy,1]); b1 = repmat(b',[1 totalpix]); b2 = b1; % persamaan lingkaran untuk mencari nilai a a1 = (round(x - sqrt(R2 - (y - b1).^2))); a2 = (round(x + sqrt(R2 - (y - b2).^2))); % menghilangkan nilai yang tidak valid pada matrix a dan b b1 = b1(imag(a1)==0 & a1>0 & a1<sx); a1 = a1(imag(a1)==0 & a1>0 & a1<sx); b2 = b2(imag(a2)==0 & a2>0 & a2<sx); a2 = a2(imag(a2)==0 & a2>0 & a2<sx);
ind1 = sub2ind([sy,sx],b1,a1); ind2 = sub2ind([sy,sx],b2,a2); ind = [ind1; ind2]; % Rekonstruksi matriks hough val = ones(length(ind),1); data=accumarray(ind,val); HM(1:length(data)) = data; HM2 = reshape(HM,[sy,sx]); waktu=toc % menemukan lokasi lingkaran dengan radius R [maxval, maxind] = max(max(HM2)); [B,A] = find(HM2==maxval); axes(handles.axes6); imshow(im_noise); hold on; plot(mean(A),mean(B),'xr') t = 0:pi/20:2*pi; mA=mean(A); mB=mean(B); xdata = (mA+R.*cos(t))'; ydata = (mB+R.*sin(t))'; plot(xdata,ydata,'color','green'); set(handles.edit6,'string',waktu); set(handles.edit10,'string',R); set(handles.edit22,'string',mA); set(handles.edit23,'string',mB); else %% Elliptical Hough Transform %% tic minMajorAxis = 10 maxMajorAxis = 1000; maxRotation = pi randomize = true uniformWeights = true eps = 0.0001; bestMatch = 0; [Y,X]=find(y5); N = length(Y); dX = repmat(X,[1 N])-repmat(X',[N 1]); dY = repmat(Y,[1 N])-repmat(Y',[N 1]); dists = sqrt( dX.^2 + dY.^2 ); distsU = triu(dists);
F-6
alphas = atan( dY./dX ); %dapatkan semua pasangan yang cocok [I,J] = find(distsU>=minMajorAxis & distsU<=maxMajorAxis & abs(alphas)<=maxRotation); npairs = length(I); if randomize perm = randperm(npairs); pairSubset = perm(1:min(npairs,N*2)); else pairSubset = 1:npairs; end for p=pairSubset x1=X(I(p)); y1=Y(I(p)); x2=X(J(p)); y2=Y(J(p)); %center & major ax x0=(x1+x2)/2; y0=(y1+y2)/2; a = dists(I(p),J(p))/2; thirdPtDistsSq = sum( ([X Y] - repmat([x0 y0],[N 1])).^2, 2); K = find(thirdPtDistsSq <= a^2); %minor ax untuk semua titik yg didapat fSq = (X(K)-x2).^2 + (Y(K)-y2).^2; cosTau = (a^2 + thirdPtDistsSq(K) - fSq) ./ (2*a*sqrt(thirdPtDistsSq(K))); cosTau = min(1,max(-1,cosTau)); sinTauSq = 1 - cosTau.^2; b = sqrt( (a^2 * thirdPtDistsSq(K) .* sinTauSq) ./ (a^2 - thirdPtDistsSq(K) .* cosTau.^2 + eps) ); %proper bins for b idxs = ceil(b+eps); if uniformWeights weights = 1; else weights = img(sub2ind(size(img),Y(K),X(K))); end accumulator = accumarray(idxs, weights, [maxMajorAxis 1]);
accumulator = conv(accumulator,[1 1 1]/3,'same'); [score, idx] = max(accumulator); if (bestMatch(end) < score) bestMatch = [x0 y0 a idx alphas(I(p),J(p)) score]; end end waktu=toc %% Bentuk elips dari parameter yang ditemukan %% axes(handles.axes6); imshow(im_noise); hold on; h=ellipse(bestMatch(3),bestMatch(4),bestMatch(5),bestMatch(1),bestMatch(2),'r'); plot(h); plot(bestMatch(1),bestMatch(2),'xr'); set(handles.edit6,'string',waktu); set(handles.edit14,'string',bestMatch(1)); set(handles.edit15,'string',bestMatch(2)); set(handles.edit16,'string',bestMatch(3)); set(handles.edit17,'string',bestMatch(4)); set(handles.edit18,'string',bestMatch(5)); end %fungsi untuk merekonstruksi elips function h=ellipse(ra,rb,ang,x0,y0,C,Nb) if nargin<1, ra=[]; end; if nargin<2, rb=[]; end; if nargin<3,
F-7
ang=[]; end; %if nargin==1, % error('Not enough arguments'); %end; if nargin<5, x0=[]; y0=[]; end; if nargin<6, C=[]; end if nargin<7, Nb=[]; end % set up the default values if isempty(ra),ra=1;end; if isempty(rb),rb=1;end; if isempty(ang),ang=0;end; if isempty(x0),x0=0;end; if isempty(y0),y0=0;end; if isempty(Nb),Nb=300;end; if isempty(C),C=get(gca,'colororder');end; % work on the variable sizes x0=x0(:); y0=y0(:); ra=ra(:); rb=rb(:); ang=ang(:); Nb=Nb(:); if isstr(C),C=C(:);end; if length(ra)~=length(rb), error('length(ra)~=length(rb)'); end; if length(x0)~=length(y0), error('length(x0)~=length(y0)'); end; % how many inscribed elllipses are plotted if length(ra)~=length(x0) maxk=length(ra)*length(x0); else
maxk=length(ra); end; % drawing loop for k=1:maxk if length(x0)==1 xpos=x0; ypos=y0; radm=ra(k); radn=rb(k); if length(ang)==1 an=ang; else an=ang(k); end; elseif length(ra)==1 xpos=x0(k); ypos=y0(k); radm=ra; radn=rb; an=ang; elseif length(x0)==length(ra) xpos=x0(k); ypos=y0(k); radm=ra(k); radn=rb(k); an=ang(k) else rada=ra(fix((k-1)/size(x0,1))+1); radb=rb(fix((k-1)/size(x0,1))+1); an=ang(fix((k-1)/size(x0,1))+1); xpos=x0(rem(k-1,size(x0,1))+1); ypos=y0(rem(k-1,size(y0,1))+1); end; co=cos(an); si=sin(an); the=linspace(0,2*pi,Nb(rem(k-1,size(Nb,1))+1,:)+1); h(k)=line(radm*cos(the)*co-si*radn*sin(the)+xpos,radm*cos(the)*si+co*radn*sin(the)+ypos); set(h(k),'color',C(rem(k-1,size(C,1))+1,:)); end;
%% ======= RESET ALL ========= %%
F-8
set(findobj('Tag','edit1'),'String',''); set(findobj('Tag','edit2'),'String',''); set(findobj('Tag','editstdev'),'String',''); set(findobj('Tag','editdeteksi'),'String',''); set(findobj('Tag','edit6'),'String',''); set(findobj('Tag','edit10'),'String',''); set(findobj('Tag','edit14'),'String',''); set(findobj('Tag','edit15'),'String',''); set(findobj('Tag','edit16'),'String',''); set(findobj('Tag','edit17'),'String',''); set(findobj('Tag','edit18'),'String',''); set(findobj('Tag','edit22'),'String',''); set(findobj('Tag','edit23'),'String',''); hold off; axes(handles.axes3);cla reset; set (handles.axes3,'Xtick',[],'Ytick',[]) axes(handles.axes4);cla reset; set (handles.axes4,'Xtick',[],'Ytick',[]) axes(handles.axes5);cla reset; set (handles.axes5,'Xtick',[],'Ytick',[]) axes(handles.axes6);cla reset; set (handles.axes6,'Xtick',[],'Ytick',[])