Tugas Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Strata Satu (S-1) Universitas 17 Agustus 1945 Surabaya
Disusun oleh CUT LIZA 460302075
FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS 17 AGUSTUS 1945 SURABAYA 2007 JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER FAKULTAS TEKNIK UNIVERSITAS 17 AGUSTUS 1945 SURABAYA
LEMBAR PENGESAHAN
NAMA : CUT LIZA N.B.I : 46.03.02075 FAKULTAS : TEKNIK JURUSAN : TEKNIK INFORMATIKA DAN KOMPUTER JUDUL : METODE SISTEM PENGENALAN POLA DENGAN IDENTIFIKASI PERSONAL BIOMETRIK BERDASARKAN CITRA IRIS MATA
Mengetahui / menyetujui : Dosen Pembimbing
Ir. Sugiono, MT NPP : 20450.00.0515
Dekan Fakultas Teknik Universitas 17 Agustus 1945 Surabaya
Ir. Zainun Achmad, MT NPP : 131.99.1189 Ketua Jurusan Teknik Informatika Universitas 17 Agustus 1945 Surabaya
Dr. Ir. Muaffaq A. Jani, M.Eng NPP : 20450.00.0515
ii JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER FAKULTAS TEKNIK UNIVERSITAS 17 AGUSTUS 1945 SURABAYA
LEMBAR PENGESAHAN TUGAS AKHIR
NAMA : CUT LIZA N.B.I : 46.03.02075 FAKULTAS : TEKNIK JURUSAN : TEKNIK INFORMATIKA DAN KOMPUTER JUDUL : METODE SISTEM PENGENALAN POLA DENGAN IDENTIFIKASI PERSONAL BIOMETRIK BERDASARKAN CITRA IRIS MATA
Mengetahui / menyetujui : Dosen Pembimbing
Dosen Pembimbing I
Ir. Sugiono, MT NPP : 20460.98.0502
Dekan Fakultas Teknik Universitas 17 Agustus 1945 Surabaya
Ir. Zainun Achmad, MT NPP : 131.99.1189 Ketua Jurusan Teknik Informatika Universitas 17 Agustus 1945 Surabaya
Dr. Ir. Muaffaq A. Jani, M.Eng NPP : 20450.00.0515
iii UCAPAN TERIMA KASIH
Puji syukur kehadirat Allah SWT atas segala kemudahan rahmat, dan karunia-Nya, sehingga pada akhirnya penulis dapat menyelesaikan laporan perancangan tugas akhir yang diajukan untuk ujian Sarjana Strata-1 ini, dengan judul metode sistem pengenalan pola dengan identifikasi personal biometrik berdasarkan citra iris mata. Pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih kepada berbagai pihak yang telah membantu terwujudnya laporan perancangan Tugas akhir ini, antara lain kepada
1. Kepada ALLAH SWT yang selalu melimpahkan rahmat dan hidayahnya. 2. Kepada kedua orang tuaku, Ayahanda (Teuku Anwar Effendy) dan Ibunda (Nurhayati. Spd) yang senantiasa memberikan dukungan baik moral, spititual, nasehat, doa, serta pengorbanan yang tidak dapat dinilai dengan materi yang sangat mendukung terselesaikannya tugas akhir ini dan Tugas Akhir ini saya dedikasikan sebagai hadiah ulang tahun ibunda tercinta 20 J uni 2007. 3. Bapak Dr. H. Ujianto, M.S, selaku Rektor Universitas 17 Agustus 1945 Surabaya. 4. Bapak J. Subekti, SH.MME selaku Pembantu Rektor III Universitas 17 Agustus 1945 5. Bapak Ir. Zainun Achmad, M.T selaku Dekan Fakultas Teknik Universitas 17 Agustus 1945 Surabaya. 6. Bapak Dr. Ir. Muaffaq A. Jani, M.Eng selaku Ketua J urusan Teknik Informatika Universitas 17 Agustus 1945 Surabaya. 7. Bapak Ir. Sugiono, M.T Selaku dosen pembimbing dan guru bagi penulis, karena beliau penulis mendapat kesempatan yang luar biasa untuk belajar lebih dalam lagi dan semangat dalam penyelesaian Tugas Akhir. 8. Bapak Firdaus, Skom Selaku dosen yang selalu memberikan semangat motivasi kepada penulis. 9. Bapak Ery Sadewa Yudha W.,S.Kom Selaku dosen wali yang memberikan kesempatan, memotivasi dan memberikan semangat. 10. Seluruh Dosen, Karyawan dan Staf Fakultas Teknik Informatika Universitas 17 Agustus 1945 Surabaya atas bimbingannya selama penulis menempuh kuliah. 11. Teuku Andi, Hamsiah selaku kakak, Teuku Rizki dan Teuku Radja Irfhan selaku adik yang selalu memberi doa, semangat, motivasi untuk kakak, smoga allah selimpahkan rahmatnya sehingga kita selalu dalam kebersamaan dan selalu rukun dalam segala kondisi. 12. Terima kasih untuk almarhum Nenenda Aminah yang sangat berjasa semasa hidupnya, yang mendoakan cut dalam keberangkatan ke surabaya untuk menempuh ilmu, walau nenek telah tiada cut yakin doa nenek selalu menyertai kesuksesan cut. iv 13. Kepada almarhum Abua Usman dan keluarga besar TB yang telah menghadap Allah saat Tsunami. 14. Nenenda Cut Adiah, Om Bachtiar, Tante Dini, Pakwa Iskandar, Bunda Cut Nur Chumeidi, Bunda Cut Ina Yanazly, Bunda Cut Sal Witri, Kak Nur, Te yah yang telah mendoakan dan memotivasi dalam penyelesaian studi dan tugas akhir ini. 15. Terima kasih untuk honey Zulfikar yang selalu membantu dalam pencarian referensi, memberikan semangat, dan surprice yang diberikan saat Ultah serta kasih-sayangnya. 16. Terima kasih untuk abang Ichsan yang sangat banyak membantu dalam pencarian referensi dan penyelesaian tugas akhir ini. 17. Terima kasih untuk mas Andi Ismail Dan Firdha selaku sepupu yang membantu kakak dalam pencarian referensi di Universitas Indonesia. 18. Terima kasih untuk Bpk. Fauzi dan Ibu Annisa serta keluarga yang senantiasa mendoakan. 19. Terima kasih buat sahabat dan saudara yang ada di aceh Pristinawati, Irwandi, Erna, Mutia, Razie, Asnidar dan lain-lain yang tidak bisa disebutkan satu per satu dan masyarakat julok cut yang telah mendukung dan mendoakan. 20. Buat sahabat di surabaya Nina, Desri, Dewi, Dini, (cindes), dan teman-teman lain yang seangkatan, senior dan junior yang tidak bisa disebutkan satu persatu. 21. Terima kasih buat teman-teman organisasi baik di HIMPUNAN, BEM-FT, dan PMKTR seperjuangan dalam merantau dan menuntut ilmu yang namanya tidak bisa disebutkan satu persatu. 22. kepada seluruh teman-teman, semua pihak, saudara, relasi yang tidak bisa saya sebutkan semuanya disini, kalian akan selalu ada dalam hidupku dan tidak akan pernah aku lupakan jasa dan bantuan kalian, semoga allah s.w.t selalu menyertai kalian dimanapun kalian berada.
Penulis menyadari bahwa Tugas akhir ini masih jauh dari sempurna, sehingga kritik dan saran yang membangun dari pembaca sangat penulis harapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi Civitas Akademik Universitas 17 Agustus 1945 Surabaya khususnya dan pembaca pada umumnya.
Surabaya, 18 J uni 2007
Penulis v KATA PENGANTAR
Alhamdulillah, segala puji syukur bagi Allah atas segala nikmat, rahmat dan segala karunianya sehingga dipenghujung semester ini saya dapat menyelesaikan tugas akhir ini tepat waktu sebagai syarat akhir perkuliahan di Fakultas Teknik J urusan Teknik Informatika di Universitas 17 Agustus 1945 Surabaya. Terselesainya makalah ini tidak lepas dari bantuan dan dukungan kedua orang tua dan bantuan dari berbagai pihak. Oleh karena itu saya mengucapkan banyak terima kasih kepada semua pihak baik yang terlibat secara langsung maupun tidak langsung. Semoga menjadi amal kebaikan bagi kita semua Penulis menyadari dalam penulisan makalah ini masih jauh dari kesempurnaan, dengan keterbatasan waktu dan kondisi. Namun, penulis telah berusaha semaksimal mungkin untuk menyelesaikan makalah ini, dengan harapan dapat bermanfaat bagi para pembaca dengan berbagai keterbatasan yang ada mohon dimaafkan jika masih terdapat kekurangan di dalam makalah ini, oleh karena-nya sangat diperlukan saran masukan yang membangun untuk penyempurnaannya dan terima kasih atas semua pihak yang telah membantu terselesainya makala ini.
Surabaya, 18 J uni 2007
Penulis
vi ABSTRAK
Biometrik merupakan pengembangan dari sistem identifikasi personal yang menggunakan karakteristik alami yang dimiliki oleh manusia. Karakteristik yang akan dibahas pada proyek akhir ini adalah pattern iris mata. Setiap iris memiliki pola yang unik untuk setiap orang. Pola ini unik dan juga memiliki kekonsistenan dan kestabilan yang tinggi selama bertahun-tahun tanpa mengalami perubahan sehingga dapat digunakan dalam sistem identifikasi. Pada proyek akhir ini akan dibuat perangkat lunak untuk identifikasi pola iris mata. Proses yang dilakukan meliputi pengambilan gambar mata secara offline dari harddisk kemudian mengkonversi citra dari RGB scale ke grayscale. Citra mata dalam grayscale dihilangkan bagian pupilnya kemudian dicrop sehingga hanya ada bagian iris. Hasil dari iris yang telah dicrop ditransformasi geometri untuk mendapatkan pattern iris kemudian dilakukan proses pencocokan dengan metode Euclidean. Nilai jarak yang paling minimal merupakan gambar yang memiliki kemiripan dengan gambar yang terdapat dalam database. Perangkat lunak yang telah dibuat memiliki tingkat keberhasilan sebesar 84.99% dan tingkat kesalahan 2.14%. Kesalahan pada perangkat lunak ini terjadi karena terdapat kemiripan pattern dengan pattern iris yang lain.
Kata kunci : Biometrik, image processing, pattern forming
vii ABSTRACT
Biometric is the development of personal identification system using natural characteristic that human being. The characteristic that will be studied in this final project is the pattern of iris. Each people have an unique iris pattern. It is high consistence and stablity during through years without any changing so that can be used in identifying system This final project will be made software to identify pattern of iris. The system of this software is get the eyes image by offline from hardisk and convering it from RGB scale image to grayscale image. Eye image in grayscale is eliminated the part of pupil, then the image is cropped so the existing only iris. The result of crop iris which have geometry transformated to get pattern iris then matching process using Euclidean method. The distance that smallest value is the image that has similar characteristic with image stored in database The software have efficacy level 84.99% and mistake level 2.14%. The mistake in software because there are similar pattern with others.
Key word : Biometrik, image processing, pattern forming viii DAFTAR ISI
HALAMAN J UDUL LEMBAR PENGESAHAN UCAPAN TERIMA KASIH I KATA PENGANTAR ii ABSTRAK iii ABSTRACT iv DAFTAR ISI vi DAFTAR GAMBAR viii DAFTAR TABEL x BAB I. PENDAHULUAN 1 1.1. LATAR BELAKANG.. 1 1.2. RUANG LINGKUP.. 1 1.3. TUJ UAN....... 2 1.4. PERMASALAHAN. 2 1.5. BATASAN MASALAH... 2 1.6. METODOLOGI ... 2 1.7. SISTEMATIKA STUDI... 3 BAB II. TEORI PENUNJ ANG.... 5 2.1. PENGOLAHAN CITRA ... 5 2.1.1. Teori Warna.. 5 2.1.2. Warna RGB, CMY, dan Graylevel 6 2.1.3. Penjumlahan warna 7 2.1.4. Pixel... 7 2.1.5 Dasar-dasar hubungan pixel.. 8 2.1.6 Grayscale... 8 2.1.7 Kontras............................... ....... 9 2.1.8 Pengubahan kecerahan warna Gambar................. 10 2.1.9 Deteksi tepi................................................................ 10 ix 2.2. PENGENALAN POLA............................................... 10 2.3. IDENTIFIKASI........................... 11 2.4. EUCLIDEAN....................................... 11 2.5. MICROSOFT VISUAL BASIC.................................. 12 BAB III. PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK 15 3.1. ALGORITMA PERANGKAT LUNAK...................... 15 3.2. ALGORITMA PROSES PENGOLAHAN CITRA. 17 BAB IV. PENGUJ IAN DAN ANALISA....................... 29 4.1. PENGUJ IAN PERANGKAT LUNAK. 29 4.1.1. Pengambilan Data 29 4.1.2. Pengolahan Citra . 29 4.2. PROSEDUR PENGUJ IAN........................................... 34 4.3 HASIL PENGUJ IAN.................................................... 34 4.4. ANALISA 36 BAB V. PENUTUP... 38 5.1. KESIMPULAN.. 38 5.1.SARAN.. 38 DAFTAR PUSTAKA 38 LAMPIRAN 39
x DAFTAR GAMBAR
Gambar 2.1. Ruang warna RGB dan CMY. 6 Gambar 2.2. Program Microsoft Visual Basic 12 Gambar 2.3. Form dalam Visual Basic... 12 Gambar 2.4. Toolbox dalam Visual Basic.. 13 Gambar 2.5. Kotak Dialog Project.. 13 Gambar 2.6. Kotak Dialog Properties. 13 Gambar 3.1. Skema mata 14 Gambar 3.2. Diagram alir perangkat lunak..... 15 Gambar 3.3. Diagram alir proses pengolahan citra. 16 Gambar 3.4 Listing program grayscale.. 17 Gambar 3.5 Listing program kontras (a)........................................ 18 Gambar 3.6 Listing program kontras (b)........................................ 18 Gambar 3.7. Listing program kontras (c)........................................ 18 Gambar 3.8. Listing program pelembutan warna........................... 19 Gambar 3.9. Listing program titik tengah pupil.............................. 20 Gambar 3.10 Listing program batas pupil........................................ 21 Gambar 3.11 Listing program buang pupil...... 21 Gambar 3.12 Listing program integral proyeksi.............................. 22 Gambar 3.13 Listing program deteksi iris 22 Gambar 3.14 Listing program mask iris.......................................... 23 Gambar 3.15 Listing program crop iris............................................ 24 Gambar 3.16 Listing program pattern form..................................... 24 Gambar 3.17 Listing program deteksi tepi....................................... 25 Gambar 3.18 Listing program perhitungan jarak euclidean.............. 26 Gambar 3.19 Listing program proses pengenalan............................ 27 Gambar 4.1 Input pola iris............................................................. 28 Gambar 4.2 Hasil grayscale............................................................ 29 Gambar 4.3 Hasil kontras 1............................................................ 29 xi Gambar 4.4 Hasil pelembutan citra................................................ 29 Gambar 4.5 Hasil kontras 2............................................................ 30 Gambar 4.6 Hasil scanning pupil................................................... 30 Gambar 4.7 Hasil buang pupil........................................................ 31 Gambar 4.8. Hasil integral proyeksi................................................ 31 Gambar 4.9 Hasil deteksi iris......................................................... 31 Gambar 4.10 Hasil mask iris............................................................ 32 Gambar 4.11 Hasil crop iris............................................................. 32 Gambar 4.12 Hasil pattern form....................................................... 33 Gambar 4.13 Hasil mask pattern...................................................... 33 Gambar 4.14 Hasil crop pattern....................................................... 33 Gambar 4.15 Hasil deteksi tepi........................................................ 34
xii 1 BAB I PENDAHULUAN
Pada bab pertama ini berisi materi yang akan memberikan wacana secara umum mengenai beberapa hal yang berhubungan dengan penulisan tentang tugas akhir. 1.1 LATAR BELAKANG Pengenalan pola secara biometrik merupakan cara yang handal untuk membuktikan identitas seseorang berdasarkan karakteristik fisiologis dan sifat bawaan (behavioral traits).Teknologi dibidang pengenalan identitas (personal identification) dapat diaplikasikan sebagai pengendali akses dan sekuriti. Berbagai macam sistem pengenal telah berkembang didunia,antara lain adalah : pengenal retina, sidik jari, telapak tangan, tanda tangan,ataupun suara. Iris merupakan salah satu bagian tubuh manusia yang bersifat unik dan bisa dijadikan pengenalan identitas yang memiliki akurasi tinggi. Struktur iris mata setiap orang tidak ada yang sama.Tidak ada korelasi antara pola iris yang satu dengan yang lain meskipun pada saudara kembar, bahkan antara mata kanan dengan mata kiri seseorang. Jumlah informasi yang dapat diukur dalam satu iris lebih banyak dibanding jumlah informasi pada sidik jari, dengan keakuratan yang lebih baik dari tes DNA. Pola ini juga memiliki kekonsistenan dan kestabilan yang tinggi bertahun-tahun tanpa mengalami perubahan. Dari kondisi ini, maka para ahli mata mengusulkan bahwa iris ini dapat dijadikan seperti sidik jari untuk identitas pribadi seseorang. Pada proyek akhir ini akan dibuat perangkat lunak dengan metode Eucledian sebagai pembanding, dimana pada pengambilan gambar input berupa gambar file secara offline bukan online dari kamera, yang nantinya dalam PC akan dilakukan proses pengujian pola iris dan disesuaikan dengan pola iris yang sudah terdapat dalam database.
1.2 RUANG LINGKUP Dalam pembuatan proyek akhir ini ditunjang oleh beberapa ruang lingkup teori sebagai dasar untuk menyelesaikannya, ruang lingkup teori tersebut ialah: 2 Pengolahan citra Visual Basic
1.3 MAKSUD DAN TUJUAN Tujuan dari pembuatan proyek akhir ini membuat suatu perangkat lunak untuk memberikan informasi mengenai bentuk iris mata sehingga iris mata dapat dikenali dengan bantuan pengolahan citra diharapkan dapat membantu proses identifikasi pola iris mata.
1.4 PERMASALAHAN Pada sistem ini didapatkan permasalahan baik dalam proses mengenali iris maupun proses pengidentifikasian iris itu sendiri. Permasalahan bisa didapatkan pada saat awal perencanaan maupun pada saat proses pembuatan. Permasalahan dalam praproses identifikasi iris antara lain perbedaan bentuk mata setiap orang, besar kecilnya bentuk pupil pada bagian tengah mata yang bisa mempengaruhi hasil dari proses pengolahan citra. Permasalahan dalam proses perealisasian proyek akir antara lain pencarian batas-batas iris mata, pengenalan dan pencocokan pattern iris dengan metode euclidean.
1.5 BATASAN MASALAH Dalam proyek akhir ini, diambil batasan masalah yang akan dibahas sebagai berikut: 1. Input sistem berupa file gambar (secara off-line) dengan input berupa gambar mata dengan format bitmap (*.bmp) yang berukuran 250 x 218 piksel 2. Pengenalan dan pencocokan pola iris mata hasil dari proses transformasi geometrik dengan metode Eucledian. 3. Dalam tugas akhir ini pengukuran jarak dan waktu pengambilan sample terhadap objek tidak di perhitungkan atau di abaikan 3 4. Model pengenalan dilakukan secara bertahap dan tidak dapat sekaligus diproses langsung ke iris mata. 1.6 METODOLOGI Dalam pengerjaan Proyek Akhir ini metodologi yang kami pergunakan adalah sebagai berikut: 1. Studi tentang image processing (pengolahan citra) yang merupakan dasar sistem yang akan digunakan dalam proses pengenalan pola. 2. Perencanaan perangkat lunak 3. Realisasi dan hasil implementasi dari hasil rancangan. 4. Pengujian perangkat lunak.
1.7 SISTEMATIKA STUDI
Sistematika pembahasan dalam penyusunan laporan Proyek Akhir ini adalah:
Bab 1 Pendahuluan Berisi tentang latar belakang pembuatan proyek akhir ini, tujuan yang akan dicapai, ruang lingkup, pembahasan , metodologi dan sistematika studi.
Bab II Teori Penunjang Meliputi uraian dari teori penunjang yang akan digunakan sebagai dasar pada perencanaan dan pembuatan proyek akhir.
Bab III Perencanaan dan Pembuatan Perangkat Lunak Berisi tentang perencanaan dan pembuatan suatu program simulasi.
4 Bab IV Pengujian Perangkat Lunak Membahas tentang pengujian dan perangkat lunak yang telah dibuat beserta analisanya.
Bab V Penutup Berisi tentang kesimpulan dan saran yang didapatkan selama proses perencanaan dari sistem serta rencana pengembangan dari proyek akhir dimasa yang akan datang.
Daftar Pustaka Berisi tentang referensi-referensi yang telah digunakan selama pembuatan Proyek Akhir ini sebagai acuan yang mendukung.
Lampiran Berisi hasil-hasil pengujian program dan listing program yang dibuat dalam pembahasan ini.
5 BAB II TEORI PENUNJANG
Dalam proyek akhir ini terdapat beberapa teori dasar yang digunakan untuk menunjang penyelesaian proyek akhir. Diantara teori dasar tersebut adalah tentang Pengolahan Citra, Euclidean distance dan Microsoft Visual Basic 6.0 2.1 PENGOLAHAN CITRA Pengolahan citra merupakan suatu metode yang digunakan untuk mengolah gambar sehingga menghasilkan gambar lain sesuai dengan yang diinginkan, khususnya menggunakan komputer menjadi citra yang kualitasnya lebih baik. Citra dalam perwujudannya dapat bermacam-macam, mulai dari gambar hitam putih dalam sebuah foto (yang tidak bergerak) sampai pada gambar berwarna yang bergerak pada pesawat televisi. Proses transformasi dari bentuk tiga dimensi ke bentuk dua dimensi untuk meng hasilkan citra akan dipengaruhi oleh bermacam-macam faktor yang mengakibatkan penampilan citra suatu benda tidak sama persis seperti bentuk fisik nyatanya. Faktor-faktor tersebut merupakan efek degradasi atau penurunan kualitas yang dapat berupa rentang kontras benda yang terlalu sempit atau terlalu lebar, distorsi geomtri (geometrik distortion), kekaburan (blur), kekaburan akibat obyek citra yang bergerak (motion blur), noise atau gangguan yang disebabkan interferensi peralatan pembuat citra, baik itu berupa tranduser, peralatan elektronik ataupun peralatan optik. Pengolahan citra ini dapat diaplikasi dalam antara lain dalam bidang robotik, biomedis, pengindraan jauh, komunikasi data, hiburan geologi maupun hukum. Pada mulanya pengolahan citra dilakukan untuk memperbaiki kualitas citra, namun seiring dengan perkembangan dunia komputasi dengan ditandai makin meningkatnya kapasitas dan kecepatan proses komputer, serta munculnya ilmu komputasi yang memungkinkan manusia dapat mengambil informasi dari suatu citra, maka pengolahan citra tidak dapat dipisahkan dengan bidang komputer vision. 6 Pengolahan citra mempuyai dua tujuan utama, yakni sebagai berikut: 1. Memperbaiki kualitas citra, dimana citra yang dihasilkan dapat menampilkan informasi secara jelas atau dengan kata lain manusia dapat melihat informasi yang diharapkan untuk diolah pada proses lebih lanjut. 2. Mengekstraksi informasi ciri yang menonjol pada suatu citra, yang hasilnya informasi ciri dari citra tersebut secara numerik. Sebelum melakukan proses verifikasi terhadap pola (citra 2 dimensi), terlebih dahulu perlu dilakukan proses ekstraksi ciri untuk diambil informasi ciri yang menonjol. Banyak sekali metode ekstraksi ciri pada citra 2 dimensi yang telah dikembangkan saat ini, diantaranya adalah metode vektor kuantisasi, metode Transformasi Ortogonal, Transformasi Uniter (Transformasi Fourier Diskrit (DFT), Transformasi Kosinus Diskrit (DCT), Transformasi Sinus Diskrit (DST)), Transformasi Hadamard, Transformasi Haar dan lain sebagainya. Bayu Dian Witjaksono telah melakukan kompresi image menggunakan metode kuantisasi vektor berdasarkan Discrete Cosine Transform dan fuzzy c-means, dimana pada era informasi sekarang ini, multimedia telah menjadi teknologi yang populer. Penyimpanan maupun pengiriman data digital multimedia merupakan permasalahan utama yang dihadapi. Salah satu elemen dalam teknologi multimedia adalah image. Informasi image dengan kualitas yang dapat diterima dan membutuhkan data dalam jumlah cukup besar. Kompresi digunakan untuk menurunkan kuantitas data yang dibutuhkan tersebut dengan tetap mempertahankan kualitas image yang ditampilkan. Metode kuantisasi vektor untuk kompresi data digital mulai dikembangkan belakangan ini. Algoritma kompresi image dengan metode kuantisasi vektor yang paling populer adalah algoritma lbg, yang sederhana dan mudah diimplementasikan. Kelemahan algoritma lbg ini terletak pada vaktu yang dibutuhkan untuk kompresi, karena menggunakan metode gradient 6 steepest descent untuk mencapai hasil yang optimal. Untuk itu dikembangkan metode kuantisasi vektor dengan menggunakan clusterisasi fuzzy c-means dan didukung penggunaan fungsi Discrete Cosine Transform, disebut kuantisasi vektor dct-fcm. Metode 7 fuzzy cmeans digunakan untuk membentuk codebook yang optimal dengan clusterisasi. Di sini metode lbg akan digunakan sebagai pembanding. Hasil pengujian menunjukkan keberhasilan metode kuantisasi vektor dct- fcm, terutama pada sisi kecepatan. Dan kualitas hasil kompresi juga tidak kalah dari metode lbg. DCT dan kuantisasi (MPEG-2/4, VC-1, H.264) dapat digunakan untuk mengkompresi film, yang mana sebuah film terdiri atas gambar-gambar tunggal (frame)-pada standar PAL jumlahnya 25 gambar/detik. Karena itu, langkah logis pertama adalah dengan mengkompresi setiap gambar. Artinya, mengubah bitmap menjadi JPEG. Untuk itu, encoder membagi sebuah frame ke dalam blok-blok berukuran 8 x 8 pixel, masing-masing dengan nilai kecerahan dan warna yang sesuai. Dalam setiap blok ini nilai kecerahan dan warna tersebut diubah oleh Discrete Cosinus Transformation (DCT) menjadi frekuensi sesuai alurnya. Detail halus yang sulit tertangkap mata manusia menjadi frekuensi tinggi. Di sini kuantisasi bekerja untuk mereduksi volume data. Dengan matriks kuantisasi, nilai frekuensi dikonversi menjadi bilangan bulat, di mana frekuensi tinggi diubah menjadi 0, sehingga sangat mudah dikompresi. Semakin besar quantisizer yang digunakan untuk menghitung nilai matriks kuantisasi, semakin kuat tingkat kompresinya, tetapi semakin buruk kualitas gambarnya. Dengan demikian, pilihan quantisizer yang tepat sangat menentukan pencapaian hasil yang optimal. Sedangkan Benyamin Kusumoputro dan Emanuel Philipus telah membuat pengenalan huruf tulisan tangan menggunakan ekstraksi ciri berbasis fuzzy dan jaringan syaraf tiruan. Sistem Pengenal Huruf Tulisan Tangan (SPHTT) yang dikembangkan terdiri dari sub-sistem prapengolahan citra, sub-sistem ekstraksi ciri dan sub-sistem klasifikasi. Sub-sistim ekstraksi ciri menggunakan proses aproksimasi kerangka dan memecahnya menjadi beberapa segmen dengan menentukan sejumlah titik penting dalam kerangka. Heidemann, telah mengusulkan algoritma baru untuk vektor kuantisasi yaitu Activity Equalization Vector Quantization (AEV). Algoritma tersebut didasarkan pada pemenang yang mengambil semua rule dengan additional supervision dari rata-rata node yang aktif. Ary Mazharuddin 8 Shiddiqi membuat indexing data base citra dengan metode kuantisasi vektor menggunakan algoritma fair shareamount (fsa). Data base merupakan sesuatu yang selalu dipakai pada penyimpanan data-data baik dalam jumlah sedikit maupun banyak. Proses pengenalan pola ini kita menggunakan proses dalam bentuk data base dengan alasan penyimpanan dalam data base adalah keamanan data dan kemudahan dalam pencarian jika akan digunakan. Seiring berjalannya waktu, data base berkembang semakin kompleks. Kompleksitas tersebut dalam hal konsep maupun ragam data yang mampu disimpan di dalamnya. Jika dulu data yang dapat disimpan hanya berupa tulisan dan angka, maka sekarang data base tidak hanya mampu menyimpan tulisan dan angka, tapi juga gambar. Karena tidak semua data dapat dicari dengan metode yang sama, maka diperlukan metode pencarian data sesuai dengan tipe data yang dimaksud. Dr. Ir. Tati Latifah Erawati Rajab Mengko telah merancang dan mengimplementasikan pengkodean citra terdistribusi dengan kuantisasi vektor dan pengkodean huffman untuk transfer citra kedokteran sinar-x menggunakan javatm. Pengkodean citra kedokteran sinar-X digital dengan kuantisasi vektor (KV) dan pengkodean Huffman membutuhkan waktu yang lama. Untuk meningkatkan performansi waktu pengkodean citra perlu dikembangkan model komputasi terdistribusi. Sistem tidak-terdistribusi mengalami overloading pada saat melakukan pengkodean citra dengan luas 6.036.000 piksel, sedangkan sistem terdistribusi mampu menangani citra yang sebelumnya tidak dapat ditangani oleh sistem tidak-terdistribusi. Dan terjadi peningkatan unjuk-kerja waktu pengkodean citra pada server yang signifikan untuk ukuran citra yang semakin besar. Peningkatan perfomansi waktu pengkodean citra akan meningkatkan performansi waktu pengaksesan citra melalui jaringan komputer. Sistem yang dikembangkan mendukung perbaikan kualitas citra lossy-to- lossless pada Region of Interest (RoI). Sigit Kusumo Ati menggunakan Fast Fourier Transform untuk membuat audio searching sebagai bentuk aplikasi penghitungan kemunculan iklan pada radio. Informasi tentang pemasangan iklan di suatu radio (antara lain mengenai, jam berapa aja suatu iklan ditayangkan, dalam sehari berapa kali suatu iklan 9 ditayangkan dan berapa jumlah uang yang harus dikeluarkan oleh suatu perusahaan iklan untuk penayangan suatu iklan) bersifat rahasia. Hanya orang orang tertentu yang memiliki hak akses untuk melihatnya. Bagaimana jika suatu perusahaan iklan ingin mengetahui dalam satu hari perusahaan pesaingnya menampilkan berapa kali iklan. Apakah perlu menunggu sampai 24 jam untuk menghitung iklan pesaingnya. Sehingga dibuatlah aplikasi untuk penghitungan kemunculan suatu iklan di radio dengan menggunakan delphi programming. Dengan melakukan pencocokan antara suatu iklan yang sudah disimpan ke data base dan siaran radio yang sedang berjalan. Selama ditemukan suatu pola / parameter yang sama maka nilai counter akan bertambah. Suatu suara dalam bentuk wave, dapat kita lihat domain amplitudo dan domain waktunya. Kita dapat mencocokkan pola dari bentuk sinyal antara suatu iklan dengan rekaman siaran radio 24 jam dalam domain tersebut. Namun hal itu akan sangat sulit karena ada ada penambahan noise dalam suatu sinyal. Dengan mengggunakan metode Fast Fourier Transform (untuk mengubah domain waktu ke domain frekuensi) suatu iklan dengan rekaman siaran radio 24 jam dapat dicocokkan. Hasil dari proses FFT terhadap suatu iklan adalah berupa informasi frekuensi dan spektral daya, informasi tersebut akan membentuk suatu pola yang akan disimpan dalam data base. Pada rekaman siaran radio 24 jam juga akan dikenai proses FFT, pola iklan akan dicocokkan dengan pola rekaman siaran radio secara overlap (sebesar satu sampling). Selain itu akan dianalisis frekuensi dominan (yang memiliki tinggi spektral daya maksimum) dan lebar spektral tersebut. Sinyal Digital Audio terdiri dari domain waktu dan amplitudo, sinyal tersebut memiliki keterbatasan untuk diolah, terlebih lagi jika suatu sinyal memiliki noise. Bentuk 2 (dua) sinyal wave iklan yang sama dengan noise berbeda akan terlihat sama jika dilihat dengan kasat mata dan menghasilkan suara yang hampir sama jika didengarkan. Untuk membandingkan 2 sinyal tersebut, untuk setiap detiknya di sampling misal 44100 sampling/detik, nilai perbandingan antara 2 sampling yang berdekatan antara 2 sinyal tersebut harus sama, jika terdapat noise akan menghasilkan 10 angka perbandingan yang selalu berbeda, meskipun sebenarnya 2 iklan tersebut adalah sama. Oleh sebab itu untuk mencocokkan apakah 2 sinyal tersebut sama meskipun ada noise, sinyal tersebut perlu diubah ke dalam domain frekuensi. Salah satu cara untuk mengubahnya adalah dengan menggunakan Transformasi Fourier. Dalam Transformasi Forier domain waktu (t) dan amplitude (A) akan diubah menjadi domain point frekuensi Transformasi Fourier (n) dan daya (P). Pada pengolahan sinyal dengan komputer digital, fungsi dinyatakan oleh himpunan berhingga nilai diskrit. Algoritma TFD (Transformasi Fourier Diskrit) tidak bagus untuk N yang besar karena komputasinya memakan waktu yang lama. Kompleksitas waktu algoritmanya adalah O(N2). Algoritma yang dikenal cepat untuk menghitung Transformasi Fourier Diskrit adalah FFT (Fast Fourier Transform). Algoritma FFT mempunyai kompleksitas waktu O (N 2log N). Jadi, untuk N=50, FFT kurang lebih 10 kali lebih cepat daripada TFD, untuk N = 1000 sekitar 100 kali lebih cepat. Muhammad Rofiul Ibad telah membandingan algoritma pemampatan citra digital menggunakan Transformasi Wavelet Diskrit dan Transformasi Kosinus Diskrit dimana saat ini berbagai alternatif algoritma pemampatan citra digital telah dikembangkan dengan tujuan untuk mendapatkan hasil pemampatan yang efisien terhadap ruang penyimpanan dan waktu proses. Transformasi Kosinus Diskrit dan Transformasi Wavelet Diskrit merupakan perumusan matematis yang sering kali diterapkan pada algoritma pemampatan citra. Joint Photographic Experts Group (JPEG), salah satu organisasi pengembang teknologi pemampatan citra digital berhasil membuat suatu teknik pemampatan data citra bitmap yang didasarkan pada Transformasi Kosinus Diskrit dan menjadi standar internasional pemampatan citra. Disamping itu. Federal Bureau of Investigation (FBI) menerapkan Transformasi Wavelet Diskrit untuk memampatkan data-data citranya yang sangat besar secara efisien. Perbandingan terhadap kedua algoritma tersebut dapat dilakukan dengan penghitungan secara analitik melalui kompleksitas 11 algoritma, dan penghitungan secara empirik terhadap waktu proses, bit rate file hasil pemampatan, dan besarnya error pemampatan. Dari hasil perbandingan kompleksitas algoritma dapat disimpulkan bahwa algoritma pemampatan citra menggunakan Transformasi Kosinus Diskrit melakukan kerja lebih sedikit dari Transformasi Wavelet Diskrit. Dari hasil perbandingan empirik dapat disimpulkan bahwa algoritma pemampatan citra menggunakan Transformasi Kosinus Diskrit lebih optimal dari segi proses dan algoritma pemampatan citra menggunakan Transformasi Wavelet Diskrit lebih optimal dari segi hasil. Decky Samuel melakukan verifikasi Radix-4 Pipelined 16- Point Complex FFT CORE dengan menggunakan HOL Theorem Proving sehingga dapat membuktikan bahwa implementasi FFT RTL menyiratkan spesifikasi yang sesuai pada tingkatan fixedpoint hirarki verifikasi yang klasik dalam HOL, karenanya menghilangkan perbedaan diantara implementasi hardware dan spesifikasi matematika tingkat tinggi. Dimana Fast Fourier Transform (FFT) merupakan suatu algoritma untuk menghitung Discrete Fourier Transform (DFT) yang secara substansial dapat menyimpan waktu yang lebih dari pada metoda yang konvensional. Dua kelas dasar dari algoritma FFT adalah Decimation-In-Time (DIT) dan Decimation-In-Frequency (DIF). Verifikasi FFT telah dilakukan oleh Akbarpour dan Tahar dengan menggunakan HOL Theorem Proving . RS232 adalah standard komunikasi serial antar periperalperiperal. Contoh paling sering kita pakai adalah antara komputer dengan modem, atau komputer dengan komputer. Standar ini menggunakan beberapa piranti dalam implementasinya. Paling umum yang dipakai adalah plug DB9 atau DB25. Untuk rs232 dengan DB9, biasanya dipakai untuk serial port pada komputer pribadi, dipakai untuk port mouse dan modem. Ada banyak sekali metode yang dapat digunakan untuk proses verifikasi, diantaranya adalah metode Hamming, Euclidean dan lain sebagainya. Metode yang dipilih untuk proses verifikasi adalah metode euclidean. Sedangkan bahasa pemrograman yang dipakai adalah Microsoft Visual Basic 6.0, sebab bahasa pemrograman ini berdasarkan pola object oriented yang 12 merupakan suatu trend yang menarik. Dengan menggunakan pola ini, seorang programmer tidak perlu menuliskan baris-baris listing untuk membentuk suatu objek yang interaktif, melainkan hanya memanipulasi kontrol yang ada dan menambahkan perintah. Selain memperkecil kemungkinan error, hal ini sangat efisien karena pemrogram tidak perlu banyak mengetik listing program. Microsoft Visual Basic merupakan sarana pemrograman yang handal dan banyak digunakan dalam pebuatan aplikasi karena dapat menggabungkan sisi efisiensi dan nilai estetika pada sebuah aplikasi. Khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik. Umumnya operasi operasi pengolahan citra dilakukan bila: Perbaikan atau modifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau untuk menonjolkan beberapa aspek nformasi yang terkandung dalam citra. Elemen dalam citra perlu di cocokkan, dikelompokkan atau diukur. Sebagian citra perlu digabung dengan bagian citra yang lain. Terminologi yang berkaitan dengan image Processing adalah computer vision. Pada hakikatnya computer vision mencoba meniru cara kerja sistem visual manusia (human vision). Human vision sesungguhnya sangat kompleks.manusia melihat objek dengan indra penglihatan (mata), lalu citra objek diteruskan ke otak untuk diinterpretasi sehingga manusia mengerti objek apa yang tampak dalam pandangan matanya. Hasil interpretasi mungkin digunakan untuk mengambil keputusan (misal menghindar kalau melihat mobil yang melaju di depan) . Computer vision merupakan proses otomatis yang mengintegrasikan sejumlah besar proses untuk persepsi visual, seperti akuisisi citra, pengolahan citra, klasifikasi, pengenalan (recognition), dan membuat keputusan. Computer vision terdiri atas teknik teknik untuk mengestimasi ciri ciri objek di dalam citra, pengukuran citra yang berkaitan dengan geometry objek, dan menginterpretasi informasi geometry tersebut. Proses proses dalam Computer dapat dibagi menjadi tiga proses: Memperoleh atau mengakuisisi citra digital Melakukan teknik komputasi untuk memproses atau 13 memodifikasi data citra (operasi operasi pengolahan citra) Menganalisis dan meginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memadu robot, mengontrol peralatan, memantau proses manufaktur dsb. Klasifikasi proses proses di dalam komputer vision dalam hirarki sebagai berikut
2.1.1 Teori Warna Data visual citra berwarna lebih kaya dan rumit daripada citra monokromatik. Setiap warna dihasilkan oleh kombinasi tiga warna dasar yaitu Merah (R), Hijau (G), dan Biru (B) dalam komposisi tertentu yang disebut Grey level dengan nilai 0 sampai 255 dengan format Citra Digital 24 bit. Komposisi warna-warna dasar tersebut dinyatakan dengan: C=aR + bG + cB (2.1) Dari persamaan tersebut dengan gray level 0 sampai dengan 255 bisa didapatkan 255 X 255 X 255 warna untuk diolah. Dalam hal ini setiap warna memiliki tiga karakteristik untuk menyatakan informasi visual, yaitu corak, saturasi dan iluminasi. Corak yang berbeda dihasilkan bila panjang gelombang cahaya menghasilkan perasaan visual pada mata. Saturasi menunjukkan bagaimana terkonsentrasinya atau kuatnya suatu 14 warna. Sedangkan iluminasi menunjukkan intensitas cahaya yang dirasakan oleh mata manusia.
2.1.2 Warna RGB, CMY, dan Gray Level Model warna RGB (red, green, blue) mendeskripsikan warna sebagai kombinasi positif dari 3 warna, yaitu merah, hijau, dan biru. Sehingga membentuk sebuah warna C dengan rumusan sebagai berikut, C = rR + gG + Bb (2.2) Jika skalar r, g, b kita beri harga antara 0 dan 1, maka semua definisi warna akan berada dalam kubus sebagai berikut, Blue (0,0,1) Cyan (0,1,1)
Gambar 2.1 Ruang Warna RGB dan CMY Ruang warna ini adalah warna display monitor komputer. Garis sepanjang titik hitam (0, 0, 0) RGB hingga titik (1, 1, 1) RGB disebut dengan titik keabuan atau gray level. Sehingga dengan mudah didapatkan hubungan antara RGB dengan gray level. (a) GL (a,a,a) (2.3) RGB Dasar dari pengolahan citra adalah pengolahan warna RGB pada posisi tertentu. Dalam pengolahan citra warna direpresentasikan dengan nilai hexadesimal dari 0x00000000 sampai dengan 0x00ffffff. Warna hitam dengan nilai 0x00000000, dan warna putih bernilai 0x00ffffff.
Red (1,0,0) Yellow (1,1,0) Green (0,1,0) White (1,1,1) Magenta (1,0,1) Black (0,0,0) 15
Nilai warna diatas merupakan gabungan antara 3 warna primer yaitu merah (Red), hijau (Green), biru (Blue), Sehingga untuk memperoleh warna lain selain warna primer, perlu menggabungkan skala kecerahan dari tiap warna.
sementara hubungan RGB dengan CMY diberikan oleh rumusan, (r,g,b) = (1, 1, 1) - (c,m,y) (2.4) RGB CMY sehingga apabila diturunkan nilai dari b akan menyebabkan warna bergeser menjadi kekuningan.
2.1.3 Penjumlahan Warna Warna yang dideskripsikan dengan RGB adalah pemetaan yang mengacu pada panjang gelombang dari RGB. Pemetaan menghasilkan nuansa warna sekitar 16 juta ( 16.777.216) yaitu 256 (8 bit)untuk masing-masing R, G, dan B. = 3 256 Masing-masing R, G, dan B didiskritkan dalam skala 256, sehingga RGB akan memilki indeks antara 0 sampai 255. penjumlahan warna RGB ini adalah, C = C1 + C2 = 2 ) 2 , 2 , 2 ( ) 1 , 1 , 1 ( bC gC rC bC gC rC + (2.5) Penjumlahan ini menghasilkan RGB yang tidak bulat, sehingga harus membulatkan, yaitu dengan metode pembulatan kebawah atau keatas. Misalkan dua warna yaitu hitam (0, 0, 0) dijumlahkan dengan warna putih (255, 255, 255) akan menghasilkan warna abu-abu antara hitam dan putih (127, 127, 127). Hasil 16 akhir dibulatkan ke bawah. Contoh lain misalkan menjumlahkan warna merah (255, 0, 0) dengan warna hijau (0, 255, 0) akan menghasilkan warna kuning (127, 127, 0).
2.1.4 Pixel Pixel merupakan satuan komponen terkecil dari gambar yang menentukan ukuran dari suatu gambar. Resolusi citra menyatakan ukuran bit dari suatu citra dalam satuan pixel. Untuk citra biner, pixel gambar yang kecerahannya dibawah tingkat tertentu diwakili oleh 1, dengan demikian semua citra didalam memori komputer dapat diwakili oleh logika 1 dan 0. Piksel juga merupakan salah satu komponen dari gambar yang menentukan resolusi dari gambar tersebut, misalnya sebuah gambar dikatakan resolusinya sebesar 800 x 600 artinya yaitu panjang pixel horizontalnya 800 dan panjang pixel vertikalnya 600 dan jumlah total keseluruhan pixel dari gambar tersebut yaitu 480000.
2.1.5 Dasar-dasar Hubungan antar pixel Dalam masalah pengolahan citra, hubungan antar pixel merupakan hal yang sangat penting. Sebuah pixel p pada koordinat (x,y) mempunyai 4 tetangga horizontal dan vertikal yang koordinat-koordinatnya sebagai berikut. (x+1,y),(x-1,y),(x,y+1), dan (x,y-1) (2.6) Kumpulan dari pixel-pixel data yang disebut 4-neighbours of p dapat dinyatakan sebagai N (p), kecuali jika p(x,y) posisinya terletak digaris batas gambar, sehingga jumlah pixel tetangga tidak terdiri dari 4 tetangga. Selain 4 tetangga diatas, p juga mempunyai 4 tetangga diagonal, yaitu: 4 (x+1,y+1),(x+1,y-1),(x-1,y+1), dan (x-1,y-1) (2.7) pixel-pexel diatas dinyatakan sebagai N (p )gabungan dari N (p) dan N (p ) didefinisikan sebagai 8-neighbours of p dan dinyatakan sebagai N 8 (p) D 4 D 17 Hubungan antar pixel merupakan suatu konsep yang sangat penting yang digunakan untuk mendefinisikan batas-batas dari suatu objek serta bagian-bagian daerah kecil dari suatu gambar. Sebagian pertimbangan apakah dua pixel dihubungkan atau tidak, diperlukan beberapa kriteria. Diantaranya adalah apakah kedua pixel tersebut mempunyai prinsip kedekatan yang sesuai dengan konsep yang telah ditentukan, seperti konsep 4-neighbours atau 8-neighbours. Selain itu, apakah kedua pixel tersebut memiliki gray level yang sesuai dengan kriteria yang diinginkan. Sebagai contoh, jika dua pixel mempunyai nilai masing-masing 0 dan 1 dan keduanya merupakan bagian dari 4-neighbours, maka dinyatakan bahwa kedua pixel tersebut tidak ada hubungan, hal ini karena keduanya memiliki nilai yang berbeda.
2.1.6 Grayscale Grayscale merupakan sebuah format warna dengan pengambilan rata-rata dari nilai r, g, dan b dari sebuah format gambar berwarna. Dengan menggunakan persamaan sebagai berikut Grayscale = R+G+B /3 (2.8) Format warna gray ini diperlukan untuk memudahkan proses selanjutnya karena apabila diproses menggunakan format gambar berwarna maka nilai r, g, dan b yang bervariasi sehingga akan sulit untuk diproses. Dengan format warna gray ini maka dihasilkan nilai R=G=B. Proses awal yang banyak dilakukan dalam image processing adalah mengubah citra berwarna menjadi citra gray-scale, hal ini dgunakan untuk menyederhanakan model citra. Seperti telah dijelaskan di depan, citra berwarna terdiri dari 3 layer matrik yaitu Rlayer, G-layer dan B-layer. Sehingga untuk melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas. Bila setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3 layer di atas menjadi 1 layer matrik gray-scale dan hasilnya adalah citra gray-scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan. 18 Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing r, g dan b menjadi citra gray scale dengan nilai s, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai r, g dan b.
2.1.7 Kontras Kontras menyatakan sebaran terang (lighness) dan gelap (darkness) didalam sebuah gambar. Citra dapat dikelompokkan kedalam tiga kategori kontras : citra kontras-rendah (low contras),citra kontras bagus (good contras) dan citra kontras-tinggi. Ketiga kategori ini umumnya dibedakan secara intuitif. Citra kontras-rendah dicirikan sebagaian besar komposisi citranya adalah terang atau sebagian besar gelap. Dari histogramnya terlihat sebagian besar derajat keabuannya terkelompok (clustered) bersama dan hanya menempati sebagian kecil dari rentang nilai-nilai keabuan yang mungkin. Jika pengelompokan sebagian kecil nilai-nilai pixel berada di bagian kiri (yang berisi nilai keabuan yang rendah), citranya cenderung gelap. Jika pengelompokan nilai-nilai pixel berada dibagian kanan (yang berisi nilai keabuan yang tinggi) citrannya cenderung terang. Tetapi mungkin saja suatu citra tergolong kontras- rendah meskipun tidak terlalu terang atau tidak terlalu gelap bila semua pengelompokan nilai keabuan berada ditengah histogram. Citra kontras-bagus memperlihatkan jangkauan nilai keabuan yang lebar tanpa ada suatu nilai keabuan yang mendominasi. Histogram citrannya memperlihatkan sebaran nilai keabuan yang relatif seragam. Citra kontras-tinggi, seperti halnya citra kontras bagus, memiliki jangkauan nilai keabuan yang lebar, tetapi terdapat area yang lebar yang didominasi oleh warna gelap dan area yang lebar yang didominasi oleh warna terang. Gambar dengan langit terang dengan latar depan yang gelap adalah contoh citra kontras-tinggi. Pada histogramnya terlihat dua puncak, satu pada area nilai keabuan yang rendah dan satu lagi pada area nilai keabuan yang tinggi. Citra dengan kontras-rendah dapat diperbaiki kualitasnya dengan operasi peregangan kontras. Melalui operasi ini, nilai-nilai keabuan pixel akan 19 merentang dari 0 sampai 255 (pada citra 8-bit) dengan kata lain seluruh nilai keabuan pixel terpakai secara merata.
2.1.8 Pengubahan Kecerahan Gambar (Image Brightness) Untuk membuat citra lebih gelap atau terang, dilakukan pengubahan kecerahan gambar. Kecerahan/kecemerlangan gambar dapat diperbaiki dengan menambahkan (atau mengurangkan) sebuah konstanta kepada (atau dari) setiap pixel didalam citra. Akibat operasi ini, histogram citra mengalami pergeseran. Secara matematis operasi ini ditulis sebagai: b y x f y x f + = ) , ( )' , ( (2.9) Jika b positif, kecerahan gambar bertambah, sebaliknya jika b negatif kecerahan gambar berkurang.
2.1.9 Deteksi Tepi (Edge Detection) Pendeteksian tepi merupakan langkah pertama untuk melingkupi informasi di dalam citra. Tepi mencirikan batas-batas dan berguna untuk identifikasi objek didalam citra. Tujuan pendeteksian tepi adalah untuk meningkatkan penampakan garis batas suatu daerah atau objek didalam citra. Salah satu teknik yang digunakan untuk pendeteksian tepi yaitu dengan metode sobel. Metode Sobel merupakan metode dengan mengalikan komponen matriks kernel 3x3, dengan komponen matrik yang ada di dalamnya dikalikan dengan komponen warna pada frame gambar asli, yaitu : Untuk kernel horizontal:
1 2 1 Horizontal = 0 0 0 -1 -2 -1
20 2.1.10 Bitmap Bitmap adalah representasi atau gambaran yang terdiri dari baris dan kolom pada titik image graphics di komputer. Nilai dari titik disimpan dalam satu atau lebih data bit. Tampilan dari bitmap atau raster, menggunakan titik-titik berwarna yang dikenal dengan sebutan pixel. Pixel-pixel tersebut ditempatkan pada lokasi- lokasi tertentu dengan nilai-nilai warna tersendiri, yang secara keseluruhan akan membentuk sebuah tampilan gambar. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar, karena itu bitmap merupakan Nilai B Nilai G Nilai R 0x00 XX XX XX 21 media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit seperti foto dan lukisan digital. Struktur bitmap terdiri dari Header, Info Header dan Color Tabel. Header adalah bagian dari file bitmap yang berisi informasi header dari file gambar bitmap. Ukuran dari header ini 14 byte, masing-masing terdiri dari signature 2 bytes (berisi BM sebagai tanda gambar mempunyai format bmp), FileSize 4 bytes (besarnya ukuran gambar mempunyai satuan bytes), Reserved 4 bytes (tidak digunakan atau sama diisi dengan nilai nol) dan DataOffset 4 bytes (file offset untuk raster data). Info header adalah bagian dari header yang berisi informasi lebih detail dari file gambar bitmap. Letaknya setelah bagian header. Info header mempunyai besar 40 bytes, terdiri dari size 4 bytes (ukuran infoheader dan isinya adalah nilai 40), width 4 bytes (lebar gambar bitmap dalam satu pixel), Height 4 bytes (tinggi gambar bitmap dalam satuan pixel), planes 2 bytes (jumlah warna dalam plane, isinya selalu sama dengan satu), BitCount 2 bytes (Bits per pixel, jika bernilai 1= monochome palete, banyaknya warna =2, jika bernilai 4= 4 bit pallete, banyaknya warna = 16, jika bernilai 8 = 8 bit pallete, banyaknya warna = 256, jika bernilai 16 = 16 bit RGB, banyaknya warna = 65536, jika bernilai 24 = 24 bit RGB, banyaknya warna = 16M), Compression 4 bytes (jenis kompresi yang digunakan, jika bernilai 0, gambar tidak terkompresi, jika bernilai 1 gambar 21 terkompresi 8 bit RLE-run length encoding, jika bernilai 2, gambar terkompresi 4 bit RLE encoding), ImageSize 4 bytes (ukuran gambar dalam bytes atas perkalian dari width dikalikan dengan height), XpixelPerM 4 bytes (resolusi horizontal dalam satuan pixel), YpixelxPerM 4 bytes (resolusi vertikal dalam satuan pixel), ColorUsed 4 bytes (banyaknya warna dalam color table), ColorImportant 4 bytes (banyaknya warna utama). Color table adalah tabel yang berisi warna-warna yang ada pada gambar bitmap. Ukurannya adalah 4 dikalikan dengan ukuran banyakanya warna. Color table berisi RGB-red green blue. Strukturnya teriri dari 1 bytes untuk bagian Rgbblue yang berisi intensitas warna biru 0...255, 1 bytes untuk bagian RgbGreen yang berisi intensitas warna hijau 0...255, 1 bytes untuk bagian RgbRed yang berisi intensitas warna merah 0...255, 1 bytes untuk bagian RgbReserved yang selalu di set sama dengan 0.
2.2 PENGENALAN POLA Pola merupakan suatu entitas yang dapat diidentifikasi melalui ciri-ciri. Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola yang lain. Ciri-ciri dapat dipakai sebagai indikator dalam proses untuk mengidentifikasi seseorang apabila memenuhi persyaratan antara lain: Universal, ciri-ciri tersebut dimiliki oleh semua orang. Unik, tidak ada dua orang atau lebih yang identik dalam karakteristik tersebut. Permanen, tidak berubah, tetap stabil dalam jangka waktu yang lama dan tidak mengalami perubahan.
2.3 IDENTIFIKASI Identifikasi yang dilakukan dalam proyek akhir ini adalah membandingkan antara dua gambar yaitu data sampel yang terdapat dalam database dengan data uji yang akan dikenali. Berikut ini ada beberapa contoh tahapan dalam proses identifikasi diantaranya: 1. Pengambilan dua atau lebih gambar dari suatu objek pada posisi yang berbeda kemudian diidentifikasi. Cara pengidentifikasiannya menggunakan 22 imaging geometri (pemrosesan gambar tiga dimensi). Proses identifikasi ini dilakukan terhadap gambar tiga dimensi untuk menghasilkan gambar dua dimensi. 2. Pengambilan dua gambar dengan membandingkan keduanya berdasarkan klasifikasi piksel. Pengenalan ini yang akan digunakan dalam proyek akhir. Metode yang digunakan untuk melakukan pengenalan ini adalah metode statistika diantaranya adalah Eucledian.
2.4 EUCLIDEAN Eucledian merupakan metode statistika yang berfungsi untuk mencari data yang terdekat antara parameter sampel dengan parameter data baru. Parameter sampel : R1, R2, R3.....Rim dimana i = jumlah region dan R = data pada tiap region. Sedangkan data baru: R1*, R2*, R3*,.....Rn* dimana n = jumlah regiom dan R = data pada tiap region, banyaknya jumlah region antara data baru dengan parameter sampel harus sama, sehingga i = n. dR = *) ( Ri Ri 2 (2.10) Nilai jarak yang paling minimal merupakan gambar yang memiliki kemiripan dengan gambar yang terdapat dalam database. Selain itu Jarak Euclidean dapat dianggap sebagai jarak yang paling pendek antara dua titik dan pada dasarnya sama halnya dengan persamaan Pythagoras ketika digunakan didalam dua dimensi. Secara matematis dapat dituliskan didalam persamaan berikut :
Dimana : d(i, j) = jarak antara 2 titik xin = koordinat titik pertama xjn = koordinat titik kedua Ketika menggunakan fungsi jarak Euclidean untuk membandingkan jarak, tidak diperlukan untuk menghitung akar dua sebab jarak selalu merupakan angka-angka positif. Untuk dua jarak d1 dan d2, jika : 23
Untuk setiap input citra karakter yang akan dikenali dilakukan ekstraksi ciri. Hasil ekstraksi ciri ini dibandingkan dengan ekstraksi ciri hasil dari citra acuan. Cara membandingkannya adalah dengan Euclidean distance, yaitu dengan cara menghitung jarak antara kedua ekstraksi ciri (ekstraksi ciri citra input dengan ekstraksi ciri citra acuan) untuk setiap posisi x dan y. Untuk setiap karakter acuan dihitung ratarata error dengan membagi dimensi citranya. Dengan membandingkan smeua ekstraksi ciri karakter acuan, dicari jarak yang paling kecil maka error tersebut dijadikan sebagai batas error untuk semua tanda tangan. Sedangkan Euclidean Distance digunakan untuk mencari jarak antara dua nilai untuk mengetahui nilai kedekatan antara nilai-nilai tersebut, pengunaan distance ini dapat dilakukan jika nilai-nilai tersebut mempunyai besaran yang sama. D = (R1 R2)2 + (G1G2)2 + (B1 B2)2 + ( pixel1 pixel2)2 ....(2.6) Keterangan: D = distance R1, R2 = rata-rata R input, R referensi G1, G2= rata-rata G input, G referensi B1, B2= rata-rata B input, B referensi Pixel1, pixel2= pixel input, pixel referensi Pada pemrosesan citra, nilai yang dicari jarak perbedaannya adalah nilai rata- rata R, G, B dan pixel antara data input dan referensinya.
2.5 Clustering Clustering adalah proses pengelompokan sehingga semua anggota dari setiap partisi mempunyai persamaan berdasarkan matrik tertentu. Sebuah Cluster adalah sekumpulan obyek yang digabung bersama karena persamaan atau kedekatannya. Clustering berdasarkan persamaanya merupakan sebuah teknik yang sangat berguna Karena akan mentranslasi ukuran persamaan yang intuitif menjadi ukuran yang kuantitatif. Ada banyak pendekatan untuk membuat 24 cluster, diantaranya adalah membuat aturan yang mendikte keanggotaan dalam group yang sama berdasarkan tingkat persamaan diantara anggotaanggotanya. Pendekatan lainnya adalah dengan membuat sekumpulan fungsi yang mengukur beberapa properti dari pengelompokan tersebut sebagai fungsi dari beberapa parameter dari sebuah clustering. Clustering adalah suatu proses membuat pengelompokan sehingga semua anggota dari setiap bagian mempunyai persamaan atau kemiripan berdasarkan letak, sifat, ciri, atau parameter lain yang telah ditentukan. Sebuah cluster adalah sekumpulan obyek yang digabung bersama karena persamaan atau kedekatannya. Dalam mengelompokkan suatu data menjadi suatu bagian-bagian diperlukan suatu pusat klaster (centroid of a group of data sets) atau sebuah titik yang akan dijadikan nilai parameter utama dari keseluruhan titik data yang terdapat pada suatu kelompok atau klaster. Metode pengklasteran dalam hal ini digunakan untuk segmentasi data (red, green, blue) pada suatu image, sebagai pattern recognition warna kulit manusia, yang nantinya akan dicari tingkat kemiripan tertinggi dengan sample kulit yang ada. Metode Kmeans Salah satu metode pengklasteran secara statistik yang banyak digunakan adalah metode K-Means. Metode K-Means mempunyai kelebihan dalam menghasilkan klaster dengan proses yang cepat sedangkan kelemahannya yaitu K-Means membangkitkan initial centroid secara acak sehingga klaster yang dihasilkan memungkinkan tidak optimal.Berikut ini adalah ilustrasi algoritma kmeans :
25
Gambar 2.2 Algoritma Kmeans
Algoritma kmeans diatas dapat dijelaskan sebagai berikut : 1. Tentukan k buah centroid (pusat klaster) secara acak Jumlah klaster akan digunakan sebagai acuan untuk menentukan jumlah inisial pusat klaster yang akan dibangkitkan. Inisial pusat klaster dibangkitkan secara acak pada data image. 2. Hitung jarak tiap data dengan masing masing pusat klaster Perhitungan jarak tiap data dengan pusat klaster menggunakan metode Euclidean Distance. 3. Kelompokkan setiap data dengan kelompok terdekat Perhitungan jarak tiap data dengan masing masing pusat klaster kemudian dibandingkan dengan mencari jarak terdekat dengan pusat klaster. Jarak terdekat dengan pusat klaster berarti data tersebut masuk ke dalam kelompok pusat klaster tersebut. 4. Hitung pusat klaster baru dari hasil rata rata anggota dan pusat lama Pusat klaster yang baru digunakan untuk melakukan iterasi selanjutnya sampai proses clustering telah mencapai konvergen, yang berarti rata-rata pergerakan pusat 26 klaster yang baru mendekati nol atau telah mencapai maksimum iterasi. Jika belum terpenuhi, maka proses berulang ke perhitungan jarak tiap data dengan masing-masing pusat klaster.
2.6 Integral Projection Integral projection adalah suatu metode yang digunakan untuk mencari daerah atau lokasi dari objek. Metode ini dapat diguanakan untuk mendeteksi batas dari daerah gambar yang berbeda, sehingga bisa dicari daerah lokasi wajah dan feature-featurenya. Metode ini juga bisa disebut dengan integral baris dan kolom dari pixel, karena integral ini menjumlahkan pixel per baris dan pixel per kolom. Dari metode ini akan dengan mudah untuk menemukan daerah lokasi object yang diperlukan. Dari metode ini akan didapatkan hasil penjumlahan baris dan kolom yang nantinya akan diolah atau proses lebih lanjut. Metode ini akan memudahkan saat akan menari lokasi wajah, sebelum menggunakan metode ini, dicari dahulu nilai clusternya kemudian setelah didapatkan, jumlahkan tiap pixelnya. Tiap pixel citra atau gambar yang diproses memiliki nilai cluster, jadi dalam satu gambar semua pixel memiliki nilai cluster dengan intensitas cluster yang berbeda, jika suatu daerah memiliki kemiripan warna dengan nilai cluster, berarti pixelnya memilki nilai yang tinggi dan jika dijumlahkan maka daerah ini akan memiliki jumlah yang lebih besar dari pada daerah lain yang hanya memilkii nilai yang kecil (intensitas kecil). Jumlahkan pixel kearah sumbu y selebar x dan jumlahkan pixel x sepanjang atau setinggi y, jadi akan diketahui tinggi dan lebar dari image yang memilki nilai tinggi, dari sini sudah didapatkan lokasi dari object yang dicari. Untuk mendapatkan lokasi yang lebih tepat maka akan diproses lebih lanjut. Jadi untuk menjumlahkan pixel baris dan kolom tergantung pada kita, parameter apa yang digunakan. Jika digunakan parameter kulit maka diasumsikan semua pixel gambar memilki nilai cluster, tapi nilainya tergantung pada intensitas tertentu. Jika suatu daerah pixel memilki warna yang sesuai dengan parameter yang digunakan (misal: kulit), maka daerah tersebut memiliki intensitas yang tinggi, 27 jika dijumlahkan maka pada daerah ini nilainya akan tinggi baik dijumlahkan ke arah x atau y. seperti gambaran beriku:
Gambar 2.3 Integral Projection Keterangan: pX = jumlah pixel X per baris pY = jumlah pixel Y per kolom
2.7 Filter Sobel Operator sobel melakukan perhitungan secara 2D terhadap suatu ruang di dalam sebuah gambar dengan harapan nantinya akan nampak daerah-daerah bernilai tinggi pada gambar tersebut yang merupakan deteksi tepi dari suatu gambaran. Operator ini biasanya digunakan untuk mencari gradient dari masing- masing pixel gambar input yang telah di grayscale sebelumnya. Secara teori, diperlukan matrik setidaknya berukuran 3x3 sebagai kernelnya. Seperti gambar dibawah ini menunjukkan kernel 3x3 dari sobel :
28
kernel-kernel ini dapat digunakan bersamaan ataupun secara terpisah. Apabila digunakan kernel verikal dan kernel horisontal secara bersamaan, maka gradient dapat diukur dengan formula sbb: G = Gx2 + Gy2
Nilai magnitude dari gradient juga dapat dihitung lebih cepat lagi dengan menggunakan formula sbb: G = Gx + Gy
Gradient tersebut pasti mempunyai derajat kemiringan tertentu. Untuk dapat menegtahui sudut dari gradient tersebut dapat dihitung dengan menggunakan rumus sbb: = arctan(Gy / Gx) Dalam kasus ini, orientasi 0 untuk menentukan nilai kontras maximum dari hitam ke putih dihitung dari kiri menuju kanan dan berjalan terus sampai ke bagian paling atas dari suatu gambaran. Sedangkan sudutnya diukur berlawanan arah jarum jam. Yang sering terjadi dalam filter ini adalah nilai absolut dari magnitude hanya sebatas penglihatan mata kita saja, apabila terdapat dua komponen gradient maka akan digabungkan menggunakan operator pseudo-convolution sbb:
Kernel pseudo-convolution agar mempercepat komputasi
29 Dengan menggunakan kernel pseudo-convolution seperti diatas maka perhitungan yang terjadi adalah:
2.8 MICROSOFT VISUAL BASIC 6.0 Pada proyek akhir ini digunakan bahasa pemrograman Visual basic 6.0. Pemilihan bahasa pemrograman ini lebih didasari karena keunggulannya untuk proses yang lebih cepat dan memudahkan dalam penggunaan fungsi-fungsi yang dibutuhkan. Komponen-komponen dalam Visual Basic Microsoft Visual Basic 6.0 terdiri dari beberapa komponen, antara lain: menu bar, toolbor, jendela form, kotak dialog program, kotak dialog properties, kotak dialog form layout dan toolbox. Berikut adalah gambar program microsoft Visual basic 6.0
Gambar 2.4 Program Microsoft Visual Basic 6.0
30 Jendela Form Jendela form digunakan untuk merancang form, menampilkan label, textbox, grafk dan kontrolkontrol lainnya yang digunakan dalam mendesain tampilan program atau untuk memasukan data. Berikut adalah gambar jendela form:
Gambar 2.5 Form dalam Visual Basic
Toolbox Toolbox menampilkan semua standart Visual Basic control. Semua ikon yang terdapat dalam toolbox disebut dengan Controls (Kontrol) Sebagai contoh, ikon Label disebut dengan Label controls (Kontrol Label).
Gambar 2.6 ToolBox dalam Visual Basic 31
Kotak Dialog Project Kotak dialog project adalah kotak dialog yang berisi form-form yang telah dibuat
Gambar 2.7 Kotak Dialog Project Kotak Dialog Properties Kotak dialog properties adalah kotak dialog yang digunakan untuk membuat setting terhadap form dan membuat setting terhadap kontrol yang telah dimasukkan kedalam form.
Gambar 2.8 Kotak Dialog Properties 32 BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK Pembahasan materi dalam bab ketiga ini diarahkan pada langkah perencanaan proyek akhir yang meliputi perencanaan perangkat lunak secara keseluruhan, yang merupakan pokok bahasan utama proyek akhir. Karakteristik Mata Karakteristik mata memiliki bagian-bagian yang tampak jelas perbedaannya yaitu iris mata, pupil mata, kornea dan retina. Bagian-bagian tersebut dapat ditunjukkan pada gambar 3.1.
Gambar 3.1 Skema mata
Dari gambar diatas dapat diketahui bahwa kornea adalah bagian di luar iris yang tampak putih. Sedangkan iris tampak lebih gelap dari kornea tetapi tidak sehitam pupil, terletak antara pupil dan kornea. Dan pupil adalah bagian lingkaran hitam di tengah iris. Pada proyek akhir ini bagian mata yang akan digunakan untuk proses identifikasi adalah iris mata. Sehingga harus dipisahkan semua bagian mata kecuali iris. Sampel Citra Iris Mata Citra msts yang akan diproses dalam proyek akhir ini didapatkan dari download di http:/www.sinobiometric.com. Gambar mata didasarkan pada CASIA image dataset. ( Chinese Academy of Science Institute of Automation). Dataset ini terdiri dari 108 gambar mata dengan 7 gambar mata per user. Citra mata ini sudah dalam bentuk gray scale. Tetapi didalam proyek akhir ini tetap dibuat program untuk 33 mengkonversi citra iris dari RGB scale ke Grayscale apabila nantinya ada citra mata dalam bentuk RGB scale.
3.1 ALGORITMA PERANGKAT LUNAK Pada proses pembuatan perangkat lunak diperlukan suatu perencanaan yang berupa algoritma-algoritma pengolahan citra supaya tujuan akhir dari perangkat lunak ini tercapai. Algoritma dari perangkat lunak ini yaitu: 1. Ambil citra mata dari harddisk. 2. Citra mata diolah dengan proses pengolahan citra sehingga menghasilkan bagian iris saja. 3. Citra iris hasil dari pengolahan citra diproses dengan proses identifikasi 4. Dari hasil proses identifikasi dapat diketahui pemilik dari iris. Gambar 3.2 menunjukkan diagram alir dari algoritma perangkat lunak. Proses pengolahan citra akan dijelaskan dengan algoritma dan diagram alir tersendiri.
start Pengambilan Citra Mata Pengolahan Citra Proses Pengenalan Display pemilik iris End
Gambar 3.2 Diagram Alir Perangkat Lunak
34 3.2 ALGORITMA PROSES PENGOLAHAN CITRA Berikut adalah langkah-langkah yang akan dilakukan dalam membuat proses pengolahan citra untuk mendapatkan bagian iris mata. Diagram alir dari proses pengolahan citra ditunjukkan oleh gambar 3.3.
start 1
Gambar 3.3 Diagram Alir Proses Pengolahan Citra
Dari diagram alir tersebut dapat dijelaskan sebagai berikut: a. Citra Proses pengambilan citra iris pada proyek akhir ini melalui input gambar dari file gambar (*.BMP). Hal ini dilakukan secara offline yaitu tidak secara langsung mengambil gambar dari kamera, sering disebut secara online. Pengambilan citra mata berupa citra grayscale yang akan diproses lebih lanjut pada tahap pengolahan citra. citra Gray scale Kontras1 LPF Kontras2 temukan pupil Buang pupil Deteksi iris Mask iris Crop iris Pattern form Pengenalan end 1 Deteksi tepi Integral proyeksi Mask pattern Crop pattern 35 b. Grayscale Grayscale digunakan untuk mengkonversi citra berwarna menjadi citra hitam putih untuk memudahkan proses pengolahan citra. Citra berwarna mempunyai tiga kombinasi warna yaitu red (R), green (G), dan blue (B). Untuk mendapatkan citra grayscale maka tiga komponen warna tersebut dirata-rata. Proses awal yang banyak dilakukan dalam image processing adalah mengubah citra berwarna menjadi citra gray scale, hal ini digunakan ntuk menyederhanakan model citra. Citra berwarna terdiri dari 3 layer matriks yaitu R- layer, G-layer, B-layer. Sehingga untuk melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas. Bila setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3 layer di atas menjadi 1 layer matriks gray scale dan hasilnya adalah citra gray scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan Gambar 3.4 adalah contoh listing program untuk mendapatkan citra grayscale.
Pr i vat e Sub cmdGr ay( ) Di mR As I nt eger , G As I nt eger Di mb As I nt eger Di mi As Long Di mX As I nt eger , y As I nt eger Di mvI mage( 0 To 319, 0 To 239) As Long Di mGr ay( 0 To 319, 0 To 239) As I nt eger Ambi l Pi ct ur e1, vI mage For y = 0 To 239 For X = 0 To 319 i = vI mage( X, y) R = i And 255 G = ( i \ 256) And 255 b = ( i \ &H10000) And 255 i = ( R + G + b) \ 3 Gr ay( X, y) = i Next Next Tampi l Pi ct ur e4, Gr ay End Sub Gambar 3.4 Listing Program Grayscale
c. Kontras1 Kontras digunakan untuk mempertajam perbedaan warna pada citra. Algoritma untuk peregangan kontras adalah sebagi berikut: 1. Cari batas bawah pengelompokan piksel dengan cara memindai (scan) nilai keabuan terkecil ke nilai keabuan terbesar (0 sampai 255) untuk menemukan 36 piksel pertama yang melebihi ambang pertama yang telah dispesifikasikan. Gambar 3.5 menunjukkan listing program untuk proses ini. 2. Cari batas atas pengelompokan piksel dengan cara memindai histogram dari nilai keabuan tertinggi ke nilai keabuan terendah (255 sampai 0) untuk menemukan piksel pertama yang lebih kecil dari nilai ambang kedua yang dispesifikasikan. Listing program untuk proses ini ditunjukkan oleh gambar 3.6.
Gambar 3.5 Listing Program Kontras(a)
Pr i vat e Sub cmdKont r as_Cl i ck( ) Di mG As I nt eger Di mi As Si ngl e, mAs Long Di mm2 As Long, n2 As Long Di mX As I nt eger , y As I nt eger Di mn As Long Di mvI n( 0 To 319, 0 To 239) As I nt eger Di mKont r as( 0 To 319, 0 To 239) As I nt eger
Ambi l Pi ct ur e4, vI n m= 255 For y = 0 To 239 For X = 0 To 319 G = vI n( X, y) i = i + G I f G < mThen m= G Next Next i = i / ( 320# * 240#) For y = 0 To 239 For X = 0 To 319 G = vI n( X, y) I f G < i Then n = n + 1 El se m2 = m2 + G n2 = n2 + 1 End I f Next Next m2 = m2 / n2 i = 255 / ( m2 - m) Gambar 3.6 Listing Program Kontras(b) 3. Piksel-piksel yang berada di bawah nilai ambang pertama di set sama dengan 0, sedangkan piksel-piksel yang berada di atas nilai ambang kedua di 37 set sama dengan 255. Listing program untuk proses ini ditunjukkan oleh gambar 3.7.
Gambar 3.7 Listing Program Kontras (c)
For y = 0 To 239 For X = 0 To 319 G = ( vI n( X, y) - m) * i I f G > 255 Then G = 255 I f G < 0 Then G = 0 Kont r as( X, y) = G Next Next show Pi ct ur e4, Kont r as End Sub
d. Pelembutan citra Pelembutan citra digunakan memperhalus citra atau menekan gangguan pada citra. Pada proyek akhir ini LPF digunakan untuk mnghilangkan bulu-bulu mata yang memiliki frekuensi tinggi. Operasi pelembutan citra ini dilakukan untuk menekan komponen yang berfrekuensi tinggi dan meloloskan komponen yang berfrekuensi rendah atau low pass filter sehingga bulu mata akan terlihat lebih lembut. Listing program untuk proses pelembutan citra ditunjukkan oleh gambar 3.8
e. Kontras2 Kontras yang kedua ini digunakan untuk membedakan antara pupil dengan iris. Algoritma kontras 2 ini sama dengan algoritma kontras 1. Listing program untuk kontras2 dapat ditunjukkan pada gambar 3.5, gambar 3.6, dan gambar 3.7.
38
Pr i vat e Sub cmdLPF_Cl i ck( ) Di mX As I nt eger , y As I nt eger Di mw As Long, G As Long Di mxx As I nt eger , yy As I nt eger Di mf x As I nt eger , f y As I nt eger Di mvI n( 0 To 319, 0 To 239) As I nt eger Di mLPF( 0 To 319, 0 To 239) As I nt eger
Ambi l Pi ct ur e4, vI n For y = 0 To 239 For X = 0 To 319 G = 0 For f y = - 3 To 3 For f x = - 3 To 3 xx = X + f x yy = y + f y I f xx >= 0 And xx < 320 And yy >= 0 And yy < 240 Then G = G + vI n( xx, yy) End I f Next Next G = G / ( 7 * 7) LPF( X, y) = G Next Next Tampi l Pi ct ur e3, LPF End Sub
Gambar 3.8 Listing Program pelembutan citra
f. Scanning Pupil Scanning pupil ini digunakan untuk menemukan pupil. Untuk melakukan proses scanning pupil terlebih dahulu dilakukan adalah menemukan titik tengah dari pupil (CxP,CyP). Karena pupil memiliki warna yang jauh lebih hitam daripada iris, maka pupil dapat diketahui dengan menggunakan nilai thresholdnya. Citra mata discan untuk mengetahui intensitas keabuan yang kurang dari nilai threshold yang telah ditentukan (16). Total dari nilai keabuan yang kurang dari nilai threshold di rata-rata sehingga ditemukan titik CxP dan Cyp. Gambar 3.9 menunjukkan listing program untuk mencari titik tengah pupil. Setelah diketahui titik tengah pupil, maka dilakukan proses scanning citra dari titik tengah pupil ke arah kiri, dari CxP ke 0. Nilai X minimum yang sesuai dengan batas threshold dijadikan sebagai batas pupil. Jarak antara CxP dengan Xmin adalah jari-jari pupil. Jarak ke kanan dianggap sama dengan jarak ke kiri. Untuk scanning dari CyP ke 0 dilakukan proses yang sama dengan proses sebelum Listing program untuk mencari batas-batas pupil ditunjukkan oleh gambar 3.10 39
Pr i vat e Sub cmdTi t i kTengahAwal _Cl i ck( ) Di mX As I nt eger , y As I nt eger Di mw As Long, G As Long Di mi As Si ngl e, a As Si ngl e Di mxx As Long, yy As Long, n As Long Di mvI n( 0 To 319, 0 To 239) As I nt eger
Get Pi ct ur e2, vI n For y = 0 To 239 For X = 0 To 319 I f vI n( X, y) < 16 Then xx = xx + X yy = yy + y n = n + 1 End I f Next Next CxP = xx / n CyP = yy / n
Gambar 3.9 Listing Program Titik Tengah Pupil
g. Buang Pupil Pada bagian ini pupil dihilangkan dengan cara membuat mask lingkaran tepat dibagian pupil. Dari proses sebelumnya dapat diketahui titik tengah dan diameter pupil. Nilai yang telah diketahui tersebut digunakan dalam proses ini. Pada proses ini dibuat lingkaran di titik tengah pupil, dengan diameter yang sama dengan diameter pupil. Lingkaran yang dibuat disini adalah berwarna putih. Listing program buang pupil ditunjukkan pada gambar 3.11
h. Integral Proyeksi Integral proyeksi digunakan untuk menentukan nilai integral dari iris yang sudah tidak memiliki pupil. Dalam proses ini diambil bagian citra dengan bentuk persegi panjang dengan ukuran tertentu yang berada disekitar titik tengah pupil. Masing-masing intensitas keabuan pixel yang berada pada sumbu x yang sama dijumlahkan dan dibuat grafik nilainya. Listing program integral proyeksi ditunjukkan pada gambar 3.12.
40
Thr eshol d = 15 For X = CxP To 0 St ep - 1 i = i + 1 I f vI n( X, CyP) > Thr eshol d Then Exi t For End I f Next xMi nP = X xMaxP = CxP + i
For y = CyP To 0 St ep - 1 a = a + 1 I f vI n( CxP, y) > Thr eshol d Then Exi t For End I f Next yMi nP = y yMaxP = CyP + a
show Pi ct ur e4, vI n
Pi ct ur e4. Li ne ( CxP, 239) - ( CxP, 0) Pi ct ur e4. Li ne ( 0, CyP) - ( 319, CyP) xMi nP = xMi nP - 3: xMaxP = xMaxP + 3 yMi nP = yMi nP - 3: yMaxP = yMaxP + 3 Pi ct ur e4. Li ne ( xMi nP, yMi nP) - ( xMaxP, yMaxP) , , B Pi ct ur e4. Ref r esh r Pupi l = ( xMaxP + yMaxP - xMi nP - yMi nP) / 4 + 3 End Sub
Gambar 3.10 Listing Program Batas Pupil
Pr i vat e Sub cmdPupi l _Cl i ck( ) Di mPupi l ( 0 To 319, 0 To 239) As I nt eger Ambi l Pi ct ur e3, Pupi l Ambi l Pi ct ur e4, Pupi l Pi ct ur e4. Fi l l Col or = vbWhi t e Pi ct ur e4. Fi l l St yl e = vbSol i d Pi ct ur e4. Ci r cl e ( CxP, CyP) , r Pupi l + 1, vbWhi t e Pi ct ur e4. Ref r esh End Sub Gambar 3.11 Listing Program Buang Pupil
i. Deteksi Iris Deteksi iris dapat dilakukan berdasarkan nilai integral proyeksi. Deteksi iris ini dilakukan dengan mencari selisih nilai antara jumlah intensitas keabuan sumbu X dengan sumbu X-1. Jika selisih nilai melebihi nilai yang telah ditetapkan, maka sumbu X tersebut dianggap sebagai batas iris. Listing program untuk proses deteksi iris ditunjukkan oleh gambar 3.13. 41
Pr i vat e Sub cmdI nt egr al P_Cl i ck( ) Di mX As I nt eger , y As I nt eger , i As I nt eger Di mR As I nt eger , r r As I nt eger , s As Si ngl e Di mi r i s( 0 To 319, 0 To 239) As I nt eger Ambi l Pi ct ur e4, i r i s For X = 0 To 319 P( X) = 0 Next For X = CxP - r Pupi l * 3 To CxP + r Pupi l * 3 For y = CyP - r Pupi l / 2 To CyP + r Pupi l / 2 i = i r i s( X, y) P( X) = P( X) + i i = i * 1. 1 I f i > 255 Then i = 255 i r i s( X, y) = i Next Next Show Pi ct ur e2, i r i s For X = 0 To 319 P( X) = P( X) / r Pupi l Next For X = CxP - r Pupi l * 3 To CxP + r Pupi l * 3 Set Pi xel Pi ct ur e2. hdc, X, CyP - P( X) \ 5, RGB( 255, 0, 0) Next Pi ct ur e2. Ref r esh End Sub
Gambar 3.12 Listing Program Integral Proyeksi
Pr i vat e Sub cmdDI r i s_Cl i ck( ) Di mKi r i As I nt eger , Kanan As I nt eger Di mX As I nt eger For X = xMi nP - 6 To 5 St ep - 1 I f P( X - 1) - P( X) > 4 Then Ki r i = X Exi t For End I f Next For X = xMaxP + 6 To 314 I f P( X + 1) - P( X) > 4 Then Kanan = X Exi t For End I f Next I f Ki r i <> 0 And Kanan <> 0 Then r I r i s = ( ( CxP - Ki r i ) + ( Kanan - CxP) ) / 2 El seI f Ki r i <> 0 Then r I r i s = CxP - Ki r i El seI f Kanan <> 0 Then r I r i s = Kanan - CxP El se r I r i s = r Pupi l * 3 End I f Pi ct ur e2. Li ne ( Ki r i , 0) - ( Ki r i , 239) Pi ct ur e2. Li ne ( Kanan, 0) - ( Kanan, 239) End Sub
Gambar 3.13 Listing Program Deteksi Iri
42 j. Mask Iris Jarak antara batas iris yang dicari pada proses sebelumnya dengan titik tengah pupil merupakan jari-jari iris yang berguna untuk membuat mask iris. Mask iris yang dibuat berwarna putih dengan diameter yang telah diketahui, sedangkan pupil berwarna hitam. Bagian diluar iris juga diberi warna hitam. Listing program untuk membuat mask iris ditunjukkan pada gambar 3.14.
Pr i vat e Sub_cmdMaskI r i s_Cl i ck( ) Pi ct ur e3. Li ne ( 0, 0) - ( 319, 239) , vbBl ack, BF Pi ct ur e3. Fi l l Col or = vbWhi t e Pi ct ur e3. Fi l l St yl e = vbSol i d Pi ct ur e3. Ci r cl e ( CxP, CyP) , r I r i s, vbWhi t e Pi ct ur e3. Fi l l Col or = vbBl ack Pi ct ur e3. Fi l l St yl e = vbSol i d Pi ct ur e3. Ci r cl e ( CxP, CyP) , r Pupi l , vbBl ack End Sub
Gambar 3.14 Listing Program Mask Iris
k. Crop Iris Croping ini dilakukan untuk mengcrop iris sesuai dengan mask iris yang telah dibuat. Proses croping iris ini dilakukan dengan cara mengalikan antara citra mata dengan citra mask iris. Warna hitam mempunyai nilai keabuan 0 sehingga jika suatu citra dikalikan dengan warna hitam hasilnya adalah hitam (0). Sedangkan nilai keabuan warna putih adalah 1, maka jika suatu citra dikalikan dengan warna putih maka citra tersebut akan tetap, karena sama dengan dikalikan 1. Dengan mengalikan antara citra mata dengan mask iris hasil yang diharapkan adalah semua bagian mata kecuali iris berwarna hitam, sedangkan bagian iris tetap seperti awal. Listing program crop iris ditunjukkan oleh gambar 3.15.
l. Pattern Form Pattern form didapatkan dari iris yang telah dicrop kemudian ditransformasi geometri. Pada proses transformasi geometri bagian tepi iris di tarik ke sumbu y yang lurus dengan titik tengah pupil. Hal ini dilakukan untuk 43 menghilangkan lubang bekas pupil karena besar kecilnya lubang yang tidak sama pada masing-masing iris akan mempengaruhi proses pengenalan iris sehingga akan tampak pattern iris dengan jelas. Listing program pattern form ditunjukkan oleh gambar 3.16.
Pr i vat e Sub cmdCr opI r i s_Cl i ck( ) Di mGr ay( 0 To 319, 0 To 239) As I nt eger Di mMask( 0 To 319, 0 To 239) As I nt eger Di mi r i s( 0 To 319, 0 To 239) As I nt eger Di mx As I nt eger , y As I nt eger Ambi l Pi ct ur e1, Gr ay Ambi l Pi ct ur e3, Mask For y = CyP - r I r i s To CyP + r I r i s For x = CxP - r I r i s To CxP + r I r i s i r i s( x + r I r i s - CxP, y + r I r i s - CyP) = Gr ay( x, y) And Mask( x, y) Next Next CxP = r I r i s CyP = r I r i s xMi nP = r I r i s - r Pupi l yMi nP = xMi nP Tampi l Pi ct ur e3, i r i s End Sub
Gambar 3.15 Listing Program Crop Iris
Pr i vat Sub cmdPat t er n_Cl i ck( ) Di mx As I nt eger , y As I nt eger , i As I nt eger Di mPat t er n( 0 To 319, 0 To 239) As I nt eger Ambi l Pi ct ur e3, Pat t er n For y = yMi nP To yMaxP x = CxP Whi l e Pat t er n( x, y) = 0 x = x - 1 Wend I f CxP - x > 0 Then For i = CxP - 1 To CxP - x St ep - 1 Pat t er n( i , y) = Pat t er n( x + i - CxP, y) Next For i = 0 To CxP x Pat t er n( i , y) = 0 Next End I f x = CxP Whi l e Pat t er n( x, y) = 0 x = x + 1 Wend I f x - CxP > 0 Then For i = CxP To 319 - x + CxP Pat t er n( i , y) = Pat t er n( x + i - CxP, y) Next End I f Next Tampi l Pi ct ur e2, Pat t er n End Sub
Gambar 3.16 Listing Program pattern form 44
m. Mask dan crop pattern Setelah mendapatkan bentuk pattern maka akan dibuat sebuah mask berbentuk persegi berwarna putih dengan lebar sesuai dengan pattern form, sedangkan bagian luar diberi warna hitam. Kemudian dicrop sehingga didapatkan citra sesuai dengan pola yang diinginkan. Hal itu bertujuan untuk menghilangkan bulu-bulu mata yang mempengaruhi proses pengenalan berikutnya. Adapun listing program untuk mendapatkan mendapatkan crop pattern sama dengan program crop iris, dapat dilihat pada gambar 3.15
n. Deteksi Tepi Berdasarkan pengertiannya Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah : Untuk menandai bagian yang menjadi detail citra Untuk memperbaiki detail citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra Suatu titik (x, y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Gambar berikut menggambarkan bagaimana tepi suatu gambar diperoleh :
Gambar 3.17 Proses Pendeteksian Tepi 45
Setelah mendapatkan crop pattern dari iris dilakukan proses deteksi tepi yang berguna untuk memisahkan warna yang berbeda sehingga terbentuk suatu batasan antara tiap-tiap warna yang berbeda, yang nantinya akan dibandingkan dengan hasil deteksi tepi pattern yang sudah terdapat dalam database. Proses deteksi tepi dilakukan dengan pengurangan nilai keabuan masing-masing pixel. Hasil dari selisih tersebut dijumlahkan. Jika nilai dari total selisih tersebut melebihi nilai yang ditentukan maka bagian tersebut dianggap tepi dan diberi warna putih sedang bagian lainnya diberi warna hitam. Listing program untuk mendapatkan mendapatkan deteksi tepi dapat dilihat pada gambar 3.17
o. Euclidean Pada proses pengenalan dengan Euclidean ini dilakukan perhitungan jarak dari gambar uji dengan gambar sample yang telah tersimpan dalam database. Nilai jarak yang paling minimal merupakan iris yang memiliki kemiripan dengan iris dalam database dan akan diketahui identitas dari pemilik iris tersebut. Listing program untuk mendapatkan mendapatkan nilai euclidean dan proses identifikasi dapat dilihat pada gambar 3.18 dan 3.19
Pr i vat e Sub cmddt epi 1_Cl i ck( ) Di mi As I nt eger Di mj As I nt eger Di mw1 As Long Di mw As Long Di mw2 As Long Di mg1 As Long Di mg2 As Long Di msi mpen As Long Di msi mpan As Long Di mt ambah As Long For i = 1 To Pi ct ur e2. Scal eWi dt h For j = 1 To Pi ct ur e2. Scal eHei ght w = Pi ct ur e2. Poi nt ( i , j ) w1 = Pi ct ur e2. Poi nt ( i + 1, j ) w2 = Pi ct ur e2. Poi nt ( i , j + 1) g1 = w1 - w si mpan = Abs( g1) g2 = w - w2 si mpen = Abs( g2) t ambah = si mpan + si mpen I f ( t ambah > 1000000) Then Pi ct ur e2. PSet ( i , j ) , RGB( 255, 255, 255) El se Pi ct ur e2. PSet ( i , j ) , RGB( 0, 0, 0) End I f Next j Next i End Sub 46 Gambar 3.17 Listing Program deteksi tepi
Pr i vat e Sub cmd_ni l ai _Cl i ck( ) Di mG As I nt eger Di mH As I nt eger Di mi As Si ngl e, a As Long, z As I nt eger Di mX As I nt eger Di mY As I nt eger Di mvi n( 0 To 319, 0 To 239) As I nt eger Di mvout ( 0 To 319, 0 To 239) As I nt eger Ambi l Pi ct ur e2, vi n Ambi l Pi ct ur e6, vout
' car i r at a- r at a For Y = 0 To 239 For X = 0 To 319 G = vi n( X, Y) H = vout ( X, Y)
z = Ab a = z ^ 2 s( G - H) i = i + a Next X Next Y
G = Sqr ( i ) Text G. Text = G
End Sub Gambar 3.18 Listing Program perhitungan jarak Euclidean Listing program pada proses pencocokan iris dalam database dapat dilihat pada gambar 1.19
Sub cmdku1_Cl i ck( ) Di mi As Si ngl e, e As I nt eger Di mn As Si ngl e, b As I nt eger Li st 1. Cl ear Li st 2. Cl ear b = 1 i = 1 Adodc1. Recor dSour ce = " sel ect * f r omki t i n wher e i d = ' " & i & " ' " Adodc1. Ref r esh Text 9. Text = Adodc1. Recor dset ! NAMAORANG Pi ct ur e6. Pi ct ur e = LoadPi ct ur e( Adodc1. Recor dset ! namaf i l e) cmdni l ai 1_Cl i ck e = Text 5. Text Li st 1. AddI t eme Li st 1. Ref r esh Li st 2. AddI t emText 9. Text Li st 2. Ref r esh
For i = 2 To 24 Adodc1. Recor dSour ce = " sel ect * f r omki t i n wher e i d = ' " & i & " ' " Adodc1. Ref r esh Text 9. Text = Adodc1. Recor dset ! NAMAORANG Pi ct ur e6. Pi ct ur e = LoadPi ct ur e( Adodc1. Recor dset ! namaf i l e) cmd ni l ai Cl i ck Gambar 3.19 Listing Program proses pengenalan 47 BAB IV PENGUJIAN DAN ANALISA
Pengujian ini dilakukan untuk mengetahui tingkat keberhasilan proyek akhir yang telah direncanakan. Selain itu dengan adanya pengujian dapat diketahui adanya kelemahan atau kekurangan sehingga dapat dilakukan beberapa perbaikan bila diperlukan.
4.1PENGUJIAN PERANGKAT LUNAK 4.1.1 Pengambilan Data Citra mata yang akan diproses pada pengolahan citra diambil secara offline dari harddisk. Format gambar yang digunakan adalah format gambar bitmap (*.bmp). Pada proyek akhir ini, ukuran pola mata yang diinputkan adalah 250 x 218 (pixel) yang berarti 250 pixel kolom dan 218 pixel baris, apabila ukuran mata yang diimput lebih dari ukuran yang telah disebutkan diatas, maka ukuran mata yang akan di input harus dijadikan sesuai dengan ukuran yang telah disebutkan diatas. Berikut ini adalah contoh mata yang akan diolah :
Gambar 4.1 Input pola iris
4.1.2 Pengolahan Citra c. Grayscale sebagaimana yang telah dijelaskan pada bab sebelumnya Grayscale digunakan untuk mengkonversi citra berwarna menjadi citra hitam putih sehingga 48 memudahkan proses pengolahan citra. Meskipun citra mata yang akan diproses sudah dalam bentuk grayscale tetapi pada perangkat lunak ini tetap diberikan program konversi ke grayscale untuk menghindari jika terdapat citra berwarna dan untuk mendapatkan hasil yang lebih akurat. Berikut adalah hasil dari proses grayscale. Hasil dari proses grayscale dapat dilihat pada gambar 4.2
Gambar 4.2 Hasil Grayscale
b.Kontras1 Kontras digunakan untuk mempertajam perbedaan warna pada citra, sehingga dengan menjalankan proses ini input mata yang diinput akan lebih diperjelas dan dipertajam pada citra, sehingga dalam gambar yang dimunculkan adalah warna warna yang gelap. Maka dari itu setelah dilakukan kontras maka tampak jelas bagian pupil, bulu mata dan batas-batas iris. Hal ini akan memudahkan proses selanjutnya yaitu menyamarkan bulu mata. Kontras yang rendah timbul akibat pencahayaan yang buruk atau efek non- linier sensor. Kontras menunjukkan tingkat distribusi tingkat pencahayaan antar satu pixel dengan pixel lain yang berdekatan. Dalam sistem kontrol yang menggunakan vision, kontras berarti kemudahan dalam membedakan antara satu bagian image dengan bagian lainnya. Semakin rendah nilai kontras, artinya antara satu bagian image dengan bagian lainnya menjadi sulit dibedakan. Dapat dilihat pada gambar 4.3
49
Gambar 4.3 Histogram pengaturan kontras
Kontras dapat diukur dengan melihat nilai histogram dari image. Semakin mengumpul bentuk grafik hitogram menunjukkan image tersebut memiliki kontras rendah. Kontras dapat diukur dengan mengalikan image asli dengan nilai tertentu. Dimana adalah nilai pengaturan kontras yang diinginkan. Berikut adalah contoh citra yang telah dikontraskan.
Gambar 4.4 Hasil Kontras1
c. Pelembutan Citra Proses pelembutan citra digunakan untuk menghilangkan bulu mata yang cukup berpengaruh pada proses pengolahan citra karena warna bulu mata sangat hitam, hampir sama hitamnya dengan pupil, karena itu jika tidak dihilangkan maka bulu mata akan menyulitkan dalam mendeteksi batas-batas pupil. Gambar 4.4 adalah citra mata yang telah dilakukan proses pelembutan citra dengan cara difilter dengan low pass filter.
50
Gambar 4.5 Hasil pelembutan citra
d. Kontras2 Kontras yang kedua ini digunakan untuk membedakan antara pupil dengan iris. Pada gambar dapat dilihat dengan jelas bahwa bagian yang paling mencolok dari citra iris adalah bagian pupil. Bagian selain pupil tampak samar karena telah diperhalus dengan LPF dan dikontraskan untuk yang kedua kalinya. Hal ini aka lebih mudah untuk mendeteksi pupil mata yang terlihat, sehingga dalam proses berikutnya dapat dijalankan dengan mudah, apabilah tidak dilakukan kontras yang kedua kali, maka pupil akan terlihat masih belum jelas. Berikut adalah hasil dari proses kontras 2 dapat di perhatikan pada gambar 4.5.
Gambar 4.6 Hasil Kontras2
51 e. Scanning Pupil Proses scanning iris dilakukan dengan terlebih dahulu menemukan titik tengah dari pupil. Setelah titik tengah pupil ditemukan maka proses selanjutnya adalah menentukan nilai threshold dari pupil. Penentuan nilai threshold ini dengan cara coba-coba (trial and error). Dari titik tengah pupil dilakukan scanning ke arah kanan hingga ditemukan batas antara pupil dengan daerah diluar pupil berdasarkan nilai threshold. Dengan cara ini dapat diketahui jarak dari titik tengah pupil ke batas pupil. Bentuk pupil diasumsikan lingkaran, sehingga diameter pupil adalah dua kali dari jarak tersebut sehingga batas-batas pupil dapat ditentukan. Hasil dari citra mata yang telah ditemukan batas pupilnya dapat dilihat pada gambar 4.6
Gambar 4.7 Hasil Scanning pupil
f. Buang Pupil Setelah pupil ditemukan maka pupil dihilangkan. Proses pembuangan pupil yaitu dengan cara membuat lingkaran dengan titik tengah dan diameter yang sama dengan titik tengah dan diameter pupil. Kemudian bagian pada lingkaran tersebut dihilangkan. Hasil dari proses tersebut tampak seperti pada gambar 4.7
52
Gambar 4.8 Hasil Buang Pupil
g. Integral Proyeksi Integral proyeksi dilakukan untuk menentukan nilai integral dari iris yang sudah tidak memiliki pupil. Pada proses ini ditentukan suatu bagian dari citra yang akan dihitung, yaitu bagian tengah citra. Bagian yang akan diproses ini diambil dalam bentuk persegi panjang. Bagian yang telah ditentukan tersebut dijumlahkan intensitas keabuan dari masing-masing pikselnya secara vertikal. Hasil dari penjumlahan ditunjukkan oleh grafik merah pada gambar 4.9
Gambar 4.9 Hasil Integral Proyeksi
53 h. Deteksi Iris Deteksi iris dilakukan berdasarkan nilai integral proyeksi iris Pendeteksian batas-batas ini dilakukan dengan cara menentukan nilai pembatas tertentu dari hasil coba-coba (trial and error). Jika nilai jarak antara satu titik dangan titik lain pada grafik merah melebihi batas yang telah ditentukan maka titik tersebut dianggap sebagai batas iris, berarti batas iris mata yang terlihat pada proses ini adalah sepanjang garis merah yang terlihat pada gambar, deteksi ini dilakukan dengan memberikan batasan batasan sebbelumnya untuk mengetahui batasan iris mata, sehingga secara akurat akan diperlihatkan batasan iris mata pada objek yang akan diteliti. Berikut ini adalah contoh citra mata yang telah ditentukan batas irisnya.
Gambar 4.10 Hasil Deteksi iris
i. Mask Iris Dari proses deteksi iris dapat diketahui besarnya diameter iris. Dengan diameter iris yang telah diketahui maka dapat dibuat mask iris. Hasil dari mask iris dapat dilihat pada gambar 4.11
54
Gambar 4.11 Mask Iris
j. Crop Iris Iris di crop sesuai dengan mask iris yang telah dibuat. Cara mengcrop iris adalah dengan mengalikan iris mask dengan citra mata. Karena nilai warna hitam adalah 0 maka citra yang dikalikan dengan hitam akan hilang karena bernilai 0. Sedangkan citra yang dikalikan dengan putih akan tetap seperti aslinya karena warna putih bernilai 1. Berikut adalah hasil dari proses crop iris.
Gambar 4.12Hasil Crop Iris
55 k. Pattern Form Hasil dari iris yang telah dicrop ditaransformasi geometri untuk menghilangkan lubang bekas pupil. Hal ini penting dilakukan karena besar kecilnya lubang yang tidak sama pada masing-masing iris akan mempengaruhi proses pengenalan iris. Pada proses transformasi geometri bagian tepi iris di tarik ke sumbu y yang lurus dengan titik tengah pupil. Hasil dari transformasi geometri dapat dilihat pada gambar 4.13
Gambar 4.13 Hasil pattern form
l. Mask pattern Setelah mendapatkan pattern form maka dibuat mask berbentuk persegi yang menunjukkan bagian pattern form yang akan dikenali. Berikut adalah bentuk mask yang telah dibuat.
Gambar 4.14Hasil mask pattern 56 m. Crop pattern Dari mask tersebut pattern form dicrop sehingga didapatkan citra sesuai dengan pola yang diinginkan. Hal itu bertujuan untuk menghilangkan bulu-bulu mata yang mempengaruhi proses pengenalan berikutnya. Berikut adalah gambar crop pattern.
Gambar 4.15Hasil crop pattern
n. Deteksi tepi Deteksi tepi digunakan untuk mengetahui tepi atau batasan antara tiap-tiap warna yang berbeda dari pattern form dan untuk menghilangkan noise sehingga memudahkan untuk proses pengenalan selanjutnya. Berikut adalah hasil dari deteksi tepi.
Gambar 4.16Hasil deteksi tepi 57 o. Pengenalan Pada proses ini hasil deteksi tepi pattern iris akan dibandingkan dengan hasil deteksi tepi pattern iris yang terdapat dalam database. Dan nilai d yang terkecil digunakan sebagai pengenalan sehingga akan diketahui identitas dari pemilik iris apabila iris yang diinputkan cocok dengan yang ada pada database.
4.2 PROSEDUR PENGUJIAN Pengujian perangkat lunak dilakukan secara offline yaitu mengambil citra mata dari file gambar dalam format bitmap (*.bmp). Pengujian dilakukan terhadap 8 delapan sample mata dengan 7 gambar mata yang sama pada setiap sample sehingga jumlah mata yang diuji berjumlah 54 gambar mata, tiga gambar mata dari masing-masing sample disimpan dalam database. Dimana tahap pengujiannya dilakukan dengan proses load file untuk kemudian dilakukan proses pengenalan pola yang terdiri dari proses pengolahan citra dan tahap pengujian itu sendiri.
4.3 HASIL PENGUJIAN Setelah program dijalankan dengan mengikuti langkah langkah yang telah di jelaskan pada bab sebelumnya, maka Berikut ini adalah hasil pengujian dari 54 sample mata yang dapat di lihat pada tabel 4.1.
tabel di bawah ini menjelaskan dimana hasil daripada analisa yang telah dilakukan untuk mendapatkan ketelitian dari pola iris mata sebagai salah satu acuan untuk mendeteksi wajah dimana di peroleh keakuratan data bawah 84, 99 % dari rata 58 rata perhitungan tingkat keberhasilan , sedangkan dari tingkat kegagalan didapatkan persentasenya yaitu sebesar 2,14%
Tabel 4.1. Pengujian tahap pengenalan pola iris DATA POSITIF DATA NEGATIF DATA SET JUMLAH TRUE H(%) JUMLAH FALSE H(%) MATA 014 7 7 100 47 0 0 MATA 024 7 4 57.1 47 0 0 MATA 029 7 7 100 47 0 0 MATA 088 7 7 100 47 6 12.8 MATA 021 7 5 71.4 47 0 0 MATA 003 5 4 80 49 0 0 MATA 108 7 6 85.7 47 0 0 Rata-rata keberhasilan 84.99 Rata-rata kesalahan 2.14
Keterangan : Data positif : Data uji sama dengan data set Data negatif : Data uji tidak sama dengan data set True positif : Data uji yang dikenali benar False negatif : Data uji yang dikenali salah H(%) : Prosentase keberhasilan/kesalahan
59 4.3 ANALISA
Dari hasil pengujian diketahui bahwa perangkat lunak dapat mengenali pemilik iris dengan tingkat keberhasilan 84.99%. Sedangkan pada data negatif menunjukkan bahwa perangkat lunak mempunyai kesalahan dalam mengenali iris sebagai iris orang lain dengan kesalahan sebesar 2.14 %. Cara menghitung prosentase ketelitiannya adalah dengan cara menghitung jumlah gambar yang benar/mirip kemudian dibandingkan dengan jumlah gambar yang seharusnya ada dalam sekumpulan gambar dikalikan seratus persen. Dari tabel diketahui bahwa beberapa pola iris yang telah diujikan, ternyata tidak semua iris bisa dikenali. Terdapat 3 sample mata yang dapat dikenali benar semua yaitu mata 014, 029,dan 088. Tetapi ada pula beberapa iris yang hanya dapat mengenali empat, lima atau enam sample saja. Mata 003 hanya berjumlah 5 data uji, hal ini disebabkan 2 diantaranya terjadi kesalahan pada proses pengolahan citra yaitu proses deteksi iris yang tidak sempurna sehingga pattern iris tidak didapatkan dan tidak bisa diproses pada proses identifikasi. Kesalahan pengenalan pada mata 024, 028, 021 dan mata 108 disebabkan adanya iris yang mempunyai pattern yang memiliki kemiripan dengan pattern yang lain sehingga sebuah mata tidak dikenali atau dikenali sebagai iris yang lain. 60 BAB V PENUTUP
Pada bab kelima ini merupakan akhir dari penyelesaian tugas akhir. Dari berbagai uraian dari bab-bab sebelumnya, ada beberapa hal yang perlu dicacat sebagai kesimpulan dan juga saran-saran untuk perbaikan dan pengembangan perangkat lunak ini dimasa yang akan datang.
5.1 KESIMPULAN Berdasarkan hasil-hasil yang telah dicapai selama perencanaan, pembuatan dan pengujian perangkat lunak proyek akhir ini maka dapat disimpulkan sebagai berikut : 1. Perangkat lunak bekerja dengan tingkat keberhasilan rata-rata 84.99% dan tingkat kesalahan rata-rata 2.14%. 2. Dari semua gambar mata yang telah diujikan, ternyata tidak semua citra iris bisa dikenali. Hal ini disebabkan pada proses pengolahan citra yang tidak sempurna sehingga tidak didapatkan pattern iris dan terdapat iris yang mempunyai pattern yang memiliki kemiripan dengan iris yang lain. 3. Hasil proyek akhir ini dapat digunakan untuk berbagai aplikasi yang berkaitan dengan proses pengendali akses maupun keamanan, misalnya sebagai password atau PIN, absensi dan sebagainya. 4. Sistem proses pengenalan pola iris mata ini harus mengikuti tata cara pengenalan secara bertahap tidak bisa di aplikasi/searching secara langsung.
61 5.2 SARAN Berdasarkan hasil yang telah dicapai dalam tugas akhir ini, dapat diberikan saran yang diperlukan dalam pengembangan dan penyempurnaan sistem ini : 1. Diharapkan sistem ini bisa dilakukan secara online yaitu dilakukan pengambilan gambar secara langsung melalui kamera digital. 2. Proses pengenalan user baru dapat dilakukan secara otomatis dengan mengisi data user baru dan dapat tersimpan dalam database secara langsung. 3. Perlu diperhitungkan jarak dan real timenya yang tersimpan dalam data base sehingga mudah dalam pencarian. 4. Proses searching secara cepat dan lebih tepat. 62 DAFTAR PUSTAKA
Eduardo Merloti, Paulo, (2004) Experiments on Human Iris recognition Using Error Backpropagation Artificial Neural Network, San Diego State University, Computer Science Departement. Munir, Rinaldi, (2004) Pengolahan Citra Digital dengan Pendekatan Algoritmik, Informatika, Bandung. Halvorson, Michael, (2003) Step by Step Microsoft Visual Basic 6.0 Professional, Jakarta, PT Gramedia. Ross Woodrow, (2005) Menilai Kepribadian Seseorang Melalui Wajah, Book Marks. R.L.Hsu and M.A.Mottaleb, (2002) Face Detection in Color Image, Appear In IEEE Tans. PAMI, Vol. 24, no.5, pp.696-706. Garcia Gines-Marteen, Alberto, E. Lopez Pedro, Face Detection Using Integral Projection Models, Dept. Informatica y Sistemas, Dept. De Ingenieria y tecnologia de Computer University of Murcia, Murcia Spain. Rafael C, Gonzales and Richard E, Woods, (2001) Digital Image Processing, 2nd edition, Prentice Hall. Riyanto Sigit, (2005) Sistem Pengenalan Ekspresi Wajah Secara Real Time, PENS-ITS. Riyanto Sigit, Dadet Pramudianto, Achmad Basuki, (2005) Pengolahan Citra Digital, Andi Offset. Achmad Basuki, Jozua F. Palandi, Fatchurrochman, (2005) Pengolahan Citra Digital Menggunakan Visual Basic, Penerbit Graha Ilmu, Yogyakarta.
Lampiran A-1 NILAI JARAK MATA Database menggunakan microsoft access yang berisi tabel ID, Nama orang, Nama file dan gambar. Database ini terdiri dari 8 dataset dan masing-masing dataset terdiri dari 3 gambar mata yang sama sehingga jumlah data yang tersimpan dalam database ini berjumlah 24 data.
Berikut adalah tampilan program dalam visual basic Tampilan Menu utama
Lampiran A-10 Hasil pengujian pada tabel diatas menunjukkan nilai jarak pada masing- masing gambar dengan gambar sample yang tersimpan dalam database. Nilai dengan warna yang berbeda menunjukkan nilai jarak yang terkecil yang digunakan sebagai pengenalan sehingga akan diketahui identitas dari pemilik iris.
=Data uji yang dikenali benar =Data uji yang dikenali salah
Lampiran B-1 LISTING PROGRAM
Option Explicit Dim xMinP As Integer, xMaxP As Integer, yMinP As Integer, yMaxP As Integer Dim CxP As Long, CyP As Long, nP As Long Dim Threshold As Byte Dim P(320) As Integer Dim rIris As Integer Dim rPupil As Integer Dim Cancel As Boolean Dim AveCol As Long Dim Saving As Boolean Dim flag As Boolean Dim c(255, 255) As COMPLEX Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long iFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long Lampiran B-2 nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Private Function ShowFileDialog1() As String Dim ofn As OPENFILENAME ofn.lStructSize =Len(ofn) ofn.lpstrInitialDir =App.Path & "\skins" ofn.hwndOwner =hWnd ofn.lpstrFilter ="Skin files (*.skn)" & Chr$(0) & "*.skn" & Chr$(0) & Chr(0) & Chr(0) ofn.lpstrFile =String(256, 0) ofn.nMaxFile =255 ofn.lpstrTitle ="Membuka File Skin" ofn.flags =&H800000 +&H1000 +&H8 +&H4 ofn.lpstrDefExt ="skn" +Chr(0) GetOpenFileName ofn If Mid(ofn.lpstrFile, 1, 1) <>Chr(0) Then ShowFileDialog1 =ofn.lpstrFile End Function Private Sub Tampil(Picture As PictureBox, Data() As Integer) Dim x As Integer, y As Integer, i As Integer For y =0 To 239 For x =0 To 319 i =Data(x, y) SetPixel Picture.hdc, x, y, RGB(i, i, i) Next Next Picture.Refresh Lampiran B-3 End Sub Private Sub Ambil(Picture As PictureBox, Data() As Integer) Dim x As Integer, y As Integer, i As Long Dim R As Integer, G As Integer, b As Integer For y =0 To 239 For x =0 To 319 i =GetPixel(Picture.hdc, x, y) R =i And 255 G =(i \ 256) And 255 b =(i \ &H10000) And 255 i =(R +G +b) \ 3 Data(x, y) =i Next Next End Sub Private Sub TampilW(Picture As PictureBox, Data() As Long) Dim x As Integer, y As Integer For y =0 To 239 For x =0 To 319 SetPixel Picture.hdc, x, y, Data(x, y) Next Next Picture.Refresh End Sub
Private Sub AmbilW(Picture As PictureBox, Data() As Long) Dim x As Integer, y As Integer For y =0 To 239 For x =0 To 319 Data(x, y) =GetPixel(Picture.hdc, x, y) Next Lampiran B-4 Next End Sub Program pengambilan Private Sub mnuOpen_Click(Index As Integer) Dim buka As Boolean Dim x As Integer, y As Integer CommonDialog1.Filter ="picture files(*.BMP;*.GIF;*.J PG;*.DIB)" CommonDialog1.ShowOpen Picture1.Picture =LoadPicture(CommonDialog1.FileName) End Sub Program menyimpan Private Sub mnuSave_Click(Index As Integer) Dim File As String ' holds the file name CommonDialog1.Filter ="picture files(*.BMP;*.GIF;*.J PG;*.DIB)" CommonDialog1.ShowSave 'display Save dialog If CommonDialog1.FileName <>"" Then File =CommonDialog1.FileName End If If Trim(File) = "" Then MsgBox "File Not Saved, Invalid Filename.", vbCritical, "Error": Exit Sub ' error in name Saving =True ' start saving Me.Caption ="Please Wait Saving....." Picture3.Picture =Picture3.Image 'set the picture to equal the image 'Tmp.Caption =File '-- get rid of any unwanted chars (ie chr13, or 0) If LCase(Right(File, 4) <>".bmp") Then File =File & ".bmp" ' add the bmp on the file Call SavePicture(Picture3.Picture, File) ' save the picture Saving =False 'no longer saving Me.Caption =" Data tersimpan....." End Sub
Lampiran B-5 Program grayscale Private Sub cmdGray_Click() Dim R As Integer, G As Integer, b As Integer Dim i As Long Dim x As Integer, y As Integer Dim vImage(0 To 319, 0 To 239) As Long Dim Gray(0 To 319, 0 To 239) As Integer AmbilW Picture1, vImage For y =0 To 239 For x =0 To 319 i =vImage(x, y) R =i And 255 G =(i \ 256) And 255 b =(i \ &H10000) And 255 i =(R +G +b) \ 3 Gray(x, y) =i Next Next Tampil Picture4, Gray End Sub Program kontras Private Sub cmdKontras_Click() Dim G As Integer Dim i As Single, m As Long, m2 As Long, n2 As Long Dim x As Integer, y As Integer, n As Long Dim vin(0 To 319, 0 To 239) As Integer Dim Kontras(0 To 319, 0 To 239) As Integer Ambil Picture4, vin m =255 For y =0 To 239 For x =0 To 319 Lampiran B-6 G =vin(x, y) i =i +G If G <m Then m =G Next Next i =i / (320#* 240#) For y =0 To 239 For x =0 To 319 G =vin(x, y) If G <i Then n =n +1 Else m2 =m2 +G n2 =n2 +1 End If Next Next m2 =m2 / n2 i =255 / (m2 - m) For y =0 To 239 For x =0 To 319 G =(vin(x, y) - m) * i If G >255 Then G =255 If G <0 Then G =0 Kontras(x, y) =G Next Next Tampil Picture4, Kontras End Sub
Lampiran B-7 Program LPF Private Sub cmdLPF_Click() Dim x As Integer, y As Integer, w As Long, G As Long Dim xx As Integer, yy As Integer Dim fx As Integer, fy As Integer Dim vin(0 To 319, 0 To 239) As Integer Dim LPF(0 To 319, 0 To 239) As Integer Ambil Picture4, vin For y =0 To 239 For x =0 To 319 G =0 For fy =-3 To 3 For fx =-3 To 3 xx =x +fx yy =y +fy If xx >=0 And xx <320 And yy >=0 And yy <240 Then G =G +vin(xx, yy) End If Next Next G =G / (7 * 7) LPF(x, y) =G Next Next Tampil Picture3, LPF End Sub Program kontras2 Private Sub cmdKontras2_Click() Dim G As Integer Dim i As Single, m As Long, m2 As Long, n2 As Long Lampiran B-8 Dim x As Integer, y As Integer, n As Long Dim vin(0 To 319, 0 To 239) As Integer Dim Kontras(0 To 319, 0 To 239) As Integer Ambil Picture3, vin m =255 For y =0 To 239 For x =0 To 319 G =vin(x, y) i =i +G If G <m Then m =G Next Next i =i / (320#* 240#) For y =0 To 239 For x =0 To 319 G =vin(x, y) If G <i Then n =n +1 Else m2 =m2 +G n2 =n2 +1 End If Next Next m2 =m2 / n2 i =255 / ((m2 +i) / 2 - m) For y =0 To 239 For x =0 To 319 G =(vin(x, y) - m) * i If G >255 Then G =255 If G <0 Then G =0 Lampiran B-9 Kontras(x, y) =G Next Next Tampil Picture2, Kontras End Sub Program cari pupil Private Sub cmdTitikTengahAwal_Click() Dim x As Integer, y As Integer, w As Long, G As Long, i As Single, a As Single Dim xx As Long, yy As Long, n As Long Dim vin(0 To 319, 0 To 239) As Integer Ambil Picture2, vin For y =0 To 239 For x =0 To 319 If vin(x, y) <16 Then xx =xx +x yy =yy +y n =n +1 End If Next Next CxP =xx / n CyP =yy / n Threshold =15 For x =CxP To 0 Step -1 i =i +1 If vin(x, CyP) >Threshold Then Exit For End If Next xMinP =x Lampiran B-10 xMaxP =CxP +i For y =CyP To 0 Step -1 a =a +1 If vin(CxP, y) >Threshold Then Exit For End If Next yMinP =y yMaxP =CyP + Tampil Picture4, vin Picture4.Line (CxP, 239)-(CxP, 0) Picture4.Line (0, CyP)-(319, CyP) xMinP =xMinP - 3: xMaxP =xMaxP +3 yMinP =yMinP - 3: yMaxP =yMaxP +3 Picture4.Line (xMinP, yMinP)-(xMaxP, yMaxP), , B Picture4.Refresh rPupil =(xMaxP +yMaxP - xMinP - yMinP) / 4 + End Sub Program buang pupil Private Sub cmdDPupil_Click() Dim Pupil(0 To 319, 0 To 239) As Integer Ambil Picture3, Pupil Tampil Picture4, Pupil Picture4.FillColor =vbWhite Picture4.FillStyle =vbSolid Picture4.Circle (CxP, CyP), rPupil +1, vbWhite Picture4.Refresh End Sub
Lampiran B-11 Program Integral proyeksi Private Sub cmdIntegralP_Click() Dim x As Integer, y As Integer, i As Integer Dim R As Integer, rr As Integer Dim s As Single Dim iris(0 To 319, 0 To 239) As Integer Ambil Picture4, iris For x =0 To 319 P(x) =0 Next For x =CxP - rPupil * 3 To CxP +rPupil * 3 For y =CyP - rPupil / 2 To CyP +rPupil / 2 i =iris(x, y) P(x) =P(x) +i i =i * 1.1 If i >255 Then i =255 iris(x, y) =i Next Next Tampil Picture2, iris For x =0 To 319 P(x) =P(x) / rPupil Next For x =CxP - rPupil * 3 To CxP +rPupil * 3 SetPixel Picture2.hdc, x, CyP - P(x) \ 5, RGB(255, 0, 0) Next Picture2.Refresh End Sub
Lampiran B-12 Program determinan iris Private Sub cmdDIris_Click() Dim Kiri As Integer, Kanan As Integer Dim x As Integer For x =xMinP - 6 To 5 Step -1 If P(x - 1) - P(x) >4 Then Kiri =x Exit For End If Next For x =xMaxP +6 To 314 If P(x +1) - P(x) >4 Then Kanan =x Exit For End If Next If Kiri <>0 And Kanan <>0 Then rIris =((CxP - Kiri) +(Kanan - CxP)) / 2 ElseIf Kiri <>0 Then rIris =CxP - Kiri ElseIf Kanan <>0 Then rIris =Kanan - CxP Else rIris =rPupil * 3 End If Picture2.Line (Kiri, 0)-(Kiri, 239) Picture2.Line (Kanan, 0)-(Kanan, 239) End Sub
Lampiran B-13 Program mask iris Private Sub cmdMaskIris_Click() Picture3.Line (0, 0)-(319, 239), vbBlack, BF Picture3.FillColor =vbWhite Picture3.FillStyle =vbSolid Picture3.Circle (CxP, CyP), rIris, vbWhite Picture3.FillColor =vbBlack Picture3.FillStyle =vbSolid Picture3.Circle (CxP, CyP), rPupil, vbBlack End Sub Program crop iris Private Sub cmdCropIris_Click() Dim Gray(0 To 319, 0 To 239) As Integer Dim Mask(0 To 319, 0 To 239) As Integer Dim iris(0 To 319, 0 To 239) As Integer Dim x As Integer, y As Integer Ambil Picture1, Gray Ambil Picture3, Mask For y =CyP - rIris To CyP +rIris For x =CxP - rIris To CxP +rIris iris(x +rIris - CxP, y +rIris - CyP) =Gray(x, y) And Mask(x, y) Next Next CxP =rIris CyP =rIris xMinP =rIris - rPupil yMinP =xMinP Tampil Picture3, iris End Sub
Lampiran B-14 Program pattern iris Private Sub cmdPattern_Click() Dim x As Integer, y As Integer, i As Integer Dim Pattern(0 To 319, 0 To 239) As Integer Ambil Picture3, Pattern For y =yMinP To yMaxP x =CxP While Pattern(x, y) =0 x =x - 1 Wend If CxP - x >0 Then For i =CxP - 1 To CxP - x Step -1 Pattern(i, y) =Pattern(x +i - CxP, y) Next For i =0 To CxP - x Pattern(i, y) =0 Next End If x =CxP While Pattern(x, y) =0 x =x +1 Wend If x - CxP >0 Then For i =CxP To 319 - x +CxP Pattern(i, y) =Pattern(x +i - CxP, y) Next End If Next Tampil Picture2, Pattern End Sub
Lampiran B-15 Program crop pattern Private Sub crop_Click() Dim crop(0 To 319, 0 To 239) As Integer Dim Mask(0 To 319, 0 To 239) As Integer Dim iris(0 To 319, 0 To 239) As Integer Dim x As Integer, y As Integer Ambil Picture2, crop Ambil Picture3, Mask For y =CyP - rIris To CyP +rIris For x =CxP - rIris To CxP +rIris iris(x +rIris - CxP, y +rIris - CyP) =crop(x, y) And Mask(x, y) Next Next CxP =rIris CyP =rIris xMinP =rIris - rPupil yMinP =xMinP
Tampil Picture2, iris End Sub Program deteksi tepi Private Sub cmddtepi1_Click() Dim i As Integer, j As Integer Dim w1 As Long, Dim w As Long, Dim w2 As Long Dim g1 As Long, Dim g2 As Long Dim simpen As Long, Dim simpan As Long, Dim tambah As Long For i =1 To Picture2.ScaleWidth For j =1 To Picture2.ScaleHeight w =Picture2.Point(i, j) w1 =Picture2.Point(i +1, j) w2 =Picture2.Point(i, j +1) Lampiran B-16 g1 =w1 - w simpan =Abs(g1) g2 =w - w2 simpen =Abs(g2) tambah =simpan +simpen If (tambah >1000000) Then Picture2.PSet (i, j), RGB(255, 255, 255) Else Picture2.PSet (i, j), RGB(0, 0, 0) End If Next j Next i End Sub Program nilai Euclidean Private Sub cmd_nilai_Click() Dim G As Integer, Dim H As Integer Dim i As Single, a As Long, z As Integer Dim x As Integer, Dim y As Integer Dim vin(0 To 319, 0 To 239) As Integer Dim vout(0 To 319, 0 To 239) As Integer Ambil Picture2, vin Ambil Picture6, vout For y =0 To 239 For x =0 To 319 G =vin(x, y) H =vout(x, y) z =Abs(G - H) a =z ^2 i =i +a Next x Next y Lampiran B-17 G =Sqr(i) TextG.Text =G End Sub Private Sub cmdnilai1_Click() Dim G As Integer, Dim H As Integer Dim i As Single, a As Long, z As Integer Dim x As Integer, Dim y As Integer Dim vin(0 To 319, 0 To 239) As Integer Dim vout(0 To 319, 0 To 239) As Integer Ambil Picture2, vin Ambil Picture6, vout For y =0 To 239 For x =0 To 319 G =vin(x, y) H =vout(x, y) z =Abs(G - H) a =z ^2 i =i +a Next x Next G =Sqr(i) Text5.Text =G End Sub Program sistem pengenalan Private Sub Command5_Click() Dim i As Integer, e As Integer, n As Single, b As Integer Dim G As Integer, a As Integer Dim vin(0 To 319, 0 To 239) As Integer Dim vout(0 To 319, 0 To 239) As Integer List1.Clear List2.Clear Lampiran B-18 b =1 i =1 Adodc1.RecordSource ="select * from kitin where id ='" & i & "'" Adodc1.Refresh Text9.Text =Adodc1.Recordset!NAMAORANG Picture6.Picture =LoadPicture(Adodc1.Recordset!namafile) cmdnilai1_Click e =Text5.Text List1.AddItem e List1.Refresh List2.AddItem Text9.Text List2.Refresh For i =2 To 24 Adodc1.RecordSource ="select * from kitin where id ='" & i & "'" Adodc1.Refresh Text9.Text =Adodc1.Recordset!NAMAORANG Picture6.Picture =LoadPicture(Adodc1.Recordset!namafile) cmd_nilai_Click List1.AddItem TextG.Text List1.Refresh List2.AddItem Text9.Text List2.Refresh If TextG.Text <e Then e =TextG.Text n =i b =n End If Next i Adodc1.RecordSource ="select * from kitin where id ='" & b & "'" Adodc1.Refresh Text7.Visible =True Lampiran B-19 Text7.Text =Adodc1.Recordset!NAMAORANG Picture5.Picture =LoadPicture(Adodc1.Recordset!GAMBAR) Text7.Refresh TextG.Text =e kit: End Sub Lampiran C-1 SAMPLE MATA Gambar mata dibawah ini digunakan dalam proyek akhir, terdiri dari 8 sample mata dengan 7 gambar mata yang sama pada setiap sample (7 kali pengambilan gambar) sehingga jumlah mata yang diuji berjumlah 56 gambar mata.
Pembedahan Skoliosis Lengkap Buku Panduan bagi Para Pasien: Melihat Secara Mendalam dan Tak Memihak ke dalam Apa yang Diharapkan Sebelum dan Selama Pembedahan Skoliosis