• Tidak ada hasil yang ditemukan

Sistem Pembanding Citra Pas Foto Dengan Metode Transformasi Wavelet

N/A
N/A
Protected

Academic year: 2016

Membagikan "Sistem Pembanding Citra Pas Foto Dengan Metode Transformasi Wavelet"

Copied!
75
0
0

Teks penuh

(1)

TUGAS AKHIR

SISTEM PEMBANDING CITRA PAS FOTO DENGAN METODE

TRANSFORMASI WAVELET

Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro

Oleh

MEDISON A. S

020402045

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

ABSTRAK

Perhatian peneliti dalam memanfaatkan teknologi biometrik pada kehidupan untuk mengidentifikasi manusia dewasa ini sudah semakin banyak. Pengenal wajah sebagai salah satu implementasi dari biometrik juga sudah cukup banyak dibahas. Salah satu metode pengenal wajah yang sudah ditemukan adalah metode transformasi Wavelet. Penggunaan transformasi Wavelet dimotivasi oleh hasil beberapa studi biologi tentang kemiripan sistem retina mata manusia dengan pemrosesan Wavelet. Transformasi Wavelet diketahui memiliki toleransi, tingkat akurasi dan kecepatan paling baik untuk perbandingan wajah pada transformasi Wavelet tipe Haar tingkat 3.

Tugas akhir ini dibuat untuk menguji keakuratan dan kecepatan dekomposisi Wavelet diskrit tipe Haar tingkat 3 melalui sebuah sistem aplikasi pengenal wajah yang dibuat dengan menggunakan bahasa pemrograman Matlab 7.

(3)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan karunia yang telah diberikan sehingga dapat menyelesaikan Tugas Akhir ini. Adapun Tugas Akhir ini dibuat untuk memenuhi syarat memperoleh gelar Sarjana Teknik di Departemen Teknik Elektro, Fakultas Teknik Universitas Sumatera Utara. Judul dari Tugas Akhir ini adalah “Sistem Pembanding Citra Pas Foto Dengan Metode Transformasi Wavelet”. Tugas Akhir ini penulis persembahkan teristimewa kepada ayahanda H. Simbolon, SEAk, ibunda dr. R. br. Sianturi, Simon Simbolon, Ika br. Simbolon selaku adik-adik penulis yang merupakan bagian hidup dari penulis dan juga Deman yang semuanya senantiasa mendoakan, mendukung dan memberi semangat kepada penulis. Dalam proses pembuatan Tugas Akhir ini penulis banyak menemukan masalah dan kesulitan. Namun berkat bantuan dan bimbingan dari berbagai pihak, Tugas Akhir ini akhirnya dapat selesai. Untuk itu penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Bapak Ir. Kasmir Tanjung, selaku Dosen Pembimbing Tugas Akhir, atas segala bimbingan, arahan dan solusi yang telah diberikan selama mengerjakan Tugas Akhir.

2. Bapak Ir. Satria Ginting, selaku Dosen Wali penulis, atas bimbingan dan arahan dalam menyelesaikan kuliah.

(4)

4. Bapak Fahmi, ST, M.Sc atas arahan dan masukan yang diberikan terhadap penulis.

5. Seluruh Staf Pengajar di Departemen Teknik Elektro Fakultas Teknik USU dan seluruh Karyawan di Departemen Teknik Elektro Fakultas Teknik USU. 6. Rekan-rekan mahasiswa Teknik Elektro terutama teman-teman old track

stambuk 2002, Junaris, Dodi, Badu, Bugi, Esron, Raymond, Adhi, Daniel, Chairil, Aritta, Joshua, Denny, Bismar, Yos, Hendra, Ardiansyah, Indra, Syafril, Agustin, Abu, Ipengadohar, Rahmat, Hamdani, Hatorangan, Deddy, Usman, Novri, Roger, Erwin, Robert, Sabariah, Echolima, Andriani, Silvia, Agus, Farid, Afli, Apriandi, Berry, Iqbal, Yandi Boy dan teman-teman 2002 lainnya.

7. Helmine Jane Rozeboom yang juga senantiasa berdoa, mendorong dan menemani penulis dalam mengerjakan Tugas Akhir ini.

8. Kepada rekan-rekan pengajar dan staff di Binus Center Gajah Mada, yang telah banyak memberi dorongan semangat kepada penulis.

9. Pihak-pihak lain yang tidak dapat diucapkan namanya satu persatu.

Berbagai usaha telah penulis lakukan demi agar Tugas Akhir ini dapat diselesaikan dengan baik, namun penulis menyadari bahwa Tugas Akhir ini belum sempurna, karena masih banyak terdapat kekurangan baik dari isi maupun susunannya. Saran dari pembaca sangat penulis harapkan.

(5)

Medan, November 2007 Penulis,

(6)

DAFTAR ISI

ABSTRAK... ... ... ... ... ...i

KATA PENGANTAR... ... ... ...ii

DAFTAR ISI.. ... ... ... ... ...v

DAFTAR GAMBAR. ... ... ... ...viii

DAFTAR TABEL... ... ... ... ...x

BAB I PENDAHULUAN... ... ...1

1.1Latar Belakang... ... ...1

1.2Tujuan Penulisan.. ... ...2

1.3Batasan Masalah.. ... ...3

1.4Sistematika Penulisan... ...3

BAB II DASAR TEORI DAN KOMPONEN PENDUKUNG... ...5

2.1 Penggambaran Citra Digital... ... ... ... ...5

2.1.1 Sampling... ... ... ... ...5

2.1.2 Mode Warna... ... ... ... ...5

2.1.3 Matriks Pixel Citra Digital... ... ... ...8

2.1.4 Tipe File Citra Digital... ... ... ... ...9

2.2 Pengolahan Matriks Pixel Citra Digital... ... ... ...9

2.2.1 Downsampling... ... ... ...10

2.2.2 Konvolusi dalam Fungsi Diskrit ... ... ...10

(7)

Wavelet Citra 2 Dimensi... .... ...17

2.2.2 Wavelet Diskrit Tipe Haar... ...19

2.4 Perbandingan Kemiripan... ... ... ... ...24

2.5 Matlab... ... ... ...25

BAB III PERANGKAT LUNAK SISTEM... ... ...27

3.1 Gambaran Umum. ... ... ... ...27

3.2 PPWdb... ... ... ... ... ...28

3.2.1 Tombol Ambil Foto... ... ...30

3.2.2 Tombol Input ke Database...31

3.2.3 Tombol Pengenal Wajah... ...32

3.2.4 Tombol Reset Database ... ...33

3.2.5 Tombol Keluar.. ... ... ...33

3.3 PPWfr... ... ... ... ... ...34

3.3.1 Tombol Ambil Foto... ... ...35

3.3.2 Tombol Cari di Database... ...36

3.3.3 Tombol Keluar.. ... ... ...38

BAB IV IMPLEMENTASI DAN PENGUJIAN HASIL... ...39

4.1 Implementasi... ... ... ... ...39

4.1.1 PPWdb.. ... ... ... ...39

4.1.2 PPWfr.... ... ... ... ...43

4.2 Pengujian Hasil.... ... ... ... ...47

(8)

5.1 Kesimpulan... ... ... ... ...51 5.2 Saran... ... ... ... ... ...51

(9)

DAFTAR GAMBAR

Gambar 2.1 Warna-Warna di Dalam Mode HSB... ... ... ...7

Gambar 2.2 Warna-Warna di Dalam Mode RGB... ... ... ...7

Gambar 2.3 Pola Penggambaran Matriks Sebuah Citra Digital... ...8

Gambar 2.4 Tahapan Dekomposisi Wavelet Diskrit Tingkat 1 pada Citra 2 Dimensi18 Gambar 2.5 Dekomposisi Wavelet Citra Pas Foto.... ... ... ...19

Gambar 2.6 Citra x yang Akan Didekomposisi Wavelet Tingkat 1.. ...20

Gambar 2.7 Tampilan Antarmuka Aplikasi Matlab 7... ... ...26

Gambar 3.1 Diagram Alir Aplikasi PPWdb.. ... ... ... ...29

Gambar 3.2 Tampilan Antarmuka PPWdb.... ... ... ... ...29

Gambar 3.3 Diagram Alir Ambil Foto... ... ... ... ...30

Gambar 3.4 Diagram Alir Input ke Database ... ... ... ...32

Gambar 3.5 Diagram Alir Reset Database ... ... ... ... ...33

Gambar 3.6 Diagram Alir PPWfr... ... ... ... ... ...34

Gambar 3.7 Tampilan Antarmuka PPWfr .... ... ... ... ...34

Gambar 3.8 Diagram Alir Ambil Foto ... ... ... ... ...35

Gambar 3.9 Diagram Alir Cari di Database ... ... ... ...37

Gambar 3.10 Diagram Alir Keluar ... ... ... ... ... ...38

Gambar 4.1 Tampilan Antarmuka Sewaktu Aplikasi PPWdb Baru Dijalankan ... ..40

Gambar 4.2 Tampilan Antarmuka Ketika Tombol Ambil Foto Ditekan... ...41

Gambar 4.3 Tampilan Ketika Citra Pas Foto Sudah Terpilih ... ...41

(10)

Mengambil Foto Terlebih Dahulu... ...43

Gambar 4.5 (b) Tampilan yang Muncul Ketika Tombol Pengenal Wajah Ditekan TanpaMengisi Database Terlebih Dahulu... ...43

Gambar 4.6 Tampilan Ketika Aplikasi PPWfr Pertama Kali Dijalankan... ...44

Gambar 4.7 Tampilan Ketika Tombol Ambil Foto Ditekan.. ...44

Gambar 4.8 Tampilan Ketika Foto Sudah Diambil. ...45

Gambar 4.9 Tampilan yang Muncul Ketika Tombol Cari di Database Baru Saja Ditekan. ...45

Gambar 4.10 Tampilan yang Muncul Ketika Proses Pencarian di Database Selesai Dilakukan... ...46

Gambar 4.11 Citra-Citra Pas Foto yang Digunakan Dalam Percobaan... ...47

Gambar 4.12 Citra Pas Foto Kategori A... ...48

Gambar 4.13 Citra Pas Foto Kategori B... ...48

Gambar 4.14 Citra Pas Foto Kategori C... ...49

(11)

DAFTAR TABEL

(12)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem keamanan dewasa ini semakin dibutuhkan dalam menghadapi gejolak sosial semakin hari semakin tidak menentu. Pengembangan sistem keamanan ini dilakukan dari berbagai aspek, salah satunya dari aspek teknologi. Mulai dari penggunaan kata sandi untuk memakai suatu alat, alarm untuk kendaraan bermotor, sampai detektor logam untuk mencari senjata berbahaya. Salah satu pengembangan aspek teknologi yang diyakini memiliki tingkat keamanan cukup baik adalah dengan menggunakan sistem biometrik.

Biometrik menggunakan informasi-informasi yang bersifat biologis sebagai identitas. Ide dasar dari biometrik adalah bahwa tubuh manusia memiliki bagian-bagian unik yang membedakan seseorang dengan yang lainnya. Sistem biometrik yang ada antara lain :

1. Pengenal Wajah 2. Pemindai Sidik Jari 3. Pemindai Retina 4. Identifikasi Suara

(13)

seseorang bisa mengambil foto orang yang hendak diidentifikasi tersebut secara diam-diam dan kemudian diekstraksi oleh sistem.

Sistem biometrik pengenal wajah ini dapat diaplikasikan pada berbagai bidang, khususnya bidang keamanan, yaitu:

1. Sebagai password untuk mengakses suatu sistem

2. Mencari orang-orang yang terdaftar di dalam Daftar Pencarian Orang (DPO) dari pihak kepolisian

3. Dan lain-lain.

Metode pengenal wajah yang sudah ditemukan sangat bervariasi. Tetapi para peneliti berpendapat bahwa yang terbaik adalah metode dekomposisi Wavelet diskrit tipe Haar tingkat 3. Hal ini dimotivasi oleh hasil beberapa studi biologi tentang kemiripan sistem retina mata manusia dengan pemrosesan dekomposisi Wavelet, dimana dekomposisi Wavelet diskrit tipe Haar tingkat 3 diketahui memiliki nilai toleransi, tingkat akurasi dan kecepatan yang paling baik. Bahkan sebuah sumber menyebutkan bahwa sebuah lembaga keamanan yang sangat terkenal juga menggunakan metode ini untuk pola pengenalan sidik jari pada sistem keamanan mereka.

1.2 Tujuan Penulisan

Adapun penulisan ini bertujuan :

1. Memenuhi salah satu syarat untuk menyelesaikan pendidikan program sarjana Teknik Elektro di Universitas Sumatera Utara.

2. Untuk menerapkan ilmu yang telah diperoleh semasa kuliah baik teori maupun praktek khususnya dalam bidang teknik komputer.

(14)

1.3 Batasan Masalah

Agar masalah yang ditulis dalam Tugas Akhir tidak terlalu luas dan menyimpang dari topik yang ada, maka penulis perlu membatasi permasalahan sebagai berikut :

1. Media yang akan dibandingkan adalah citra pas foto yang tampak seluruh wajah.

2. Citra pas foto yang dibandingkan berupa file pas foto dengan format .jpeg, mode grayscale 8 bit.

3. Teknik – teknik deteksi wajah tidak dibahas.

4. Metode pembanding citra pas foto yang dibahas hanya metode dekomposisi Wavelet diskrit tipe Haar.

1.4 Sistematika Penulisan

Tugas Akhir ini disusun berdasarkan kerangka penulisan sebagai berikut : Bab I : PENDAHULUAN

Pada bab ini akan diuraikan mengenai latar belakang, tujuan, pembatasan masalah dan sistematika penulisan.

Bab II : DASAR TEORI DAN KOMPONEN PENDUKUNG

Membahas dasar teori dan komponen pendukung yang akan digunakan dalam pembuatan perangkat lunak.

Bab III : PERANGKAT LUNAK SISTEM

Pada bab ini akan dijelaskan mengenai cara kerja perangkat lunak mulai dari algoritma sampai tampilan antarmukanya. Bab IV : IMPLEMENTASI DAN PENGUJIAN HASIL

(15)

Bab V : KESIMPULAN DAN SARAN

(16)

BAB II

DASAR TEORI DAN KOMPONEN PENDUKUNG

2.1 Penggambaran Citra Digital

Sebuah citra 2 dimensi analog tidak bisa diolah lebih lanjut sebelum diubah terlebih dahulu ke dalam bentuk citra 2 dimensi digital. Bentuk pengolahan citra yang dimaksud diantaranya adalah proses kompresi gambar, pemberian efek, dekomposisi dan lain-lain. Sub bab ini akan membahas proses konversi dari citra 2 dimensi analog ke digital.

2.1.1 Sampling

Sampling adalah proses pencuplikan data setiap selang waktu. Sampling mengubah sebuah sinyal kontinu menjadi sebuah sinyal diskrit. Proses sampling kadang juga disebut proses digitisasi. Di dalam pengolahan citra, proses sampling digunakan untuk menentukan kerapatan warna pada tiap wilayah pada citra kontinu. Pada proses sampling biasanya dicari warna rata-rata dari wilayah tertentu dari gambar analog. Warna rata-rata tersebut kemudian dibulatkan, dan dibuat ke dalam suatu elemen gambar atau yang biasa disebut picture element (pixel). Satu pixel hanya mengandung satu nilai kerapatan warna.

2.1.2 Mode Warna

(17)

1. Mode HSB (Hue Saturation Brightness) 2. Mode RGB (Red Green Blue)

3. Mode CMYK (Cyan Magenta Yellow blacK) 4. Mode Grayscale

1. Mode HSB (Hue Saturation Brightness)

Mode HSB berdasar pada persepsi warna menurut manusia. Pada mode ini semua warna dibagi menjadi tiga karakteristik :

a. Hue adalah panjang gelombang sinar yang dipantulkan dari atau yang dikirimkan melalui sebuah objek.

b. Saturation kadang-kadang disebut chroma adalah kekuatan atau kemurnian warna.

c. Brightness adalah terang relatif dan gelap relatif yang diukur dari 0% (sangat gelap) sampai 100% (sangat terang).

(18)

Mode warna ini juga terkadang disebut HSV (Hue Saturation Value) dimana value memiliki pengertian yang sama dengan brightness.

2. Mode RGB (Red Green Blue)

Pewarnaan dengan memadukan atau menggabungkan tiga komponen dasar dari cahaya pada proporsi dan kerapatan tertentu. Komponen ini disebut warna primer, yaitu :

a. Merah (Red) b. Hijau (Green) c. Biru (Blue)

Jika warna-warna itu digabung akan menjadi additive color yaitu warna putih. Mode warna ini biasanya digunakan pada monitor komputer.

Putih

(19)

3. Mode CMYK (Cyan Magenta Yellow blacK)

Mode CMYK berbasis pada kualitas penyerapan cahaya. Jika warna Cyan (C), Magenta (M) dan Yellow (Y) dikombinasikan akan membentuk warna black (K) atau disebut substractive color. Mode warna ini biasanya digunakan pada mesin cetak seperti printer.

4. Mode Grayscale

Mode ini menggunakan lebih dari 256 jenis warna abu-abu untuk mewakili sebuah gambar untuk 8 bit (28). Tiap pixel pada mode grayscale hanya mempunyai nilai brightness, yang besarnya antara 0 (hitam) dan 255 (putih). Atau dapat pula diukur dalam persentasi (0% sama dengan putih dan 100% sama dengan hitam).

2.1.3 Matriks Pixel Citra Digital

Tingkat kerapatan warna pada tiap pixel citra 2 dimensi yang didapat dari proses sebelumnya digambarkan menjadi sebuah matriks NxM dimana M merupakan banyaknya pixel yang terkandung sepanjang sumbu x dan N merupakan banyaknya pixel sepanjang sumbu y dari sebuah citra.

(20)

2.1.4 Tipe File Citra Digital

File citra digital memiliki banyak tipe untuk penyimpanannya di dalam media penyimpanan. Hal ini dapat disesuaikan dengan kebutuhan pengguna mulai dari informasi warna yang diberikan sampai kepada ukuran file untuk tiap tipe. Tipe file citra digital yang sering digunakan lengkap dengan variannya dapat dilihat pada Tabel 2.1.

Tabel 2.1 Tipe File Citra yang Umum Digunakan

Tipe Nama Lengkap Varian

Bmp Windows Bitmap (BMP) 1 bit, 4 bit, 8 bit, 16 bit, 24 bit, dan 32-bit citra tidak terkompresi dan 4-bit dan 8-bit citra terkompresi

Gif Graphics Interchange Format Citra 1-bit dan 8-bit

Jpg atau jpeg Joint Photographic Experts Group

8,12 dan 16 bit untuk citra grayscale dan 24 dan 26 bit untuk RGB.

2.2 Pengolahan Matriks Pixel Citra Digital

(21)

2.2.1 Downsampling

Downsampling adalah proses pengurangan laju sampling data dari sinyal input. Laju sampling data dalam hal ini adalah banyaknya selang pencuplikan baris atau kolom yang diambil dari suatu citra. Untuk x yang merupakan matriks seperti di bawah ini,

x =

[

1 2 3 4 5 6 7 8 9 0

]

maka hasil downsampling kolom dengan laju sampling 3 adalah

xs =

[

1 4 7 0

]

Downsampling pada sebuah citra digital berguna untuk melakukan proses kompresi data. Downsampling juga dibutuhkan untuk melakukan proses dekomposisi citra menjadi citra pendekatan dan citra detil, yang akan dijelaskan pada sub bab berikutnya.

2.2.2 Konvolusi Dalam Fungsi Diskrit

Konvolusi adalah jumlah berbobot dari pixel-pixel di sekeliling pixel sumber. Bobot ditentukan oleh matriks kecil yang disebut mask konvolusi atau kernel konvolusi. Konvolusi diskrit sangat banyak dipergunakan dalam pengolahan citra untuk :

(22)

Proses konvolusi dalam fungsi diskrit untuk citra 2 dimensi dapat diilustrasikan sebagai berikut.

Misalkan x adalah sebuah matriks berdimensi 5x5 yang akan dikonvolusi dengan matriks g yang berdimensi 3x3 yang berfungsi sebagai kernel konvolusi.

x = g =

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 p p p p p p p p p p p p p p p p p p p p p p p p p ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 9 8 7 6 5 4 3 2 1 a a a a a a a a a

Langkah pertama yang dilakukan adalah dengan memutar kernel g 180° pada porosnya, sehingga kernel g sekarang sudah berubah menjadi seperti di bawah.

g = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 1 2 3 4 5 6 7 8 9 a a a a a a a a a

Setelah kernel diputar, maka titik pusat g diletakkan tepat di titik pusat x. Jadi dalam hal ini, a5 dari matriks g diletakkan tepat di p13 dari x. Dengan posisi seperti itu, maka

dengan sendirinya a1 terletak pada p19, a2 pada p18 dan seterusnya.

(23)

Proses konvolusi akan menghasilkan nilai yang baru pada tempat dimana poros kernel berada. Dengan kondisi ini, karena poros dari kernel adalah a5, maka akan dihasilkan

nilai baru pada p13, dengan persamaan :

p13 = (p7a9) + (p8a8) + (p9a7) + (p12a6) + (p13a5) + (p14a4) + (p17a3) + (p18a2) + (p19a1)

Setelah didapat nilai p13 hasil konvolusi, maka posisi matrik g digeser ke kanan

sebanyak satu langkah. Dalam hal ini, a5 digeser ke posisi p14. Dengan bergesernya

a5, maka a1 sampai a9 juga ikut bergeser ke kanan sebanyak satu langkah.

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 25 24 23 22 21 1 20 2 19 3 18 17 16 4 15 5 14 6 13 12 11 7 10 8 9 9 8 7 6 5 4 3 2 1 / / / / / / / / / p p p p p a p a p a p p p a p a p a p p p a p a p a p p p p p p p p

Langkah berikutnya adalah mencari nilai p14 hasil konvolusi, dengan persamaan :

p14 = (p8a9) + (p9a8) + (p10a7) + (p13a6) + (p14a5) + (p15a4) + (p18a3) + (p19a2) + (p20a1)

p13 yang digunakan dalam persamaan ini adalah nilai p13 sebelum dikonvolusi.

Setelah nilai p14 hasil konvolusi diperoleh, maka matriks g digeser lagi ke posisi yang

(24)

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ? ?/ ?/ ?/ ? / / / / / / 1 4 7 25 24 23 22 21 2 20 3 19 18 17 16 5 15 6 14 13 12 11 8 10 9 9 8 7 6 5 4 3 2 1 a a a p p p p p a p a p p p p a p a p p p p a p a p p p p p p p p p

Jika kernel sudah mencapai keadaan demikian, maka a7, a4, dan a1 akan dikalikan

dengan nol. Nilai nol dalam hal ini disebut juga dengan zero-padded edges. Hal ini akan sangat merugikan, karena dengan metode seperti itu, maka p10, p15 dan p20 akan

memperoleh hasil konvolusi yang tidak lengkap, karena nilai konvolusinya tidak diperoleh dari keseluruhan nilai kernel. Hal ini akan menimbulkan kecacatan data pada pinggiran matriks hasil konvolusi.

Untuk mengatasi hal ini, maka salah satu metode yang dapat digunakan adalah dengan menyalin kolom pertama ke sebelah kiri kolom pertama dan menyalin kolom terakhir ke sebelah kanan kolom terakhir. Hasil penyalinannya adalah seperti di bawah.

a = a’ =

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 3 8 8 3 2 1 6 8 9 2 2 2 3 4 6 4 8 9 7 5 5 8 9 4 1 6 9 3 5 4 1 8 5 9 9 6 ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 3 6 3 7 1 1 3 8 8 3 2 1 6 8 9 2 2 2 3 4 6 4 8 9 7 5 5 8 9 4 1 6 9 3 5 4 1 8 5 9 9 6 1 2 9 4 4 6

Hal yang serupa juga dapat dilakukan pada baris jika diperlukan.

(25)

kata lain sudah diluar dari matriks a, maka tidak akan merusak hasil perhitungan. Setelah dilakukan konvolusi pada a’, maka kolom pertama dan terakhir dari hasil konvolusi dapat dihapus kembali.

Konvolusi juga dapat dilakukan hanya pada baris atau hanya pada kolom dari matriks citra 2 dimensi. Proses yang dilakukan sebenarnya adalah proses konvolusi 1 dimensi terhadap setiap baris atau kolom dari matriks citra. Misalkan x adalah matriks berdimensi 5x5 dan g adalah matriks berdimensi 1x2 yang akan berfungsi sebagai kernel.

x = g =

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 p p p p p p p p p p p p p p p p p p p p p p p p p

[

a1 a2

]

Seperti yang sudah dijelaskan sebelumnya, maka kernel g harus diputar 180° terlebih dahulu.

g’ =

[

a2 a1

]

(26)

Untuk konvolusi kolom, setelah diputar, kernel ditranspos terlebih dahulu dan beroperasi hanya pada kolom. Dengan kata lain, kernel tidak bisa berpindah lebih jauh jika sudah mencapai ujung dari baris.

x = g =

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 9 8 7 6 5 4 3 2 1

[

10 100

]

Jika proses yang dilakukan adalah konvolusi baris, maka hasilnya adalah sebagai berikut. ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 900 890 780 70 600 560 450 40 300 230 120 10

Sementara jika proses yang dilakukan adalah konvolusi kolom, maka hasilnya adalah sebagai berikut. ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 900 800 700 690 580 470 360 250 140 30 20 10 2.3 Wavelet

(27)

dijumpai pada Transformasi Fourier. Salah satu kelemahan Transformasi Fourier adalah bahwa transformasi tersebut hanya memiliki fungsi frekuensi. Tidak ada fungsi waktu dan jarak. Hal ini berarti bahwa jika sebuah sinyal ditransformasikan, kapan dan dimana sinyal tersebut muncul tidak bisa dilihat, walaupun diketahui bahwa semua sinyal itu ada. Dengan transformasi Wavelet, semua fungsi itu dapat dilihat secara simultan.

Transformasi Wavelet memiliki beberapa tipe yang masing-masing memiliki keunggulannya tersendiri dalam berbagai bidang. Tipe-tipe tersebut dapat dilihat pada Tabel 2.2.

Tabel 2.2 Tipe-Tipe Transformasi Wavelet

Tipe Wavelet Nama Lengkap

‘haar’ Haar wavelet 'db' Daubechies wavelets

'sym' Symlets

'coif' Coiflets

'bior' Biorthogonal wavelets 'rbio' Reverse biorthogonal wavelets 'meyr' Meyer wavelet

'dmey' Discrete approximation of Meyer wavelet 'gaus' Gaussian wavelets

(28)

Tabel 2.2 Tipe – Tipe Transformasi Wavelet (Lanjutan)

Tipe Wavelet Nama Lengkap

'shan' Shannon wavelets 'fbsp' Frequency B-Spline wavelets 'cmor' Complex Morlet wavelets

2.3.1 Transformasi Wavelet Diskrit untuk Dekomposisi Citra 2 Dimensi

Pada proses dekomposisi citra 2 dimensi dengan transformasi wavelet diskrit, matriks citra dipilah-pilah dan diproses dengan filter low pass dan high pass sehingga menghasilkan sub citra pendekatan aj dan sub citra detil hj, vj dan dj. Tahapan

dekomposisi wavelet tingkat 1 dapat dilihat pada Gambar 2.4.

downsample kolom : ambil kolom genap

(29)

konvolusi kolom dengan filter high pass

konvolusi kolom dengan filter low pass

konvolusi baris dengan filter high pass

konvolusi baris dengan filter low pass

Gambar 2.4 Tahapan Dekomposisi Wavelet Diskrit Tingkat 1 pada Citra 2 Dimensi

Untuk dekomposisi dengan n tingkatan, maka dekomposisi tingkat selanjutnya dilakukan dengan memakai output aj dari dekomposisi tingkat sebelumnya sebagai

input. Jadi aj akan didekomposisi lagi menjadi aj+1, hj+1, vj+1 dan dj+1. Matriks an, hn,

vn dan dn masing-masing diurutkan menjadi 1 kolom dan ditranspos menjadi 1 baris.

Hasil akhir dari dekomposisi tingkat n dari citra 2 dimensi adalah matriks C, sementara S adalah matriks yang berisi ukuran dari matriks x dalam setiap tahap dekomposisi, dimana :

C =

[

an hn vn dn ... hj+1 vj+1 dj+1 aj hj vj dj

]

dan
(30)

Matriks C nantinya digunakan sebagai matriks identitas untuk proses pengenalan wajah, sementara S digunakan untuk proses rekonstruksi citra. Gambaran citra 2 dimensi sebelum dan sesudah didekomposisi Wavelet tingkat 3 dapat dilihat pada Gambar 2.5.

Citra setelah ditransformasi Wavelet

tingkat 3

[image:30.595.92.500.207.525.2]

Citra Awal

Gambar 2.5 Dekomposisi Wavelet Citra Pas Foto

2.3.2 Wavelet Diskrit Tipe Haar

Wavelet diskrit tipe Haar mendekomposisikan sinyal dengan nilai filter low pass f dan filter high pass g, dimana :

f =

[

1 1

]

2

1

=

[

0,7071 0,7071

]

dan

g =

[

1 1

]

2

1

(31)
[image:31.595.192.403.153.329.2]

Misalkan citra x yang ditampilkan pada Gambar 2.6 akan didekomposisi dengan menggunakan dekomposisi Wavelet Diskrit tipe Haar tingkat 1.

Gambar 2.6 Citra x yang Akan Didekomposisi Wavelet Tingkat 1

Citra x berdimensi 5x5 pixel dan menggunakan mode warna grayscale 8 bit, maka matriks pixel x dapat dibuat sebagai berikut :

x =

⎥ ⎥ ⎥ ⎥ ⎥ ⎥

⎦ ⎤

⎢ ⎢ ⎢ ⎢ ⎢ ⎢

⎣ ⎡

10 12 8 8 8

22 2 45 43 27

40 9 10 17 11

1 20 7 7 16

12 10 17 25 33

Karena tipe dekomposisi yang digunakan saat ini adalah tipe Haar, maka

f =

[

0,7071 0,7071

]

dan g =

[

−0,7071 0,7071

]

(32)

Matriks x akan dikonvolusi baris dengan f. Maka untuk menghindari kecacatan hasil perhitungan pada pinggiran matriks, maka matriks x diubah menjadi :

x = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 10 22 40 1 12 10 12 8 8 8 22 2 45 43 27 40 9 10 17 11 1 20 7 7 16 12 10 17 25 33 8 27 11 16 33

p adalah matriks hasil konvolusi baris antara x dan f. Maka matriks p adalah sebagai berikut : p= ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 0711 , 7 1421 , 14 5563 , 15 1421 , 14 3137 , 11 3137 , 11 3137 , 11 6569 , 5 5563 , 15 1127 , 31 9706 , 16 2340 , 33 2254 , 62 4975 , 49 1838 , 38 0919 , 19 2843 , 28 5685 , 56 6482 , 34 4350 , 13 0919 , 19 7990 , 19 5563 , 15 7782 , 7 7071 , 0 4142 , 1 8492 , 14 0919 , 19 8995 , 9 2635 , 16 6274 , 22 3137 , 11 4853 , 8 9706 , 16 5563 , 15 0919 , 19 6985 , 29 0122 , 41 6690 , 46 3345 , 23

Karena sebelumnya kolom pertama dan kolom kelima dari p sudah disalin terlebih dahulu, maka kolom pertama dan kolom terakhir dari p tidak diperlukan lagi dan sudah dapat dihapus. Isinya disalin ke dalam matriks z.

(33)

z digunakan untuk menghitung nilai aj dan hj. Tetapi sebelum dilakukan perhitungan

terhadap nilai aj dan hj, terlebih dahulu dilakukan downsampling terhadap baris dari

matriks z, sehingga :

z = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 1421 , 14 1421 , 14 3137 , 11 1127 , 31 2340 , 33 4975 , 49 5685 , 56 4350 , 13 7990 , 19 4142 , 1 0919 , 19 2635 , 16 9706 , 16 0919 , 19 0122 , 41

Tahap selanjutnya adalah proses konvolusi kolom matriks z dengan f. Tetapi untuk menghindari kecacatan data, maka baris awal dan akhir matriks z disalin lagi, sehingga menjadi seperti berikut :

z = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 1421 , 14 1421 , 14 3137 , 11 1421 , 14 1421 , 14 3137 , 11 1127 , 31 2340 , 33 4975 , 49 5685 , 56 4350 , 13 7990 , 19 4142 , 1 0919 , 19 2635 , 16 9706 , 16 0919 , 19 0122 , 41 9706 , 16 0919 , 19 0122 , 41

(34)

Baris pada matriks y kemudian di-downsample, sehingga matriks y sekarang adalah sebagai berikut. y = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 20 20 16 62 33 49 13 27 5 , 40

Matriks y sekarang adalah sub citra pendekatan atau aj. Untuk menghitung hj juga

dapat dilakukan dengan cara yang sama, hanya saja pada saat melakukan konvolusi kolom pada matriks z, filter yang digunakan adalah filter high pass atau g, sehingga :

aj = dan h

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 20 20 16 62 33 49 13 27 5 , 40

j =

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − 0 0 0 18 14 21 11 0 5 , 17

Cara sebelumnya diulang lagi untuk menghasilkan matriks vj dan dj. Hanya saja kali

ini matriks p adalah konvolusi baris antara x dan g, kemudian vj adalah hasil

konvolusi kolom antara z dan f sementara dj adalah hasil konvolusi kolom antara z dan

g, sehingga diperoleh :

vj = dan d

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − 0 4 0 0 22 11 0 3 5 , 8

j =

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − 0 0 0 0 21 5 0 10 5 , 0

Matriks aj, hj, vj dan dj masing-masing disusun menjadi satu kolom dan ditranspos

(35)

aj =

[

40,5 49 16 27 33 20 13 62 20

]

hj =

[

17,5 −21 0 0 −14 0 11 18 0

]

vj =

[

8,5 −11 0 −3 22 −4 0 0 0

]

dj =

[

−0,5 5 0 10 −21 0 0 0 0

]

maka :

C =

[

40,5 49 16 L 20 17,5 −21 0 L 0 8,5 −11 0 L 0 −0,5 5 0 L 0

]

dan

S =

⎥ ⎥ ⎥ ⎦ ⎤

⎢ ⎢ ⎢ ⎣ ⎡

5 5

3 3

3 3

2.4 Perbandingan Kemiripan

Dalam membandingkan kemiripan dua buah citra k dan l , elemen yang digunakan sebagai pembanding adalah matriks C yang didapat dari hasil dekomposisi masing-masing citra tersebut. Misalkan Ck dan Cl adalah matriks hasil dekomposisi citra k dan

l, dengan :

Ck =

[

10 −2 12 5 −8 0 1 1 0 9 17

]

dan

Cl =

[

18 0 0 1 7 5 0 12 0 9 2

]

Maka langkah untuk membandingkannya adalah :

1. Matriks Ck dan Cl dicari nilai selisih antar pasangan datanya, yang

(36)

d =

[

−8 −2 12 4 −15 −5 1 −11 0 0 15

]

2. Matriks d kemudian dicari nilai mean datanya, yang kemudian menghasilkan matriks e yang berdimensi 1x1.

e =

[

−0,8182

]

3. Untuk memudahkan perhitungan, matriks e kemudian dicari nilai absolut datanya sehingga menghasilkan matriks w yang juga berdimensi 1x1.

w =

[

0,8182

]

Matriks w merupakan hasil pembandingan kedua input citra. Karena yang dibandingkan adalah 2 citra yang tidak sama persis, maka dibutuhkan nilai toleransi. Batasan dimana kedua buah citra pas foto dinyatakan mirip atau tidak ditentukan oleh nilai toleransi tersebut. Semakin kecil nilai w, maka semakin besar persentasi kemiripan kedua citra pas foto yang dibandingkan.

2.5 Matlab

(37)

Pada aplikasi Matlab 7 terdapat beberapa tipe data yang sering digunakan, yaitu : 1. *.m atau m-file

adalah sekumpulan instruksi yang dapat dijalankan dalam sekali panggil. 2. *.mat

adalah format database sederhana yang berbentuk matriks. 3. *.fig

[image:37.595.97.502.292.599.2]

adalah format penyimpanan tampilan GUI (Graphical User Interface).

Gambar 2.7 Tampilan Antarmuka Aplikasi Matlab 7

(38)

BAB III

PERANGKAT LUNAK SISTEM

3.1 Gambaran Umum

Secara umum, sistem pembanding citra pas foto ini terdiri dari dua aplikasi, yaitu PPWdb dan PPWfr. PPWdb bertujuan untuk mengambil citra pas foto dan kemudian memasukkan matriks hasil dekomposisinya ke database, sedangkan PPWfr bertujuan untuk mengambil citra pas foto dan kemudian membandingkannya dengan yang ada di database untuk mencari kemiripan citra pembanding dengan citra di database. Di dalam PPWdb digunakan berbagai variabel, antara lain fn, xn dan js. Variabel js

adalah variabel yang digunakan sebagai tempat penyimpanan informasi banyaknya citra pas foto yang sudah tersimpan di database. Nilai awal js adalah 1, yang artinya belum ada citra pas foto yang disimpan di database. Setiap ada penyimpanan citra pas foto, maka nilai js akan ditambah dengan 1. Dalam hal ini, citra pas foto yang dapat disimpan hanya sebanyak maksimum 5 buah. Citra pas foto yang digunakan dalam aplikasi ini harus berukuran 112x92 pixel, mode warna grayscale 8 bit dan tipe file-nya adalah .jpg. fn adalah variabel yang merupakan hasil dekomposisi dari citra xn.

Dalam hal ini, fn merupakan matriks berdimensi 1x10332. 1x10332 didapat dari

proses dekomposisi Wavelet diskrit tipe Haar tingkat 3 untuk citra 2 dimensi 112x92 pixel. Untuk lebih memudahkan algoritma aplikasi, maka pada awal aplikasi fn

diberikan nilai awal matriks nol berukuran 1x10332.

Aplikasi PPWfr hanya menggunakan variabel x, fb dan hsln. x adalah matriks pixel

dari citra pas foto pembanding, fb adalah variabel yang berisi matriks hasil

(39)

hasil dari proses perbandingan fn dan fb. Proses perbandingan 2 buah citra pas foto

dapat dilihat pada bab sebelumnya.

3.2 PPWdb

Sewaktu aplikasi PPWdb dijalankan, tahap pertama yang dilakukan adalah memeriksa keberadaan file htemp.mat. Jika file ini ada, maka akan dihapus. File htemp.mat adalah file yang memuat matriks pixel citra xn. Jika file htemp.mat ada pada saat aplikasi pertama kali dibuka, berarti itu adalah file yang tersisa sewaktu aplikasi terakhir kali dibuka. Kemudian dilakukan pengisian harga awal ke variabel f1 sampai f5. Yang diisi adalah matriks nol berukuran 1x10332. Variabel f1 sampai f5 tersebut disimpan dalam file db.mat. Setelah itu dilakukan juga pengisian nilai awal kepada variabel js. Dalam hal ini, nilai awalnya adalah 1. Citra mrx.jpg kemudian ditampilkan pada aplikasi. Hal ini dilakukan semata-mata hanya sebagai pelengkap, dan tidak memberi pengaruh apapun ke dalam proses perbandingan. Di dalam aplikasi PPWdb, terdapat lima tombol yang akan memudahkan pengguna dalam pemakaian. Kelima tombol tersebut adalah Ambil Foto, Input ke Database, Pengenal Wajah, Reset Database, dan Keluar.

[image:39.595.211.409.512.742.2]

(40)
[image:40.595.92.551.79.738.2]

A

(41)

3.2.1 Tombol Ambil Foto

[image:41.595.157.440.232.689.2]

Sesaat setelah aplikasi mendeteksi penekanan tombol Ambil Foto, sebuah jendela yang bertujuan untuk mencari file citra pas foto yang ingin dimasukkan ke database akan ditampilkan. Setiap citra pas foto yang dimasukkan diubah ke dalam matriks pixel citra (xn).

(42)

Variabel xn tersebut lalu disimpan di dalam file htemp.mat. Tahap selanjutnya adalah

dengan menyimpan nama dan lokasi file input citra pada variabel nfn dan npn,

kemudian menyimpannya dalam file impf.mat.

3.2.2 Tombol Input ke Database

xn akan didekomposisi dengan transformasi Wavelet diskrit tipe Haar tingkat 3 jika

aplikasi mendeteksi penekanan tombol Input ke Database. Sebelum dekomposisi dilakukan, terlebih dahulu dilakukan pemeriksaan terhadap keberadaan file htemp.mat. Jika file tersebut tidak ada, maka akan ditampilkan pesan bahwa belum ada foto yang diambil. Tetapi jika file tersebut ada, maka langkah berikutnya adalah memuat file htemp.mat tersebut, berikut juga file jcount.mat dan db.mat.

Setelah proses pemuatan ketiga file tersebut sudah dilakukan, maka nilai variabel js dari file jcount.mat diperiksa. Jika nilai js = 6, berarti database sudah penuh dan pesan yang menyatakan hal tersebut akan ditampilkan. Jika js belum sampai 6, maka nilai xn

yang diperoleh sewaktu pengambilan citra pas foto kemudian didekomposisi. Untuk nilai js = n, hasilnya kemudian disimpan dengan variabel fn dalam file db.mat untuk

nilai n antara 1 sampai 5. Citra yang disimpan dengan variabel fn akan mendapat

(43)
[image:43.595.137.498.67.559.2]

Gambar 3.4 Diagram Alir Input ke Database

3.2.3 Tombol Pengenal Wajah

(44)

3.2.4 Tombol Reset Database

Tombol Reset Database berguna untuk menghapus file htemp.mat, menampilkan kembali citra mrx.jpg dan mengembalikan nilai fn menjadi matriks nol berukuran

[image:44.595.146.448.218.589.2]

1x10332. Tetapi jika file htemp.mat tidak ada, maka tidak ada dilakukan proses apapun. Diagram alir untuk tombol Reset Database dapat dilihat pada Gambar 3.5.

Gambar 3.5 Diagram Alir Reset Database

3.2.5 Tombol Keluar

(45)
[image:45.595.109.486.101.651.2]

3.3 PPWfr

Gambar 3.6 Diagram Alir PPWfr

(46)

Aplikasi kedua, yang disebut PPWfr, bertujuan untuk melakukan proses perbandingan citra. Pada aplikasi ini hanya terdapat 3 tombol, yaitu Ambil Foto, Cari di Database, dan Keluar.

3.3.1 Tombol Ambil Foto

[image:46.595.155.442.308.736.2]
(47)

Matriks pixel citra ini disimpan dengan variabel x, dan kemudian langsung didekomposisi Wavelet tipe Haar tingkat 3, sehingga didapat juga identitas dari citra yang mau dibandingkan dengan dimensi 1x10332. Identitas ini disimpan dengan variabel fb dalam file htemp2.mat.

3.3.2 Tombol Cari di Database

Ketika tombol Cari di Database ditekan, aplikasi akan melakukan proses perbandingan. Tetapi sebelumnya, dilakukan dulu pemeriksaan keberadaan file htemp2.mat yang hanya akan ada jika foto sudah dipilih. Jika tidak ada, maka akan ada pesan bahwa foto belum dipilih. Tetapi jika ada, maka file tersebut kemudian dimuat, berikut file jcount.mat dan db.mat. Kemudian dilakukan pemeriksaan pada nilai variabel js. Untuk nilai js = 1, yang berarti belum ada foto yang disimpan, maka ditampilkanlah pesan yang menyatakan demikian. Jika sudah lebih dari 1, maka proses dilanjutkan dengan perbandingan pas foto. Metodenya adalah dengan mencari selisih dari masing-masing variabel fn dengan fb. Walaupun citra yang dimasukkan tidak sampai 5, tetapi tetap dapat dilakukan pencarian selisih tersebut. Hal ini karena pada aplikasi PPWdb telah diberikan nilai awal matriks nol berdimensi 1x10332 pada variabel f1 sampai f5. Untuk setiap variabel fn, dilakukan proses perbandingan citra

pas foto dengan fb sehingga menghasilkan matriks hsln. Berdasarkan percobaan yang

dilakukan oleh penulis, nilai toleransi untuk percobaan ini adalah 1. Dengan kata lain, dua buah citra dikatakan mirip jika 0 < hsln < 1. Citra di database yang dianggap mirip

(48)
[image:48.595.94.536.71.675.2]
(49)

3.3.3 Tombol Keluar

[image:49.595.156.442.284.571.2]

Tombol ini berguna untuk menutup aplikasi PPWfr. Tetapi sebelum menutup aplikasi, terlebih dahulu dilakukan penghapusan terhadap file htemp2.mat. Hal ini bertujuan agar sewaktu aplikasi PPWfr dibuka lagi, pengguna tidak bisa langsung menekan tombol Cari di Database tanpa mengambil citra pas foto pembanding terlebih dahulu, karena file htemp2.mat yang dibutuhkan sewaktu menekan tombol Cari di Database sudah dihapus. Tetapi jika file htemp2.mat tersebut sudah tidak ada, aplikasi langsung ditutup.

(50)

BAB IV

IMPLEMENTASI DAN PENGUJIAN HASIL

Bab ini akan membahas implementasi dari rancangan pada Bab III serta pengujian perangkat lunak yang dihasilkan. Bagian implementasi menekankan pada demonstrasi fungsi setiap tombol pada aplikasi, sementara bagian pengujian menekankan pada ujicoba kemampuan perangkat lunak dalam membandingkan beberapa sampel citra pas foto.

4.1 Implementasi

Implementasi dari sistem pembanding citra pas foto ini menggunakan bahasa pemrograman Matlab 7. Penggunaan bahasa pemrograman Matlab 7 dinilai lebih mudah karena di dalam Matlab 7 sudah terdapat fasilitas GUI (Graphical User Interface) yang cukup mempermudah pengguna karena tampilan antarmukanya dapat dibuat sesederhana mungkin. Keuntungan lain dalam menggunakan Matlab 7 adalah karena di dalamnya sudah terdapat function operasi dekomposisi Wavelet yang bisa langsung digunakan.

Pada sistem ini terdapat 2 buah m-file, yaitu PPWdb.m dan PPWfr.m yang berisi kode-kode pemrograman yang akan dijalankan sewaktu PPWdb.fig maupun PPWfr.fig dijalankan.

4.1.1 PPWdb

(51)
[image:51.595.153.442.65.439.2]

Gambar 4.1 Tampilan Antarmuka Sewaktu Aplikasi PPWdb Baru Dijalankan

(52)
[image:52.595.164.433.70.376.2] [image:52.595.144.444.396.740.2]
(53)
[image:53.595.157.442.204.538.2]

Pada waktu tombol Pengenal Wajah ditekan, maka aplikasi PPWdb akan ditutup dan aplikasi PPWfr dibuka. Akan tetapi jika belum ada satupun citra pas foto yang sudah dimasukkan ke database, maka akan timbul pesan kesalahan tersebut jika tombol Pengenal Wajah ditekan.

Gambar 4.4 Tampilan Ketika Tombol Input ke Database Ditekan Setelah Sebuah

Foto Diambil

Sewaktu tombol Reset Database ditekan, maka aplikasi akan menghapus semua data yang sudah disimpan sebelumnya dan memunculkan kembali citra mrx.jpg pada aplikasi.

(54)

(a) (b)

Gambar 4.5 (a) Tampilan Ketika Tombol Input ke Database Ditekan Tanpa

Mengambil Foto Terlebih Dahulu; (b) Tampilan yang Muncul Ketika Tombol Pengenal Wajah Ditekan Tanpa Mengisi Database Terlebih Dahulu

4.1.2 PPWfr

[image:54.595.92.504.71.470.2]
(55)
[image:55.595.174.421.70.342.2]

Gambar 4.6 Tampilan Ketika Aplikasi PPWfr Pertama Kali Dijalankan

Selain kotak tempat penampilan citra pas foto, pada tampilan aplikasi PPWfr juga terlihat ada 3 tombol, yaitu Ambil Foto, Cari di Database dan Keluar.

[image:55.595.132.460.434.745.2]
(56)
[image:56.595.110.487.63.648.2]

Gambar 4.8 Tampilan Ketika Foto Sudah Diambil

Gambar 4.9 Tampilan yang Muncul Ketika Tombol Cari di Database Baru Saja

(57)

Seperti halnya pada PPWdb, ketika tombol Ambil Foto ditekan, akan ditampilkan sebuah jendela explorer untuk memudahkan pengguna dalam mencari citra pas foto yang disimpan di media penyimpanan. Setelah citra pas foto terpilih, maka citra pas foto itu akan dijadikan citra pas foto pembanding, dan akan ditampilkan pada kotak sebelah kiri pada aplikasi.

[image:57.595.157.443.233.479.2]

Gambar 4.10 Tampilan yang Muncul Ketika Proses Pencarian di Database Selesai

Dilakukan

(58)

4.2 Pengujian Hasil

[image:58.595.153.444.295.737.2]
(59)

Pengujian dilakukan dalam 6 kategori. Keenam kategori tersebut dibagi berdasarkan jenis citra pas foto yang dimasukkan ke database. Keenam kategori tersebut dibagi sebagai berikut :

1. Kategori A

[image:59.595.105.444.262.568.2]

Citra pas foto yang bukan dari ORL dan tanpa memakai kacamata

Gambar 4.12 Citra Pas Foto Kategori A

2. Kategori B

Citra pas foto yang bukan dari ORL dan memakai kacamata

Gambar 4.13 Citra Pas Foto Kategori B

3. Kategori C

(60)
[image:60.595.197.434.73.147.2]

Gambar 4.14 Citra Pas Foto Kategori C

4. Kategori D

Citra pas foto dari ORL dan memakai kacamata

Gambar 4.15 Citra Pas Foto Kategori D

Masing-masing kategori akan dibandingkan dengan 20 citra pas foto yang sudah ada. Nilai akurasi dari aplikasi akan ditentukan per kategori dengan rumus sebagai berikut:

Berdasarkan rumusan di atas, maka diperoleh akurasi dari aplikasi untuk masing-masing kategori, yang dapat dilihat pada Tabel 4.1.

[image:60.595.157.440.301.436.2]
(61)
[image:61.595.85.511.100.241.2]

Tabel 4.1 Hasil Uji Akurasi Aplikasi Per Kategori

Kategori Akurasi

A 100% B 60% C 50% D 50%

(62)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Metode transformasi Wavelet teruji cukup akurat dan cepat dalam membandingkan citra pas foto.

2. Pasangan citra pas foto yang berbeda ekspresi wajah masih dapat dikenali dengan baik oleh aplikasi.

3. Aplikasi menghasilkan persentasi perbandingan yang lebih buruk untuk citra pas foto yang telah melalui proses pemindahan melalui intenet.

4. Hasil perbandingan kurang akurat pada citra pas foto yang memakai kacamata. 5. Hasil perbandingan yang dilakukan oleh aplikasi tidak lebih baik daripada

perbandingan melalui pandangan mata manusia.

5.2 Saran

1. Sebaiknya aplikasi dikembangkan agar bisa memodifikasi citra masukan menjadi berukuran 112x92 pixel, mode warna grayscale 8 bit, dan tipe file .jpeg, sehingga citra masukan tidak perlu memenuhi kriteria tersebut sebelum diproses pada aplikasi.

2. Aplikasi ini akan lebih baik jika dapat dihubungkan dengan aplikasi database yang canggih sehingga dapat memuat data yang jauh lebih banyak hanya dengan algoritma yang lebih sederhana.

(63)

DAFTAR PUSTAKA

1. Lim, Resmana, Marcel J.T. Reinders, dan Thiang, 2000, “Pengenalan Citra Wajah dengan Pemrosesan Awal Transformasi Wavelet”, Surabaya : Gedung Pasca Sarjana ITS.

2. Manikarnika, Achim Sanjay, 2006, “A General Face Recognition System”, Norwegia : Norwegian University of Science and Technology Department of Mathematical Sciences.

3. Garcia, Christopher, Giorgos Zikos, Giorgos Tziritas, “A Wavelet-based Framework for Face Recogniton”, Heraklion, Yunani : ICS-Foundation for Research and Technology-Hellas-FORTH.

4. Delac, Kresimir, dan Mislav Grgic, 2007, “Face Recognition”, Vienna, Austria : I-Tech Education and Publishing.

5. BiNus Center, “3D Movie Animator; Digital Imaging with Adobe Photoshop”, Jakarta : BiNus Center.

6. Polikar, Robi, “The Wavelet Tutorial”, 1994, http://users.rowan.edu/~polikar/ WAVELETS/ WTtutorial.html

7. Sandberg, Kristian, “The Haar Wavelet Transform”, 2000, http://sprott. physics.wisc.edu/carlson.html.

8. Away, Gunaidi Abdia, “MATLAB Programming”, 2006, Bandung : Informatika.

9. “Pengolahan Citra”, 2007, www.wikipedia.com.

10.Arif, Agus, “Kuliah Pengolahan Citra Semester Genap 2006/2007”, 2006. 11.Karmilasari, “Konvolusi”, 2006.

(64)
(65)

Kode Pemrograman PPWdb.m

function varargout = PPWdb(varargin) % PPWdb M-file for PPWdb.fig

% PPWdb, by itself, creates a new PPWdb or raises the existing % singleton*.

%

% H = PPWdb returns the handle to a new PPWdb or the handle to % the existing singleton*.

%

% PPWdb('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in PPWdb.M with the given input arguments. %

% PPWdb('Property','Value',...) creates a new PPWdb or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before PPWdb_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to PPWdb_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help PPWdb

% Last Modified by GUIDE v2.5 17-Jun-2007 19:53:17

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PPWdb_OpeningFcn, ... 'gui_OutputFcn', @PPWdb_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% -- BAGIAN INI DIEKSEKUSI TEPAT SEBELUM APLIKASI PPWDB DIJALANKAN -- function PPWdb_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

(66)

cekhtemp=exist('htemp.mat','file'); %periksa apakah file htemp.mat ada if cekhtemp==2 %jika file htemp.mat ada, maka

delete htemp.mat %hapus file htemp.mat

else %jika tidak ada, akhiri pencabangan end

f1=zeros(1,10332,'double'); %beri nilai awal matriks nol f2=zeros(1,10332,'double'); %berdimensi 1x10332 tipe double f3=zeros(1,10332,'double'); %ke variabel f1 sampai f5 f4=zeros(1,10332,'double');

f5=zeros(1,10332,'double');

save db f1 f2 f3 f4 f5; %simpan ke file db.mat

js=1; %masukkan nilai js=1

save jcount js; %simpan nilai js ke file jcount.mat

handles.data1=imread('mrx.jpg'); %ambil file mrx.jpg dan guidata(hObject,handles); %tampilkan pada aplikasi handles.current_data1=handles.data1;

axes(handles.axes1);

imshow(handles.current_data1);

% Choose default command line output for PPWdb handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes PPWdb wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = PPWdb_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL AMBIL FOTO DITEKAN -- function pbambil_Callback(hObject, eventdata, handles)

% hObject handle to pbambil (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

(67)

'Buka File Citra Host/Asli');

if ~isequal(nama_file1, 0) %jika citra sudah terpilih, tampilkan %citra di axes1

handles.data1=imread(fullfile(nama_path1,nama_file1)); guidata(hObject,handles);

handles.current_data1=handles.data1; axes(handles.axes1);

imshow(handles.current_data1);

x=(handles.current_data1); %data citra disimpan dalam variabel x

x=double(x); %x diubah tipe datanya menjadi double save htemp x; %simpan x ke dalam file htemp.mat

load jcount.mat

switch js

case 1 %jika js=1

np1=nama_path1; %masukkan path citra 1 ke variabel np1 nf1=nama_file1; %masukkan nama file citra1 ke nf1 save impf np1 nf1; %simpan variabel np1 dan nf1 ke file %impf.mat

case 2

np2=nama_path1; nf2=nama_file1;

save impf np2 nf2 -append; %variabel np2 dan nf2 disimpan dan %disertakan ke file impf.mat

case 3

np3=nama_path1; nf3=nama_file1;

save impf np3 nf3 -append;

case 4

np4=nama_path1; nf4=nama_file1;

save impf np4 nf4 -append;

case 5

np5=nama_path1; nf5=nama_file1;

save impf np5 nf5 -append;

end else return;

end

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL INPUT KE DATABASE DITEKAN -- function pbinput_Callback(hObject, eventdata, handles)

% hObject handle to pbinput (see GCBO)

(68)

% handles structure with handles and user data (see GUIDATA)

cekhtemp=exist('htemp.mat','file'); %periksa apakah file db.mat ada if cekhtemp==2 %jika file db.mat ada, maka

load htemp.mat; %load file htemp.mat load jcount.mat; %load file jcount.mat load db.mat;

switch js %cek nilai js

case 1 %jika js bernilai 1, maka

[f1,m] = wavedec2(x,3,'haar'); %lakukan proses wavelet tipe %haar level 3 pada variabel x

save db f1 -append; %simpan variabel f1 ke file %db.mat

js=js+1; %tambahkan variabel js dengan 1 save jcount js; %simpan nilai js ke file

%jcount.mat

warndlg('ID FOTO : 1'); %tampilkan pesan nomor ID foto %proses sebelumnya diulang

%sampai maksimum 5 input foto

case 2

[f2,m] = wavedec2(x,3,'haar'); save db f2 -append;

js=js+1; save jcount js;

warndlg('ID FOTO : 2');

case 3

[f3,m] = wavedec2(x,3,'haar'); save db f3 -append;

js=js+1; save jcount js;

warndlg('ID FOTO : 3');

case 4

[f4,m] = wavedec2(x,3,'haar'); save db f4 -append;

js=js+1; save jcount js;

warndlg('ID FOTO : 4');

case 5

[f5,m] = wavedec2(x,3,'haar'); save db f5 -append;

js=js+1; save jcount js;

warndlg('ID FOTO : 5');

case 6 %jika input sudah lebih dari 5, %tampilkan pesan

warndlg('Anda sudah menyimpan dalam jumlah maksimal..')

(69)

warndlg('ANDA BELUM MEMILIH FOTO')

end

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL KELUAR DITEKAN -- function pbkeluar_Callback(hObject, eventdata, handles)

% hObject handle to pbkeluar (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

close %keluar

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL RESET DATABASE DITEKAN -- function pbreset_Callback(hObject, eventdata, handles)

% hObject handle to pbreset (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

cekhtemp=exist('htemp.mat','file'); %periksa apakah file htemp.mat ada if cekhtemp==2 %jika file htemp.mat ada, maka

delete htemp.mat %hapus file htemp.mat

handles.data1=imread('mrx.jpg'); %tampilkan citra mrx.jpg ke axes1 guidata(hObject,handles);

handles.current_data1=handles.data1; axes(handles.axes1);

imshow(handles.current_data1);

else end

js=1; %masukkan nilai js=1

save jcount js; %simpan nilai js ke file jcount.mat

f1=zeros(1,10332,'double'); %beri nilai awal matriks nol f2=zeros(1,10332,'double'); %berdimensi 1x10332 tipe double f3=zeros(1,10332,'double'); %ke variabel f1 sampai f5 f4=zeros(1,10332,'double');

f5=zeros(1,10332,'double');

save db f1 f2 f3 f4 f5; %simpan ke file db.mat

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL PENGENAL WAJAH DITEKAN -- function pbfacerec_Callback(hObject, eventdata, handles)

% hObject handle to pbfacerec (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

load jcount %load file jcount.mat

if js==1 %jika nilai js=1 (database belum %diisi), maka munculkan peringatan warndlg('ANDA BELUM MENGISI DATABASE')

(70)

PPWfr %jalankan aplikasi PPWfr

(71)

Kode Pemrograman PPWfr.m

function varargout = PPWfr(varargin) % PPWFR M-file for PPWfr.fig

% PPWFR, by itself, creates a new PPWFR or raises the existing % singleton*.

%

% H = PPWFR returns the handle to a new PPWFR or the handle to % the existing singleton*.

%

% PPWFR('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in PPWFR.M with the given input arguments. %

% PPWFR('Property','Value',...) creates a new PPWFR or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before PPWfr_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to PPWfr_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help PPWfr

% Last Modified by GUIDE v2.5 17-Jun-2007 18:15:07

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PPWfr_OpeningFcn, ... 'gui_OutputFcn', @PPWfr_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

% End initialization code - DO NOT EDIT

% -- BAGIAN INI DIEKSEKUSI TEPAT SEBELUM APLIKASI PPWfr DIJALANKAN -- function PPWfr_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

(72)

% Choose default command line output for PPWfr handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes PPWfr wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = PPWfr_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL AMBIL FOTO DITEKAN -- function pbambil2_Callback(hObject, eventdata, handles)

% hObject handle to pbambil2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

%tampilkan kotak dialog untuk mencari citra [nama_file1, nama_path1]=uigetfile(... {'*.bmp;*.jpg','File Citra(*.bmp,*.jpg)'; '*.bmp','File Bitmap (*.bmp)';... '*.jpg','File Jpeg (*.jpg)'; '*.*','Semua File (*.*)'},... 'Buka File Citra Host/Asli');

if ~isequal(nama_file1, 0) %jika citra sudah terpilih, tampilkan %citra di axes2

handles.data1=imread(fullfile(nama_path1,nama_file1)); guidata(hObject,handles);

handles.current_data1=handles.data1; axes(handles.axes1);

imshow(handles.current_data1);

x=(handles.current_data1); %data citra disimpan dalam variabel x x=double(x); %x diubah tipe datanya menjadi double [fb,m] = wavedec2(x,3,'haar'); %lakukan proses wavelet tipe %haar level 3 pada variabel x

save htemp2 fb; %simpan variabel fb ke file htemp2.mat

else return;

(73)

% hObject handle to pbcari (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

cekhtemp2=exist('htemp2.mat','file'); %periksa apakah file htemp.mat ada if cekhtemp2==2 %jika file htemp.mat ada, maka

load htemp2.mat %load file htemp2.mat load jcount.mat %load file jcount.mat load db.mat %load file db.mat

if js==1

%jika nilai js=1(database belum diisi), tampilkan pesan

warndlg('ANDA BELUM MEMASUKKAN FOTO KE DATABASE');

%jika nilai js=2 atau lebih, maka else

min1=f1-fb; %cari selisih f1 dengan fb, dan simpan hasilnya %ke variabel min1

mean1=mean(min1); %cari nilai rata-rata dari min1 dan simpan %hasilnya ke variabel mean1

hsl1=abs(mean1); %cari nilai absolute dari mean 1 dan simpan %hasilnya ke variabel hsl1, dan merupakan

%identitas pembanding dari citra dengan ID 1

min2=f2-fb;

mean2=mean(min2); hsl2=abs(mean2);

min3=f3-fb;

mean3=mean(min3); hsl3=abs(mean3);

min4=f4-fb;

mean4=mean(min4); hsl4=abs(mean4);

min5=f5-fb;

mean5=mean(min5); hsl5=abs(mean5);

load impf.mat %load file impf.mat

%cari nilai terkecil

%jika hsl1 yang terkecil, dan lebih kecil dari 1, maka a=1 a=(hsl1<hsl2)&(hsl1<hsl3)&(hsl1<hsl4)&(hsl1<hsl5)&(hsl1<1); %jika hsl2 yang terkecil, dan lebih kecil dari 1, maka b=1 b=(hsl2<hsl1)&(hsl2<hsl3)&(hsl2<hsl4)&(hsl2<hsl5)&(hsl2<1); %jika hsl3 yang terkecil, dan lebih kecil dari 1, maka c=1 c=(hsl3<hsl1)&(hsl3<hsl2)&(hsl3<hsl4)&(hsl3<hsl5)&(hsl3<1); %jika hsl4 yang terkecil, dan lebih kecil dari 1, maka d=1 d=(hsl4<hsl1)&(hsl4<hsl3)&(hsl4<hsl2)&(hsl4<hsl5)&(hsl4<1); %jika hsl5 yang terkecil, dan lebih kecil dari 1, maka e=1 e=(hsl5<hsl1)&(hsl5<hsl3)&(hsl5<hsl4)&(hsl5<hsl2)&(hsl5<1);

(74)

for i=1:1000; waitbar(i/1000) end

close(h)

%jika a=1, maka citra dengan ID 1 mirip dengan citra pembanding %maka citra dengan ID 1 tersebut ditampilkan

%demikian selanjutnya sampai ID 5 if a==1

handles.data1=imread(fullfile(np1,nf1)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes2); imshow(handles.current_data1); warndlg('MIRIP FOTO 1');

elseif b==1 handles.data1=imread(fullfile(np2,nf2)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes2); imshow(handles.current_data1); warndlg('MIRIP FOTO 2');

elseif c==1 handles.data1=imread(fullfile(np3,nf3)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes2); imshow(handles.current_data1); warndlg('MIRIP FOTO 3');

elseif d==1 handles.data1=imread(fullfile(np4,nf4)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes2); imshow(handles.current_data1); warndlg('MIRIP FOTO 4');

elseif e==1 handles.data1=imread(fullfile(np5,nf5)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.axes2); imshow(handles.current_data1); warndlg('MIRIP FOTO 5');

else

(75)

handles.data1=imread('mrx.jpg'); guidata(hObject,handles);

handles.current_data1=handles.data1; axes(handles.axes2);

imshow(handles.current_data1);

warndlg('TIDAK ADA FOTO YANG MIRIP');

end

end

else

warndlg('ANDA BELUM MENGAMBIL FOTO');

end

% -- BAGIAN INI DIEKSEKUSI SEWAKTU TOMBOL KELUAR DITEKAN -- function pbkeluar2_Callback(hObject, eventdata, handles)

% hObject handle to pbkeluar2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

cekhtemp2=exist('htemp2.mat','file'); %periksa apakah file htemp.mat ada if cekhtemp2==2 %jika file htemp.mat ada, maka

delete htemp2.mat %hapus file htemp2.mat close; %keluar dari program

else

close; %keluar dari program

Gambar

Tabel 4.1 Hasil Uji Akurasi Aplikasi Per Kategori... ........... ......................................50
Gambar 2.1 Warna-Warna di Dalam Mode HSB
Gambar 2.2 Warna-Warna di Dalam Mode RGB
Gambar 2.3 Pola Penggambaran Matriks Sebuah Citra Digital
+7

Referensi

Dokumen terkait

Pada tahun yang sama, penulis diterima sebagai mahasiswa Institut Pertanian Bogor (IPB) pada Fakultas Teknologi Pertanian, Departemen Teknologi Industri Pertanian melalui jalur

Hasil refleksi diguanakan untuk menentukan langkah selanjutnya dalam mencapat tujuan penelitian tindakan kelas (PTK).. refleksi terhadap kegiatan guru kelas

Tujuan kegiatan praktik mengajar ini adalah menerapkan sistem pembelajaran di sekolah dengan menggunakan ilmu yang dimiliki. Praktik mengajar dilakukan 9 kali

skripsi dengan judul ” Upaya Peningkatan Hasil Belajar Bahasa Indonesia Melalui Penerapan Model Pembelajaran Talking Stick Pada Siswa Kelas 3 SD Mangunsari 5 Salatiga Semester 2

increasing of titanium tetrahedral fraction in silica-titania affects the physical properties of biodiesel in terms of boiling point, viscosity and density, which

Tulisan ini berawal dari adanya peraturan pemerintah mengenai batas usia kronologis anak untuk masuk Sekolah Dasar, yaitu 7 tahun. Pada kenyataanya, banyak orang

Melihat berbagai masalah yang muncul dan disesuaikan dengan permasalahan dalam penelitian ini, maka masalah yang akan dibahas dalam skripsi ini dibatasi pada