Kontur dan Representasinya

dokumen-dokumen yang mirip
Implementasi Metode Hough Transform Pada Citra Skeletonisasi Dengan Menggunakan MATLAB 7.6. Intan Nur Lestari

Citra Biner. Bab Pendahuluan

Matematika EBTANAS Tahun 1991

Soal-Soal dan Pembahasan Matematika IPA SNMPTN 2012 Tanggal Ujian: 13 Juni 2012

BAB III OUTPUT PRIMITIF

Pembahasan Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN) Bidang Matematika. Kode Paket 634. Oleh : Fendi Alfi Fauzi 1. x 0 x 2.

MA1201 MATEMATIKA 2A Hendra Gunawan

IMPLEMENTASI BOUNDARY BASED SEGMENTATION UNTUK MENGEKSTRASI KONTUR SAPI MADURA

BAB 2 LANDASAN TEORI

Operasi-operasi Dasar Pengolahan Citra Dijital

Soal-Soal dan Pembahasan SNMPTN Matematika IPA Tahun Pelajaran 2010/2011 Tanggal Ujian: 01 Juni 2011

Operasi-operasi Dasar Pengolahan Citra Digital

A. Aras Komputasi. 1. Aras Titik. 1. Aras Titik. 1. Aras Titik. 1. Aras Titik 3/18/2017

Pembahasan Matematika IPA SNMPTN 2012 Kode 483

2.1 Soal Matematika Dasar UM UGM c. 1 d d. 3a + b. e. 3a + b. e. b + a b a

Hendra Gunawan. 5 Maret 2014

SATUAN ACARA PERKULIAHAN ( SAP )

K13 Revisi Antiremed Kelas 11 Matematika

BAB III METODE YANG DIUSULKAN

Pengertian. Transformasi geometric transformation. koordinat dari objek Transformasi dasar: Translasi Rotasi Penskalaan

BAB II LANDASAN TEORI

Pembentukan Citra. Bab Model Citra

TACI IMPLEME HOUGH METHOD TRASFORM ON IMAGE USING SKELETOIZATION MATLAB 7.6

Soal-Soal dan Pembahasan SNMPTN Matematika IPA Tahun Pelajaran 2010/2011

BAB 2 LANDASAN TEORI

Pembahasan Matematika IPA SNMPTN 2012 Kode 132

Wardaya College. Tes Simulasi Ujian Nasional SMA Berbasis Komputer. Mata Pelajaran Matematika Tahun Ajaran 2017/2018

1. Akar-akar persamaan 2x² + px - q² = 0 adalah p dan q, p - q = 6. Nilai pq =... A. 6 B. -2 C. -4 Kunci : E Penyelesaian : D. -6 E.

ISTIYANTO.COM. memenuhi persamaan itu adalah B. 4 4 C. 4 1 PERBANDINGAN KISI-KISI UN 2009 DAN 2010 SMA IPA

Pembahasan Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN)

SOAL&PEMBAHASAN MATEMATIKATKDSAINTEK SBMPTN. yos3prens.wordpres.com

Soal UN 2009 Materi KISI UN 2010 Prediksi UN 2010

TINJAUAN PUSTAKA ,...(1)

Matematika Ujian Akhir Nasional Tahun 2004

SOAL DAN PEMBAHASAN UJIAN NASIONAL SMA/MA IPA TAHUN PELAJARAN 2008/2009

APLIKASI TRANSFORMASI HOUGH UNTUK DETEKSI GARIS LURUS Halimatus Sa diyah*, R.Rizal Isnanto**, Achmad Hidayatno**

TRY OUT MATEMATIKA PAKET 2A TAHUN 2010

Transformasi Geometri Sederhana

BAB II LANDASAN TEORI. berawal dari suatu ide untuk menyimpan segitiga Sierpinski menggunakan

PENGOLAHAN CITRA DIGITAL

III HASIL DAN PEMBAHASAN

Pembahasan Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN)

MKB3383 TEKNIK PENGOLAHAN CITRA Pemrosesan Citra Biner

ANALISIS SISTEM PENDETEKSI POSISI PLAT KENDARAAN DARI CITRA KENDARAAN

MATEMATIKA. Sesi TRANSFORMASI 2 CONTOH SOAL A. ROTASI

D. (1 + 2 ) 27 E. (1 + 2 ) 27

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat.

Soal-Soal dan Pembahasan Matematika IPA SNMPTN 2012 Tanggal Ujian: 13 Juni 2012

BAB II LANDASAN TEORI

MATEMATIKA DASAR TAHUN 1987

Identifikasi Jenis Bangun Datar dengan Algoritma Line Hough Transform dan Circular Hough Transform

Pembahasan SNMPTN 2011 Matematika IPA Kode 576

BAB 2 LANDASAN TEORI

Operasi-Operasi Dasar pada Pengolahan Citra. Bertalya Universitas Gunadarma

King s Learning Be Smart Without Limits

SOAL-SOAL dan PEMBAHASAN UN MATEMATIKA SMA/MA IPA TAHUN PELAJARAN 2011/2012

disesuaikan dengan soal yaitu 2 atau 3 )

Pembahasan Simak UI Matematika Dasar 2012

MA1201 MATEMATIKA 2A Hendra Gunawan

TRY OUT MATEMATIKA PAKET 3B TAHUN 2010

7. Himpunan penyelesaian. 8. Jika log 2 = 0,301 dan log 3 = 10. Himpunan penyelesaian

10/10/2017. Teknologi Display SISTEM KOORDINAT DAN BENTUK DASAR GEOMETRI (OUTPUT PRIMITIF) CRT CRT. Raster Scan Display

Soal dan Pembahasan UN Matematika SMA IPA Tahun 2013

GEOMETRI ANALITIK PERTEMUAN2: GARIS LURUS PADA BIDANG KOORDINAT. sofyan mahfudy-iain Mataram 1

1. Agar F(x) = (p - 2) x² - 2 (2p - 3) x + 5p - 6 bernilai positif untuk semua x, maka batas-batas nilai p adalah... A. p > l B. 2 < p < 3 C.

Matematika EBTANAS Tahun 1999

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

BAB 3 METODOLOGI PENELITIAN. a. Spesifikasi komputer yang digunakan dalam penelitian ini adalah

3. Jika y1 = y2 (garis horisontal), maka (a) x = x + 1 dan y tetap (b) gambar titik (x,y) di layar (c) Selesai

Geometri pada Bidang, Vektor

D. 90 meter E. 95 meter

f(-1) = = -7 f (4) = = 3 Dari ketiga fungsi yang didapat ternyata yang terkecil -7 dan terbesar 11. Rf = {y -7 y 11, y R}

Pembahasan Soal SIMAK UI 2012 SELEKSI MASUK UNIVERSITAS INDONESIA. Disertai TRIK SUPERKILAT dan LOGIKA PRAKTIS. Matematika Dasar

2009 ACADEMY QU IDMATHCIREBON

SOAL DAN PEMBAHASAN UN MATEMATIKA SMK TEKNOLOGI, KESEHATAN DAN PERTANIAN TAHUN 2013 (Paket 13)

BAB III METODE PENELITIAN. tracking obyek. Pada penelitian tugas akhir ini, terdapat obyek berupa bola. Gambar 3.1. Blok Diagram Penelitian

Soal-Soal dan Pembahasan Ujian Nasional Matematika Tahun Pelajaran 2010/2011 Program Studi IPA

SOAL DAN PEMBAHASAN UJIAN NASIONAL SMA/MA IPA TAHUN PELAJARAN 2007/2008

Kurikulum 2013 Antiremed Kelas 11 Matematika

APLIKASI DETEKSI MIKROKALSIFIKASI DAN KLASIFIKASI CITRA MAMMOGRAM BERBASIS TEKSTUR SEBAGAI PENDUKUNG DIAGNOSIS KANKER PAYUDARA

SOAL DAN PEMBAHASAN UJIAN NASIONAL SMA/MA IPA TAHUN PELAJARAN 2009/2010

PERSIAPAN TES SKL KELAS X, MATEMATIKA IPS Page 1

BAB 2 LANDASAN TEORI

TAHUN PELAJARAN 2003/2004 UJIAN NASIONAL. Matematika (D10) PROGRAM STUDI IPA PAKET 2 (UTAMA) SELASA, 11 MEI 2004 Pukul

x y xy x y 2 E. 9 8 C. m > 1 8 D. m > 3 E. m < x : MATEMATIKA Mata Pelajaran

BAB 2 LANDASAN TEORI

PEMBAHASAN UN SMA TAHUN PELAJARAN 2009/2010 MATEMATIKA PROGRAM STUDY IPA

LANDASAN TEORI BAB Sistem Biometrik

Computer Graphic. Output Primitif dan Algoritma Garis. Erwin Yudi Hidayat. Computer Graphics C Version 2 Ed by Donald Hearn

GAMBARAN UMUM SMA/MA. Hak Cipta pada Pusat Penilaian Pendidikan BALITBANG DEPDIKNAS 1

log2 PEMBAHASAN SOAL TRY OUT = = 2 1 = 27 8 = 19 Jawaban : C = = = 2( 15 10) Jawaban : B . 4. log3 1 2 (1) .

Page 1

Konvolusi dan Transformasi Fourier

UJIAN NASIONAL TAHUN PELAJARAN 2006/2007

Strategi Algoritma Penyelesaian Puzzle Hanjie

PENERAPAN ALGORITMA EFFICIENT RANDOMIZED UNTUK MENGHITUNG JUMLAH KOIN DAN BOLA ABSTRAK

UN SMA IPA 2014 Pre Matematika

MATEMATIKA PM Peminatan: MIPA Kamis, 16 Maret 2017 ( )

BAB 2 LANDASAN TEORI

02. Jika. 0, maka nilai x + y =... 3 = A. 14 B. 16 C. 18 D. 20 E. 21. ; a dan b bilangan bulat, maka a + b =... A. 3 B. 2 C. 2 D. 3 E.

Transkripsi:

Bab 9 Kontur dan Representasinya P endeteksi tepi menghasilkan citra tepi yang berupa citra biner (pixel tepi berwarna putih, sedangkan pixel bukan-tepi berwarna hitam). Tetapi, tepi belum memberikan informasi yang berguna karena belum ada keterkaitan antara suatu tepi dengan tepi lainnya. Citra tepi ini harus diproses lebih lanjut untuk menghasilkan informasi yang lebih berguna yang dapat digunakan dalam mendeteksi bentuk-bentuk sederhana (misalnya garis lurus, lingkaran, elips, dan sebagainya) pada proses analisis citra. Rangkaian pixel-pixel tepi yang membentuk batas daerah (region boundary) disebut kontur (contour) [JAI95]. Kontur dapat terbuka atau tertutup. Kontur tertutup berkoresponden dengan batas yang mengelililingi suatu daerah lihat Gambar 9.1(a). Pixel-pixel di dalam daerah dapat ditemukan dengan algoritma pengisian (filling algorithm). Batas daerah berguna untuk mendeskripsikan bentuk objek dalam tahap analisis citra (misalnya untuk mengenali objek). Kontur terbuka dapat berupa fragmen garis atau bagian dari batas daerah yang tidak membentuk sirkuit (Gambar 9.1(b)). (a) Gambar 9.1 (a) kontur tertutup, (b) kontur terbuka (b) Bab 9_Kontur dan Representasinya 141

9.1 Representasi Kontur Representasi kontur dapat berupa senarai tepi (edge list) atau berupa kurva. Senarai tepi merupakan himpunan terurut pixel-pixel tepi. Representasi kontur ke dalam kurva merupakan representasi yang kompak dan mangkus untuk analisis citra. Misalnya, rangkaian pixel tepi yang membentuk garis dapat direpresentasikan hanya dengan sebuah persamaan garis lurus. Representasi semacam ini menyederhanakan perhitungan selanjutnya seperti arah dan panjang garis. Kode Rantai Kode rantai (chain code)adalah notasi untuk mengkodekan senarai tepi yang membentuk batas daerah. Kode rantai menspesifikasikan arah setiap pixel tepi di dalam senarai tepi. Arah yang digunakan adalah 8 arah mata angin seperti yang terlihat pada pada Gambar 9. (a). 7 0 1 batas 6 objek titik awal 5 4 (a) 3 (b) Gambar 9. (a) Kode rantai, (b) representasi batas objek dengan kode rantai. Dimulai dari sebuah pixel tepi dan searah jarum jam, arah setiap pixel tepi yang membentuk batas objek dikodekan dengan salah satu dari delapan kode rantai. Kode rantai merepresentasikan batas objek dengan koordinat pixel tepi pertama lalu diikuti dengan senarai kode rantai. Karena ada 8 arah, maka cukup 3 bit untuk mengkodekan setiap arah. Gambar 9.3 memperlihatkan contoh pengkodean batas objek dengan kode rantai. 14 Pengolahan Citra Digital

Titik awal A 1 0 3 0 3 7 4 7 4 6 6 6 6 6 6 6 6 6 6 4 Kode rantai: (A), 33444666666666677001 Gambar 9.3 Contoh pengkodean batas objek dengan kode rantai. Pencocokan Kurva Kurva yang merepresentasikan kontur dicari dengan teknik pencocokan kurva (curve fitting). Ada dua macam teknik pencocakan kurva: interpolasi dan penghampiran (approximation). Interpolasi kurva adalah mencari kurva yang melalui semua pixel tepi, sedangkan penghampiran kurva adalah mencari kurva yang paling dekat melalui pixel-pixel tepi, tetapi tidak perlu melalui semua pixel tersebut. Di dalam bab ini kita hanya membahas teknik pencocokan kurva dengan penghampiran. Salah satu metode penghampiran kurva yang populer dalam pengolahan citra adalah transformasi Hough. Transformasi Hough akan dibahas dalam upa-bab 9.3 di bawah ini. 9. Transformasi Hough Transformasi Hough menspesifikasikan kurva dalam bentuk parametrik. Kurva dinyatakan sebagai bentuk parametrik (x(u), y(u)) Bab 9_Kontur dan Representasinya 143

dari parameter u. Bentuk parametrik tersebut menspesifikasikan titik-titik sepanjang kurva dari titik awal kurva p 1 = (x(u 1 ), y(u 1 ) ke titik akhir p = (x(u ), y(u 1 ). Panjang kurva adalah L = u u1 dx du + dy du du (9.1) Transformasi Hough menggunakan mekanisme voting untuk mengestimasi nilai parameter. Setiap titik di kurva menyumbang suara untuk beberapa kombinasi parameter. Parameter yang memperoleh suara terbanyak terpilih sebagai pemenang. Pada awalnya, Transformasi Hough digunakan untuk mendeteksi garis lurus. Namun, ia juga dapat digunakan untuk mendeteksi kurva sederhana lainnya seperti lingkaran dana elips. Pembahasan dimulai dengan transformasi Hough untuk mendeteksi keberadaan garis lurus di dalam citra tepi. Mendeteksi Garis Lurus Misalkan citra tepi berukuran n = N M pixel. Cara yang paling sederhana mendeteksi garis lurus adalah menemukan semua garis yang ditentukan oleh dua buah pixel dan memeriksa apakah sebagian dari pixel tepi termasuk ke dalam garis tersebut (cara exhaustive search). Jumlah maksimum garis yang dideteksi adalah n (n 1)/. Karena setiap pixel harus diperiksa apakah ia termasuk ke dalam suatu garis, maka kompleksitas algoritma pendeteksian garis lurus untuk kasus terburuk adalah O(n 3 ). Untuk aplikasi praktis, jelas metode pendeteksian dengan cara ini tidak mangkus. Transformasi Hough mengurangi kompleksitas komputasi dengan menggunakan bentuk parametrik dan menggunakan mekanisme pemungutan suara terbanyak (voting) untuk menentukan nilai parameter yang tepat. Tinjau persamaan garis lurus: y = mx + c (9.) Dalam bentuk parametrik, setiap garis dinyatakan sebagai (m, c ) di dalam ruang parameter m-c. Persamaan 9. dapat ditulis menjadi c = y mx (9.3) Sembarang titik (x,y) pada bidang planar X-Y berkoresponden dengan sebuah garis lurus pada ruang parameter m c. 144 Pengolahan Citra Digital

Tinjau 3 buah titik pada sebuah garis lurus pada Gambar 9.4(a). Sembarang garis yang melalui titik (x 1,y 1 ) berkoresponden dengan garis c = y 1 mx 1 pada ruang parameter m-c. Begitu juga, sembarang garis lurus yang melalui (x,y ) berkoresponden dengan garis c = y mx dan sembarang garis lurus yang melalui (x 3,y 3 ) berkoresponden dengan garis c = y 3 mx 3 pada ruang m-c. Perpotongan (m,c ) dari ketiga garis pada ruang m-c tersebut menentukan garis unik yang melalui (x i,y i ), i = 1,, 3, di bidang X-Y. Dengan cara ini, maka setiap pixel pada garis lurus di bidang citra berkoresponden dengan sejumlah garis lurus yang melalui satu ititik tertentu di ruang parameter m-c. Sifat ini dimanfaatkan untuk mendeteksi garis lurus. Jika setiap pixel tepi melakukan pemungutan suara pada ruang parameter, maka keberadaan garis lurus pada citra ditandai dengan penumpukan suara pada tempat-tempat tertentu di ruang parameter. y c c = y - mx 1 c = y - mx 3 (x,y ) (x 1,y 1 ) (x 3,y 3 ) c = y - mx x m (a) (b) Gambar 9.4 (a) Garis lurus pada ruang X-Y; (b) representasinya dalam ruang parameter m-c. Karena itu, prosedur mendeteksi garis lurus adalah sebagai berikut: 1. Ruang parameter didiskritkan sebagai matriks P(m, c), yang dalam hal ini m 1 m m K dan c 1 c c L.. Tiap elemen pada ruang parameter diasumsikan sebagai akumulator. Inisialisasi setiap elemen P(m, c) dengan 0. 3. Untuk setiap pixel tepi (x i, y i ) pixel tepi dicirikan mempunyai nilai intensitas putih (1) dalam skala 0-1) hitung nilai c = y i mx i. Untuk setiap nilai parameter m, m 1 m m K, yang berkoresponden dengan nilai c, maka elemen matriks P(m, c) yang bersesesuaian dinaikkan satu: P(m, c) = P(m, c) + 1 (9.4) Dengan kata lain, tambahkan satu suara pada ruang parameter m-c. Bab 9_Kontur dan Representasinya 145

4. Ulangi langkah 3 sampai seluruh pixel di dalam citra tepi ditelusuri. 5. Pada akhir prosedur, tiap elemen matriks P(m, c) menyatakan jumlah pixel tepi yang memenuhi persamaan (1). Tentukan elemen matriks yang memiliki penumpukan suara cukup besar (yang nilainya di atas nilai ambang tertentu). Misalkan tempat-tempat itu adalah (m 1, c 1 ), (m, c ),, (m k, c k ), Hal ini berarti terdapat k garis lurus yang terdeteksi pada citra. Tingkat ketelitian dari Transformasi Hough bergantung pada ukuran matriks P(m, c), yaitu K L. Kompleksitas komputasi Transformasi Hough pada kasus terburuk adalah O(Kn), yang dalam hal ini K adalah jumlah pembagian parameter m, dan n adalah jumlah pixel di dalam citra tepi. Karena O(Kn) < O(n 3 ), maka pendeteksian garis lurus dengan Transformasi Hough lebih cepat daripada metode exhaustive search. Model parametrik pada persamaan 9. tidak dapat digunakan untuk mendeteksi garis vertikal atau hampir vertikal karena gradiennya (m) menuju nilai takberhingga. Karena itu, garis dinyatakan dalam representasi polar: r = x cos θ + y sin θ (9.4) yang dalam hal ini r adalah jarak garis ke titik asal (Gambar 9.5). y θ ( r, θ ) r θ x r Gambar 9.5 Representasi polar dari garis lurus Sembarang garis yang melalui (x 1,y 1 ) pada ruang x y berkoresponden dengan kurva sinusoida r = x 1 cos θ + y 1 sin θ pada ruang r θ. Pixel-pixel yang terletak segaris pada citra tepi berkoresponden dengan titik potong seluruh kurva sinusoidanya pada ruang parameter r θ. 146 Pengolahan Citra Digital

Prosedur yang sama untuk mendeteksi garis lurus dapat digunakan kembali dengan mengganti ruang parameter m c menjadi ruang parameter r θ, yang dalam hal ini, N + M r N + M -π/ θ π/ Algoritma Transformasi Hough diperlihatkan pada Algoritma 9.1 [PIT93]. Algoritma tersebut mengasumsikan citra tepi (citra hasil pendeteksian tepi) disimpan di dalam matriks Edge[0..N-1,0..M-1]. Ruang parameter r θ dinyatakan sebagai matriks P yang berukuran n m. Nilai cosinus dan sinus disimpan di dalam lookup table COS[0..p-1] dan SIN[0..p-1] yang dibentuk dengan Algoritma 9.. void Hough(citra Edge, int N, int M, imatriks P, int n, int m, float *COS, float *SIN) /* prosedur yang melakukan Transformasi Hough. Masukan: citra tepi Edge yang berukuran N x M. Keluaran: matriks parameter P yang berukuran n x m */ int k, l, i, j, kk, ll; float r, b; float SQRTD =sqrt((float)n*(float)n + (float)m*(float)m); /* inisialisasi P[0..p-1, 0,,q-1] dengan 0 */ for(kk=0;kk<=p-1;kk++) for(ll=0;ll<=q-1;ll++) P[kk][ll]=0; /*telusuri citra tepi. Jika pixel merupakan tepi, lakukan pemungutan suara pada elemen matriks P yang bersesuaian. tetha dari pi/ sampai pi/. r dari sqrt(n*n+m*m) sampai sqrt(n*n+m*m). */ for (k=0;k<=n-1;k++) for (l=0;l<=m-1;l++) if (Edge[k][l]==1) for (i=0;i<=p-1;i++) r = k*cos[i] + l*sin[i]; b = SQRTD; r+=b; r/=(sqrtd*.0); r*=(m-1); r+=0.5; j=floor(r); P[i][j]++; Algoritma 9.1 Transformasi Hough Bab 9_Kontur dan Representasinya 147

void LookUpTable(float *COS, *SIN, int m) /* Membuat tabel cosinus dan sinus untuk fungsi COS dan SIN. Masukan: m adalah jumlah baris tabel Keluaran: tabel COS dan tabel SIN */ int i; float th, R_TO_D = 0.017453 for(i=0;i<=p-1;i++) th = (float)i * 180.0/(m-1)-90.0; th = th * R_TO_D; COS[i] = (double) cos((double)th); SIN[i] = (double) sin((double)th); Algoritma 9. Transformasi Hough Setelah Transformasi Hough selesai dilakukan, langkah berikutnya adalah melakukan operasi pengambangan (thresholding) untuk menentukan tempattempat pada ruang paramater r θ yang mempunyai penumpukan suara lebih besar dari nilai ambang T. Elemen matriks P yang nilainya di atas nilai ambang tersebut menyatakan parameter garis lurus. Misalkan tempat-tempat itu adalah (m 1, c 1 ), (m, c ),, (m k, c k ), hal ini berarti terdapat k garis lurus yang terdeteksi pada citra. Algoritma pengambangan ditunjukkan pada Algoritma 9.3. void threshold(imatriks P, int n, in m, int T) /* Melakukan pengambangan pada matriks parameter P. Setiap elemen matriks P yang nilainya di atas T menyatakan parameter garis lurus. Masukan: matriks parameter P yang berukuran n x m. Keluaran: matriks parameter P yang sudah di-threshold. */ int i, j; for(i=0;i<n;i++) for(j=0;j<m;j++) if (P[i][j]>T) P[i][j]=1; else P[i][j=0; Algoritma 9.3 Pengambangan hasil transformasi Hough Pixel-pixel tepi yang termasuk di dalam garis lurus hasil deteksi Transformasi Hough dapat dihasilkan dengan algoritma Transformasi Hough Balikan (inverse Hough Transform). Untuk setiap elemen matriks Par yang bernilai 1, 148 Pengolahan Citra Digital

garis lurus yang bersesuaian (yang intensitasnya 1) digambarkan pada matriks keluaran Out. Operasi and dengan citra tepi dilakukan untuk mengklarifikasi keberadaan pixel tepi. Algoritma Transformasi Hough Balikan diperlihatkan pada Algoritma 9.4 [PIT93]. Algoritma tersebut mengasumsikan citra tepi (citra hasil pendeteksian tepi) disimpan di dalam matriks Edge[0..N-1,0..M-1]. Ruang parameter r θ dinyatakan sebagai matriks P yang berukuran n n. Citra keluaran yang berisi pixel-pixel tepi pembentuk garis lurus disimpan di dalam matriks Out[0..N-1,0..M-1]. void InverseHough(citra Edge, citra Out, int N, int M, imatriks P, int n, int m, float *COS, float *SIN) /* prosedur yang melakukan Transformasi Hough Balikan Masukan: 1. citra tepi Edge yang berukuran N x M.. matriks parameter P yang berukuran n x m Keluaran: citra Out yang berisi pixel-pixel pembentuk garis lurus. */ int k, l, i, j; float r, y; float SQRTD =sqrt((float)n*(float)n + (float)m*(float)m); /* inisialisasi citra keluaran dengan 0 */ for(kk=0;kk<=p-1;kk++) for(ll=0;ll<=q-1;ll++) Out[p][q]=0; /* Matriks parameter P telah dilakukan operasi thresholding. Untuk setiap elemen P yang bernilai 1, garis lurus yang bersesuaian digambarkan ke dalam matriks Out. Operasi and dengan citra tepi dikerjakan. for (k=0;k<=p-1;k++) for (l=0;l<=q-1;l++) y=(float)0.0; if (P[k][l]==1) /* atau P[k][l]== 55 */ for (i=0;i<=n-1;i++) r = (float)l *.0 * SQRTD/(m-1) SQRTD; if (SIN[k]==(float)0.0) y++; else y=(r (float)i * COS[k])/SIN[k]; y+=0.5; j=floor(y); if (j >=0 && j < M) if (Edge[i][j]==1) Out[i][j]++; Algoritma 9.4 Transformasi Hough Balikan Bab 9_Kontur dan Representasinya 149

Mendeteksi Lingkaran Transformasi Hough dapat juga digunakan untuk mendeteksi bentuk lingkaran di dalam citra tepi. Persamaan lingkaran yang berpusat di titik (a, b) dengan jari-jari r adalah ( x = r a) + ( y b) (9.5) Jadi, ruang parameter untuk lingkaran adalah r a b, sehingga matriks trimatra P(r, a, b) dibutuhkan untuk menyimpan perhitungan suara. Persamaan polar untuk setiap titik (x, y) di lingkaran: x = a + r cos θ (9.6) y = b + r sin θ (9.7) Persamaan (9.6) dan (9.7) dapat ditulis menjadi persamaan a = x r cos θ (9.8) b = y r sin θ (9.9) Pada operasi deteksi tepi, selain magnitudo pixel tepi, juga dihasilkan arah tepi, θ. Karena itu, cos θ dan sin θ dapat dihitung. Misalkan (x i, y i ) adalah pixel tepi dan θ adalah arah tepi. Ada dua kasus yang akan ditinjau: (i) jika jari-jari lingkaran diketahui, (ii) jika jari-jari lingkaran tidak diketahui. Kasus 1: Jari-jari lingkaran diketahui Jika jari-jari jari-jari lingkaran diketahui r = R, maka ruang parametrik trimatra, P(r,a,b), dapat direduksi menjadi ruang dwimatra, P(a,b). (a,b) R (x i,y i ) Gambar 9.5 Proses penumpukan suara untuk mendeteksi lingkaran 150 Pengolahan Citra Digital

Titik pusat lingkaran, (a,b), yang mempunyai jari-jari r = R dan melalui titik (x i, y i ) dapat dihitung dengan persamaan a = x i R cos θ (9.10) b = y i R sin θ (9.11) seperti yang ditunjukkan pada Gambar 9.5, lalu tambahkan elemen P(a, b) yang bersesuaian dengan satu. Proses ini diulangi untuk pixel-pixel tepi yang lain. Elemen matriks P(a, b) yang memiliki jumlah suara di atas nilai ambang tertentu menyatakan lingkaran yang terdapat di dalam citra tepi. Kasus : Jari-jari lingkaran tidak diketahui Jika jari-jari lingkaran tidak diketahui, maka penumpukan suara dilakukan untuk semua nilai r, 0 < r r max, nilai a dan b untuk pixel tepi (x i, y i ) dihitung dengan persamaan a = x i r cos θ (9.1) b = y i r sin θ (9.13) dan elemen P(r, a, b) yang bersesuaian dinaikkan satu. Proses ini diulangi untuk pixel-pixel tepi yang lain. Elemen matriks P(r, a, b) yang memiliki jumlah suara di atas nilai ambang tertentu menyatakan lingkaran yang terdapat di dalam citra tepi. Persamaan (9.1) dan (9.13) dapat dimanipulasi dengan mengeliminasi r dari kedua persamaan: ( x a) a = x r cos θ r = cosθ ( x a) b = y r sin θ b = y θ cosθ sin = y ( x a) tanθ b = a tan θ x tan θ + y (9.14) Dengan demikian, maka ruang parametrik trimatra, P(r,a,b), dapat direduksi menjadi ruang dwimatra, P(a,b). Untuk untuk semua nilai r, yang dalam hal ini a 1 < a a K, nilai ordinat b dari titik pusat lingkaran (a,b) yang melalui titik (x i, y i ) dapat dihitung dengan persamaan (11), lalu tambahkan elemen P(a, b) yang bersesuaian dengan satu. Proses ini diulangi untuk pixel-pixel tepi yang la in. Elemen matriks P(a, b) yang memiliki jumlah suara di atas nilai ambang tertentu menyatakan lingkaran yang terdapat di dalam citra tepi. Gambar 9.6 memperlihatkan hasil transformasi Hough untuk mendeteksi lingkaran dari citra slope dengan menggunakan nilai ambang T = 30. Bab 9_Kontur dan Representasinya 151

(a) (b) Gambar 9.6 (a) Citra slope, (b) hasil deteksi lingkaran dengan Transformasi Hough (Terima kasih kepada Danu Pranantha atas izin menggunakan output program tugasnya) Transformasi Hough untuk Mendeteksi Bentuk Sembarang Transformasi Hough dapat dirampatkan untuk mendeteksi sembarang kurva yang berbentuk f(x, a) = 0, yang dalam hal ini x adalah vektor peubah dan a adalah vektor parameter. Memori yang dibutuhkan untuk matriks parametrik P(a) meningkat menjadi K q, yang dalam hal ini q adalah jumlah parameter. Tahapan yang dilakukan adalah [DUL97]: 1. tentukan lokasi pusat penumpukan suara;. tentukan fungsi jarak dari setiap pixel tepi ke pusat pemungutan suara. Jika kurva berbentuk lingkaran, maka lokasi pusat penumpukan suara adalah titik pusat lingkaran, sedangkan fungsi jarak dari setiap pixel tepi ke titik pusat lingkaran adalah fungsi konstan (yaitu akar pangkat dua dari persamaan (4) ). Sebagai contoh, pada Gambar 9.7 titik (a, b) adalah lokasi pusat penumpukan suara. Fungsi jarak r dari setiap titik (x, y) dan nilai α merupakan fungsi dari arah vektor normal N. Untuk setiap pixel tepi (x,y) dengan sudut arah tepi θ, lokasi pusat penumpukan suara dihitung dengan rumus N a = x r( θ )cos( α ( θ )) (9.15) (x,y) b = y r( θ )sin( α ( θ )) (9.16) α r Gambar 9.7 Pendeteksian bentuk kurva sembarang dengan Transformasi Hough rampatan (a,b) 15 Pengolahan Citra Digital