• Tidak ada hasil yang ditemukan

MENGHITUNG JUMLAH JARI PADA CITRA TANGAN DENGAN MENGGUNAKAN RUANG WARNA YCBCR DAN TEKNIK DETEKSI KONTUR.

N/A
N/A
Protected

Academic year: 2017

Membagikan "MENGHITUNG JUMLAH JARI PADA CITRA TANGAN DENGAN MENGGUNAKAN RUANG WARNA YCBCR DAN TEKNIK DETEKSI KONTUR."

Copied!
89
0
0

Teks penuh

(1)

SKRIPSI

Disusun oleh :

DEDY SETIANTO

NPM. 0934010203

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

▸ Baca selengkapnya: menghitung jari di dalam air untuk melatih

(2)

SKRIPSI

Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Disusun oleh :

DEDY SETIANTO

NPM. 0934010203

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(3)

MENGGUNAKAN RUANG WARNA YCBCR DAN TEKNIK DETEKSI KONTUR

Disusun oleh :

DEDY SETIANTO

NPM. 0934010203

Telah disetujui untuk mengikuti Ujian Negar a Lisan Gelombang V Tahun Akademik 2013/2014

Pembimbing I Pembimbing II

Wahyu S.J . Saputr a, S.Kom, M.Kom Chr istya Aji Putr a, S.Kom, M.Kom NPT. 3 8608 10 0295 1 NPT. 3 8610 10 0296 1

Mengetahui,

Ketua J ur usan Teknik Infor matika Fakultas Teknologi I ndustr i UPN “Veter an” J awa Timur

Dr . Ir . Ni Ketut Sar i, MT NIP. 19650731 199203 2 001

(4)

Disusun oleh :

DEDY SETIANTO NPM. 0934010203

Telah dipertahankan dihadapkan dan diter ima oleh Tim Penguji Skr ipsi J ur usan Teknik Infor matika Fakultas Teknologi Industri

Univer sitas Pembangunan Nasional “Veteran” J awa Timur Pada Tanggal 13 J uni 2014

Pembimbing I:

Wahyu S.J . Saputr a, S.Kom, M.Kom NPT. 3 8608 10 0295 1

Pembimbing II:

Chr istya Aji Putr a, S.Kom, M.Kom NPT. 3 8610 10 0296 1

Tim Penguji : 1.

Budi Nugr oho, S.Kom, M.Kom NPT. 3 8009 05 02051

Dekan Fakultas Teknologi I ndustr i

Univer sitas Pembangunan Nasional “Veter an” J awa Timur

(5)

KETERANGAN REVISI

Mahasiswa di bawah ini :

Nama : DEDY SETIANTO NPM : 0934010203

Jurusan : Teknik Informatika

Telah mengerjakan revisi/ tidak ada revisi*) pra rencana (design)/ skripsi ujian lisan gelombang V, TA 2013/2014 dengan judul:

“MENGHITUNG J UMLAH J ARI PADA CITRA TANGAN DENGAN MENGGUNAKAN RUANG WARNA YCBCR DAN TEKNIK DETEKSI KONTUR”

Surabaya, 30 Juni 2014 Dosen Penguji yang memerintahkan revisi :

(6)
(7)

Allah SWT atas segala rahmat serta karunia-Nya yang diberikan kepada penulis sehingga penulis dapat menyelesaikan skripsi yang berjudul “ MENGHITUNG J UMLAH J ARI PADA CITRA TANGAN DENGAN MENGGUNAKAN RUANG

WARNA YCBCR DAN TEKNIK DETEKSI KONTUR ”.

Skripsi dengan beban 4 SKS ini disusun sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik Informatika, Fakultas Teknologi Industri, UPN “Veteran” Jawa Timur.

Penulis menyadari bahwa penulisan skripsi ini masih jauh dari kesempurnaan dikarenakan pengetahuan dan pengalaman yang dimiliki oleh penulis masih sangat terbatas dan masih perlu diperbaiki baik dari segi penyajian maupun isinya. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun dari semua pihak yang membaca skripsi ini. Semoga skripsi ini bermanfaat bagi semua pembaca pada umumnya dan bagi penulis pada khususnya. Amiin.

Surabaya, 30 Juni 2014

(8)

bantuan dari berbagi pihak. Oleh karena itu dalam kesempatan ini perkenankan penulis mengucapkan rasa terima kasih yang sebesar-besarnya kepada :

1) Allah SWT., karena berkat rahmat dan karunia-Nya penulis dapat menyusun dan menyelesaikan skripsi ini.

2) Keluarga tercinta. Ayah dan Ibu yang selalu memberikan kasih sayang, dukungan moril, doa, semangat dan materiil yang tiada henti-hentinya. Kak Pipit, kak iwan dan adik tercinta chiko. Dan juga “mimiku” yang selalu mendampingi, memberikan semangat dan motivasi serta perhatian dan pengertian yang luar biasa.

3) Bapak Prof. Dr. Ir. Teguh Soedarto, MP selaku Rektor Universitas Pembangunan Nasional “Veteran” Jawa Timur.

4) Bapak Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN “Veteran” Jawa Timur.

5) Ibu Dr. Ir. Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Informatika UPN “Veteran” Jawa Timur.

6) Ibu Yisti Vita Via, S.ST, M.Kom selaku PIA Tugas Akhir Teknik Informatika UPN “Veteran” Jawa Timur.

(9)

8) Bapak Christya Aji Putra, S.Kom, M.Kom selaku dosen pembimbing II skripsi ini di UPN “Veteran” Jawa Timur yang telah banyak memberikan waktu, bimbingan dan petunjuk sejak awal hingga terselesainya skripsi ini. 9) Sahabat seperjuangan Dony dan Yoga. Tiada hari siang malam tanpa ngopi

dan ngoding. Kenanglah selalu momen-momen indah pada saat itu.

10) Bapak Rully, S.Kom yang selalu menasehati dan membimbing penulis kearah yang benar. Penulis tidak akan melupakan jasa-jasa beliau.

(10)

ABSTRAK ... i

KATA PENGANTAR ... ii

UCAPAN TERIMA KASIH ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

1.3. Batasan Masalah ... 3

1.4. Tujuan ……….. ... 4

1.5. Manfaat ... 4

BAB II TINJ AUAN PUSTAKA ... 5

2.1. Image ... 5

2.1.1.Definisi Image ... 5

2.1.2.File Gambar ... 6

2.2. Mode Warna Pada Gambar Digital ... 8

(11)

2.2.2.CMYK (Cyan Magenta Yellow Black) ... 10

2.2.3.YCbCr (Luma dan Kroma) ... 11

2.3. Macam-Macam Teknik Pendeteksian Warna Kulit ... 12

2.3.1.Deteksi Warna Kulit Menggunakan Model Warna RGB 12 2.3.2.Deteksi Warna Kulit Menggunakan Model Warna YCbCr .... 14

2.4. Morphological Image Processing ... 16

2.4.1.Dilasi ... 17

2.4.2.Erosi ... 18

2.5. Segmentasi Citra ... 19

2.6. Deteksi Kontur Tangan ... 20

2.6.1.Convexity dan Convexity Defects ... 22

2.6.2. Convex Hull ... 24

3.4. Convex Hull dan Convexity Defects dari Tangan ... 43

(12)

3.5.1.Interface Tampilan Awal ... 45

3.5.2.Interface Menu Load Images ... 46

3.5.3.Interface Finger Recognition ... 47

3.5.4.Interface YCbCr Detection ... 47

3.6. Lingkungan Implementasi ... 48

BAB IV HASIL DAN PEMBAHASAN ... 50

4.3.4.Proses Menghitung Jumlah Jari ... 61

4.4. Uji Coba Program ... 63

4.4.1.Skenario Uji Coba ... 63

4.4.2.Pelaksanaan Uji Coba ... 64

4.5. Evaluasi Aplikasi ... 66

4.5.1.Analisis Proses Pengambilan Citra Jari Tangan ... 67

4.5.2.Analisis Proses Face Recognition ... 71

BAB V KESIMPULAN DAN SARAN ... 72

(13)

5.2. Saran ... 73

(14)

ABSTRAK

Saat ini penelitian yang dilakukan tentang Human Computer Interaction (HCI) memberikan pengaruh yang besar dalam mengembangkan komunikasi manusia dengan komputer dan telah diterapkan dalam berbagai bidang atau peralatan lainnya, salah satunya teknologi komunikasi tersebut adalah pengenalan sebuah jari tangan manusia dengan media web-cam. Teknologi komunikasi komputer tersebut sangat bermanfaat sebagai alat pengenalan yang kedepannya dapat membantu manusia dalam menciptakan teknologi yang tepat guna.

Untuk mengatasinya akan dirancang suatu aplikasi pengenalan jari tangan manusia dengan menggunakan format warna dan metode khusus secara otomatis oleh komputer. Tujuan aplikasi ini adalah agar komputer mampu menghitung jumlah sebuah jari tangan manusia. Dalam penerapannya, aplikasi menghitung jari tangan ini terutama adalah pengambilan objek gambar jari tangan menggunakan sebuah kamera laptop/web-cam, setelah itu load ke dalam komputer yang tersedia pada aplikasi ini dan kemudian objek gambar akan diproses untuk dihitung jumlah jarinya dengan bantuan format warna YCbCr dan pendeteksian kontur.

Pada penelitian ini proses pengenalan jari tangan manusia menggunakan metode Convex Hull dan Convexity Defects sebagai pendeteksi kontur, format warna YCbCr yang memudahkan dalam pendeteksian kontur dan dengan bahasa pemrograman Visual Basic, Microsoft Visual Studio 2010 (.Net) dan library Emgu CV. Metode ini mempunyai komputasi yang sederhana dan cepat. Pemrosesan metode Convex Hull dan Convexity Defects akan melalui tahapan thresholding dan deteksi kontur. Dan terakhir dilakukan pemrosesan perhitungan jumlah jari tangan dengan menggunakan pemrosesan dari metode Convex Hull dan Convexity Defects, kemudian melakukan perkalian dengan skala perbandingan yang sudah ada ketetapannya setelah dilakukan dari beberapa uji coba. Dari percobaan dan pengujian yang dilakukan, aplikasi dapat mengenali jari tangan manusia dan menghitung jumlah jarinya pada citra dengan tingkat keakuratan 92.11%. Tinggi rendahnya unsur pencahayaan dan latar yang berada di belakang obyek sangat mempengaruhi proses pengenalan.

(15)

1.1. Latar Belakang

Saat ini penelitian yang dilakukan tentang Human Computer Interaction (HCI) memberikan pengaruh yang besar dalam mengembangkan komunikasi manusia dengan komputer dan telah diterapkan dalam berbagai bidang atau peralatan lainnya, salah satu teknologi komunikasi tersebut adalah menghitung jumlah jari tangan manusia dengan webcam komputer sebagai alat pendeteksian citra. Teknologi komunikasi komputer tersebut sangat bermanfaat sebagai alat pengenalan yang kedepannya dapat membantu manusia dalam menciptakan teknologi yang tepat guna. Teknologi ini masuk kedalam kategori Computer Vision.

Komputer Vision sendiri merupakan pengolahan citra yang dikaitkan dengan akusisi citra, pemrosesan, klasifikasi, pengakuan, dan pencakupan keseluruhan pengambilan keputusan diikuti dengan pengidentifikasian citra. Dan Hand Recognition pun ada kaitannya dengan komputer vision yaitu merupakan

(16)

dan teknik deteksi kontur. Teknik ini diharapkan dapat mengklasifikasikan warna kulit yang nantinya akan terdeteksi sebagai warna kulit manusia.

Dalam penelitian ini dilakukan implementasi deteksi jari tangan menggunakan dengan menggunakan format warna YCbCr. Format warna ini sering digunakan untuk mengklasifikasikan warna kulit. Untuk dapat mendeteksi sebuah jari tangan tidak cukup hanya dengan klasifikasi format warna, tetapi juga perlu metode yang disini menggunakan Convex Hull dan Convexity Defects. Metode ini akan mengembalikan nilai berupa kontur-kontur objek yang dihasilkan dari citra tangan manusia. Convexity Defects berfungsi sebagai suatu metode untuk mendapatkan kontur yang berkarakter kuat dan pasti pada suatu objek misalkan tangan. sedangkan convex hull biasa dipakai untuk mendapatkan kontur besar yang mengelilingi suatu objek.

Dengan adanya penelitian ini diharapkan agar kedepannya para pengguna aplikasi ini bisa mengembangkan teknologi tersebut agar lebih bermanfaat bagi perkembangan teknologi khususnya dibidang pendeteksian citra.

1.2. Rumusan Masalah

Adapun dari latar belakang yang telah diurai sebelumnya ditemukan masalah yang dirumuskan dalam satu rumusan masalah yaitu :

(17)

b. Bagaimana cara mendapatkan kontur dari tangan manusia dengan klasifikasi ruang warna YCbCr.

1.3. Batasan Masalah

Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan tugas akhir ini dapat berjalan dengan baik adalah sebagai berikut :

a. Citra tangan yang akan dideteksi adalah citra tangan yang menghadap ke depan, dalam posisi tegak dan tidak terhalangi sebagian oleh objek lain.

b. Pengambilan citra dilakukan dengan load images dari file explorer komputer.

c. Warna background harus berbeda dari warna kulit yang akan dideteksi. d. Dapat digunakan untuk mendeteksi jari tangan manusia, namun bukan

untuk tangan alat peraga/boneka.

e. Bahasa pemrograman yang dipakai adalah Visual Basic (.Net) dengan compiler Microsoft Visual Studio 2010 dan library Emgu CV.

(18)

1.4. Tujuan

Tujuan dari tugas akhir ini adalah membuat aplikasi menghitung jumlah jari pada citra tangan dengan menggunakan ruang warna YCbCr dan teknik deteksi kontur.

1.5. Manfaat

Adapun manfaat yang dapat diambil dari tugas akhir ini adalah sebagai berikut :

1. Penelitian ini memiliki konstribusi yang sangat penting dalam perkembangan komunikasi langsung manusia dengan komputer (Human Computer Interaction).

2. Ikut memberikan kontribusi terhadap penelitian pengembangan fungsi dari penghitungan jari tangan secara real-time.

3. Menambah pengetahuan dalam bidang kecerdasan buatan dan teknik pengolahan citra khususnya pengenalan tangan dengan menggunakan format warna YCbCr dan teknik deteksi kontur.

(19)

2.1 Image

2.1.1. Definisi Image

“ Secara harfiah image (citra) adalah gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dua dimensi. (Sitorus dkk, 2006)

Citra didefinisikan sebagai fungsi intensitas cahaya dua dimensi f(x,y) dimana x dan y menunjukkan koordinat spasial, dan nilai f pada suatu titik (x,y) sebanding dengan tingkat kecerahan (gray level) dari citra di titik tersebut.“ (Purwanto Ari, 2009)

“ Citra dapat dikelompokkan menjadi dua bagian yaitu citra diam (still images) dan citra bergerak (moving images). Citra diam adalah citra tunggal yang

tidak bergerak. Sedang citra bergerak adalah rangkaian citra diam yang ditampilkan secara beruntun (sekuensial), sehingga memberi kesan pada mata sebagai gambar yang bergerak.” (Sitorus dkk, 2006)

“ Citra digital adalah citra dengan f(x,y) yang nilainya didigitalisasikan baik dalam koordinat spasial maupun dalam gray level. Digitalisasi dari koordinat spasial citra disebut dengan image sampling. Sedangkan digitalisasi dari gray level citra disebut dengan gray-level quantization. Citra digital dapat dibayangkan

(20)

dalam citra, dan nilai elemen matriks tersebut menunjukkan gray level di titik tersebut.” (Purwanto Ari, 2009)

Hal tersebut dapat diilustrasikan pada Gambar 2.1. berikut ini.

Gambar 2.1. Citra Digital

2.1.2. File Gambar

Format file gambar adalah bentuk standar dari proses organisasi dan penyimpanan gambar. File gambar terkomposisi oleh data pixel atau vector yang dilakukan proses rasterized menjadi pixel saat ditampilkan dalam sebuah vector graphics display. Pixel yang mengkoposisi gambar disusun sebagai sebuah grid

(kolom dan baris) dan setiap pixel terdiri dari representasi magnitudes dari kecerahan dan warna.

(21)

a. JPEG

JPEG adalah sebuah format gambar, sangat berguna untuk membuat gambar jenis fotografi berkualitas tinggi dalam ukuran file yang sangat kecil. Meskipun kompresi gambar JPEG sangatlah efisien dan selalu menyimpan gambar dalam kategori warna true color (24 bit), format ini bersifat lossy, yang berarti bahwa kualitas gambar dikorbankan bila tingkat kompresi yang dipilih semakin tinggi.

b. GIF

(Graphics Interchange Format ) GIF merupakan format grafis yang sering digunakan pada desain web. GIF memiliki kombinasi warna lebih sedikit dibanding JPEG, tetapi mampu menyimpan grafis dengan latar belakang transparan ataupun dalam bentuk animasi sederhana.

c. BMP

Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik

(22)

(pada printer). Beberapa format file bitmap yang populer adalah BMP, PCX dan TIFF. (Wikipedia, 2013)

2.2 Mode War na Pada Gambar Digital

(23)

2.2.1. RGB (Red Green Blue)

Gambar 2.2 Model Warna RGB

Menurut Herman Pratomo model warna RGB adalah model warna berdasarkan konsep penambahan kuat cahaya primer yaitu Red, Green dan Blue. Dalam suatu ruang yang sama sekali tidak ada cahaya, maka ruangan tersebut adalah gelap total. Tidak ada signal gelombang cahaya yang diserap oleh mata kita atau RGB (0,0,0). Apabila kita menambahkan cahaya merah pada ruangan tersebut, maka ruangan akan berubah warna menjadi merah misalnya RGB (255,0,0), semua benda dalam ruangan tersebut hanya dapat terlihat berwarna merah. Demikian apabila cahaya kita ganti dengan hijau atau biru.

(24)

hanya dapat terlihat apabila ada tiga cahaya primer, jadi apabila kita non-aktifkan salah satu cahaya, maka benda tersebut berubah warna.

Pada perhitungan dalam program-program komputer model warna direpresentasi dengan nilai komponennya, seperti dalam RGB (r, g, b) masing-masing nilai antara 0 hingga 255 sesuai dengan urusan masing-masing-masing-masing yaitu pertama Red, kedua Green dan ketigha adalah nilai Blue dengan demikian masing-masing komponen ada 256 tingkat. Apabila dikombinasikan maka ada 256 x 256 x 256 atau 16.777.216 kombinasi warna RGB yang dapat dibentuk.

2.2.2. CMYK (Cyan Magenta Yellow Black)

(25)

Gambar 2.3 Model Warna CMYK

2.2.3. YCbCr (Luma dan Kroma)

(26)

Gambar 2.4 Model Warna YCbCr

2.3 Macam-Macam Teknik Pendeteksian War na Kulit

Teknik pendeteksian warna kulit merupakan sebuah teknik untuk melakukan perhitungan terhadap sebuah warna dengan menggunakan metode tertentu dan penyeleksian kondisi sehingga menghasilkan sebuah output apakah warna tersebut diidentifikasi sebagai warna kulit ataukah bukan. Ada beberapa teknik untuk mengidentifikasi sebuah warna kulit, tiga teknik diantaranya adalah teknik RGB dan teknik YCbCr. Dimana setiap teknik untuk mendeteksi warna kulit pada gambar memiliki kelebihan dan kekurangan masing-masing. (Wikipedia, 2009)

2.3.1. Deteksi Warna Kulit Menggunakan Model War na RGB

(27)

mengidentifikasi warna kulit secara langsung sehingga diperlukan penyeleksian kondisi untuk mengenali apakah warna pada sebuah pixel merupakan warna kulit atau bukan,dengan cara membandingkan nilai masing-masing komposisi warna R G dan B dengan nilai-nilai tertentu.

Berikut penyeleksian kondisi yang dibutuhkan untuk mengenali apakah sebuah pixel warna merupakan representasi dari warna kulit atau bukan. Kondisi yang mengidentifikasi pixel warna sebagai warna kulit jika nilai (R)Red, (G)Green, dan (B)Blue adalah sebagai berikut :

R > 95 and G > 40 and B > 20, Max {R,G,B} – min {R,G,B} > 15,

| R-G | > 15 and R > G and R > B,

Sedengkan untuk kondisi pencahayaan yang cukup banyak maka pixel warna diidentifikasi sebagai pixel warna jika (R)Red, (G)Green, dan (B)Blue adalah sebagai berikut :

R > 220 and G > 210 and B > 170, | R-G | ≤ 15 and B < R and B < G,

(28)

2.3.2. Deteksi Warna Kulit Menggunakan Model War na YCbCr

Menurut Liensberger mode warna RGB mencampurkan elemen-elemen luminositas dan kromatisitas. Luminositas adalah elemen kecerahan yaitu terang

dan gelap. Sedangkan kromatisitas adalah elemen warna murni sehingga terlihat perbedaan yang nyata (vivid) antara warna yang satu dengan warna yang lain. Model warna HSV, HIS, atau HSL (Hue, Saturation, Value/Intensity/Luminance) memisahkan elemen warna luminositas dan kromatisitas. Elemen warna Hue dan Saturation mewakili kromatisitas, sedangkan elemen warna Value/Intensity/Luminance mewakili luminositas. Dengan adanya pemisahan ini

maka ruang warna HSV/I/L bersifat invariant terhadap sumber cahaya.

Model warna HSV/I/L merupakan model warna yang mengkodekan nilai RGB secara non-linier. Model warna lain yang non-linier adalah model warna YCbCr yang umum digunakan pada studio televisi di Eropa untuk pekerjaan-pekerjaan pengolahan citra. Formula pengkodean dari RGB ke YCbCr adalah sebagai berikut : intensitas pixel gambar digital menjadi elemen luminositas dan kromasitas. Elemen luminositas diwakili oleh komponen Y, sedangkan elemen kromasitas adalah komponen Cb dan Cr.

(29)

diperlukan ‘cost’ baik dari sisi komputasi maupun dari sisi akurasi data mengingat terjadi proses perhitungan yang melibatkanbilangan-bilangan floating-point sehingga mengurangi tingkat akurasi walaupun tidak terlalu signifikan.

Namun dengan memisahkan elemen luminositas dan kromatisitas maka akan diperoleh informasi gambar robust terhadap orientasi. Yang mungkin menjadi persoalan adalah pemilihan model warna yang memberikan distribusi warna yang baik, kompak, sertatingkat kestabilan yang baik.

Untuk mengenali sebuah pixel yang merupakan pixel warna kulit atau bukan diperlukan beberapa penyeleksian kondisi dari hasil konversi RGB ke YCbCr. Sebuah pixel warna diidentifikasi sebagai warna kulit jika :

Cb [77,127] Cr [133,173]

(30)

YCbCr juga mempunyai sebuah nilai range untuk sebuah citra. YCbCr_min dan YCbCr_max adalah range warna untuk warna kulit seperti dibawah.

YCbCr_min = new Ycc ( 0, 131, 80 ) ;

YCbCr_max = new Ycc ( 255, 185, 135) ;

Dengan menggunakan batas-batas nilai tersebut, setiap pixel pada gambar yang telah diubah kedalam model warna tersebut akan diperiksa apakah pixel-pixel tersebut masuk kedalam kondisi batas-batas nilai warna tersebut. (Wahyu

Saputra, 2009)

2.4 Morphological Image Processing

Morphologi adalah teknik pengolahan citra digital dengan menggunakan bentuk (shape) sebagai pedoman dalam pengolahan. Nilai dari setiap pixel dalam citra digital hasil diperoleh melalui proses perbandingan antara pixel yang bersesuaian pada citra digital masukan dengan pixel tetangganya. Operasi morphologi bergantung pada urutan kemunculan dari pixel, tidak memperhatikan nilai numeric dari pixel sehingga teknik morphologi sesuai apabila digunakan untuk melakukan pengolahan binari image dan grayscale image.

(31)

pada batas dari suatu objek. Jumlah pixel yang ditambahkan atau yang dihilangkan dari batas objek pada citra digital masukan tergantung pada ukuran dan bentuk dari structuring element yang digunakan.

Perbedaan antara pemrosesan citra digital secara morfologis dengan pemrosesan biasa adalah sebagai berikut :

a. Pengolahan citra dasar sebelumnya hanya memandang sebuah citra sebagai suatu fungsi intensitas terhadap posisi (x,y)

b. Dengan pendekatan morfologi, kita memandang suatu citra sebagai sebuah himpunan

c. Pemrosesan citra secara morfologi biasanya dilakukan terhadap citra biner (hanya terdiri dari 0 dan 1), walaupun tidak menutup kemungkinan dilakukan terhadap citra dengan skala keabuan 0-255. (Wikipedia, 2009)

2.4.1 Dilasi

Dilasi adalah operasi morphologi yang akan menambahkan pixel pada batas antar objek dalam suatu citra digital. Atau secara rinci Dilasi merupakan suatu proses menambahkan pixel pada batasan dari objek dalam suatu image.

(32)

Gambar diatas merupakan hasil image setelah dilakukan proses Dilasi dari Original Image dengan Stucturing Element yang telah ditentukan di atas. Warna

hijau merupakan pixel tambahan setelah dilakukan Dilasi. (M. Taufik Yusuf, 2011)

2.4.2 Erosi

Erosi merupakan kebalikkan dari Dilasi. Proses ini akan membuat ukuran sebuah citra menjadi lebih kecil. Berbeda dengan dilatasi, apabila erosi dilakukan maka yang dikerjakan adalah memindahkan pixel pada batasan-batasan objek yang akan di erosi. Jumlah dari pixel yang ditambah atau dihilangkan bergantung pada ukuran dan bentuk dari structuring element yang digunakan untuk memproses image tersebut.

Gambar 2.6 Hasil Gambar Sebelum dan Sesudah Erosi

(33)

hijau merupakan pixel dihilangkan setelah dilakukan proses Erosi, sehingga pixel hasilnya hanya yang berwarna hitam. (M. Taufik Yusuf, 2011)

2.5 Segmentasi Citr a

Segmentasi Citra merupakan teknik untuk memisahkan atau mengisolasi suatu objek atau sebagian dari objek dari suatu image (memisahkan foreground dengan background). Banyak situasi dalam computer vision yang membutuhkan segmentasi atau memisahkan foreground atau suatu objek terhadap backgroundnya guna melihat aktifitas pixel dari objek yang objek yang ingin kita

lihat. Misalkan ketika suatu kamera keamanan dilengkapi pendeteksi pergerakan manusia atau objek lainnya yang menyerupai manusia dan beberapa binatang, maka kamera tersebut harus terlebih dahulu dapat melakukan segmentasi terhadap objek manusia ataupun binatang tertentu.

(34)

seperti morphology, flood fill, threshold, dan pyramid akan tetapi terdapat algoritma tersendiri yang dapat menghasilkan segmentasi yang cukup baik terutama dalam segmentasi kulit manusia yang dipakai dalam penelitian ini. (Fadlisyah, 2007)

2.6 Deteksi Kontur Tangan

Kontur merupakan daftar himpunan terurut pixel tepi atau komponen terhubung. Pelacakan kontur menggunakan metode contour tracking. Metode pelacakan kontur adalah metode untuk mendeteksi kontur luar dan kemungkinan kontur dalam, mengenali dan membuat label bagian dalam dari setiap komponen. Metode ini didasari pada kenyataan bahwa suatu komponen sepenuhnya ditentukan oleh kontur. Pelabelan dilakukan dengan sekali kunjungan yaitu dari atas ke bawah dan dari kiri ke kanan untuk setiap garis, namun demikian titik kontur kemungkinan dikunjungi lebih dari satu kali sampai sejumlah tertentu. Teknik ini selain melakukan pelabelan terhadap komponen terhubung juga melakukan ekstraksi kontur komponen terhubung dan mengurutkan titik kontur.

Kontur adalah suatu kumpulan poin atau titik yang didapatkan dari suatu komputasi atau perhitungan yang mewakili bentuk dari suatu batas objek pada suatu citra yang nantinya dihubungkan dengan garis dari setiap titik atau point yang telah didapat, sehingga menghasilkan kontur dari objek tersebut.

(35)

melakukan pencarian kontur terhadap suatu citra untuk melihat apakan ada kontur yang berbentuk seperti sebuah mobil dala suatu citra.

Kontur didalam openCV membutuhkan suatu tempat memory khusus untuk menampung sequence yang berisikan titik atau point-point yang ditemukan. Maka di dalam openCV dibuat suatu struktur data yang merupakan linkedlist yang sequential tersendiri untuk menampung titik-titik kontur tersebut yang disebut dengan sequence atau disingkat cvSeq (computer vision Sequential).

Dalam pencarian kontur ada 4 metode yang dapat digunakan dalam pengambilan kontur pada suatu citra yaitu Retrieval External, Retrieval Components, Retriecal List dan Retrieval Tree.

a. Retrieval External

Pengambilan kontur yang didasarkan hanya pada kontur-kontur yang terlihat jelas dan berada di bagian luar objek yang ada dalam citra. b. Retrieval List

Pengambilan seluruh kontur dan menyimpannya di dalam list. Tersimpan sebagai linkedlist.

c. Retrieval Components

Pengambilan seluruh kontur dan menyimpannya pada dua level hirarki dimana hirarki paling atas/top level boundaries (kontur yang paling luar yang melingkari hole) adalah external boundaries dari komponen sedangkan level kedua adalah boundaries dari hole.

(36)

Pengambilan seluruh kontur dan merekonstruksikannya ke dalam hirarki (full herarchy) menjadi kontur yang bersarang. (Niko Purwanto Putra, 2012)

2.6.1 Convexity dan Convexity Defects

Dalam menggambar shape atau suatu bentuk dalam suatu kontur yang sudah ditemukan dapat menggunakan metode Convexity and Convexity defects. Metode ini memberikan pemahaman pada komputer mengenai bentuk dari kontur yang ditemukan dengan memanfaatkan ketidak tepatan penggambaran shape yang mengelilingi objek, metode ini bukan hanya dapat mendapatkan karakteristik dari tangan tapi juga posisi tangan.

Convexity Defects berfungsi sebagai suatu metode untuk mendapatkan

kontur yang berkarakter kuat dan pasti pada suatu objek misalkan tangan. sedangkan convex hull biasa dipakai untuk mendapatkan kontur besar yang mengelilingi suatu objek.

Convexity dan convexity defects menggambarkan kontur dengan dua

(37)

Penjelasan dalam rumus diatas diketahui phi convex hull dibagi dengan phi shape dari benda tersebut. Sehingga dengan menggunakan convex hull kita akan

mendapatkan bentuk boundary dari tangan dengan batas-batas minimal.

Sedangkan untuk mendapatkan kontur atau menggambarkan kontur tepat mengelilingi kontur tangan dapat menggunakan metode convexity defects. Berikut adalah persamaan yang dipakai dalam openCV sesuai dengan advances visual computing 5th symposium :

Dimana v1,v2 adalah masing-masing vektor antara awal dan titik akhir pertama dan kedua convexity defects. Jika angle lebih rendah dari threshold terkecil, maka v1 dan v2 dari persamaan convexity defects tersebut dianggap sebagai kandidat yang mungkin untuk penyempitan (menjadi titik baru), selain itu maka convexity defects tidak dapat dipakai Berikut contoh convex hull dan convexity defects.

(38)

Convexity defect terlihat merupakan garis yang tepat mengelilingi tangan

dan merupakan shape atau bentuk yang minimalis, sedangkan garis kontur gelap adalah convex hull sekitar tangan. (Hendri Kharisma, 2010)

2.6.2 Convex Hull

Definisi dari convex hull adalah poligon yang disusun dari subset titik sedemikian sehingga tidak ada titik dari himpunan awal yang berada di luar poligon tersebut (semua titik berada di batas luar atau di dalam area yang dilingkupi oleh poligon tersebut).

Convex Hull dari kumpulan sejumlah titik adalah suatu convex set terkecil

yang didalamnya terdapat titik-titik tersebut. Dalam dua dimensi ini merupakan convex polygon. Simple polygon adalah bentuk dua dimensi yang mempunyai

(39)

Gambar 2.8 Convex Hull

2.7 Visual Basic

Bahasa Visual Basic adalah salah satu diantara sekian banyak bahasa pemrograman yang cukup banyak digunakan oleh para programmer. Visual Basic adalah bahasa pemrograman visual dengan dasar pemrograman bahasa BASIC. Bahasa BASIC (Beginner's All-purpose Sybolic Instruction Code) dikembangkan pertama kali pada awal 1950-an. Sementara bahasa Visual Basic, yang merupakan pengembangan bahasa BASIC dikembangkan pertama kali oleh Microsoft pada tahun 1991.

(40)

Tampilan dari Visual Basic 2010 seperti pada Gambar 2.8. berikut ini.

Gambar 2.9 Tampilan Lingkungan Visual Basic 2010

Agar bisa menguasai bahasa pemrograman Visual Basic, diharuskan mempelajari dasar-dasarnya dengan lebih baik dan kuat. Beberapa komponen utama dalam bahasa Visual Basic yang harus diketahui diantaranya :

Project

Project adalah sekumpulan modul. Jadi project (proyek) adalah program

aplikasi itu sendiri. Didalamnya terdapat form beserta code nya. Project ini disimpan dalam file berakhiran .vbproj.

Form

Form adalah object yang dipakai sebagai tempat bekerja program aplikasi.

(41)

Toolbox adalah kotak alat yang berisi icon-icon untuk memasukkan objek

tertentu ke dalam jendela form. Properties

Properties digunakan untuk menentukan setting suatu objek. Suatu objek

biasanya mempunyai beberapa properties yang dapat diatur langsung dari jendela properties atau lewat kode program.

Kode Program

Kode program adalah serangkaian tulisan perintah yang akan dilaksanakan

jika suatu objek dijalankan. Kode program ini akan mengontrol dan menentukan jalannya suatu objek.

Event

Event adalah peristiwa atau kejadian yang diterima oleh suatu objek,

misalnya klik, seret, tunjuk, dan lain-lain. Event yang diterima objek akan memicu MS VB menjalankan kode program yang ada di dalamnya. (Wikipedia ,2011)

2.8 OpenCV (Open Computer Vision)

OpenCV merupakan framework untuk membantu dalam membangun sistem yang menggunakan teknologi Computer Vision yang support terhadap Intel Image Processing Library (IPL). OpenCV di desain untuk mengefisiensikan

(42)

Recognition pada tahun 2000, pada pertengahan tahun 2008 disupport oleh Willow

Garage dan pada tahun 2009 di release OpenCv versi 2. (OpenCV, 2010)

2.9 Emgu CV

Emgu CV merupakan suatu library open source lintas platform. Emgu CV sebenarnya adalah .Net wrapper pada Open CV library image processing. Emgu CV dapat memanggil fungsi-fungsi pada Open CV dengan bahasa pemrograman kompatibel .Net.

Keuntungan menggunakan library Emgu CV adalah : a. Cross Platform

Emgu CV dapat dijalankan pada berbagai sistem operasi seperti Linux, MacOS, Windows, iPad, iPhone dan Android.

b. Cross Language

Meskipun ditulis dalam bahasa pemrograman C#, Emgu CV dapat digunakan oleh bahasa pemrograman lain yang kompatibel, seperti VB.NET, C++, dan IronPython.

Emgu CV memiliki 2 layer, layer 1 berisi function, structure, dan enumeration mappings yang secara langsung merefleksikan yang ada di Open

CV. Sementara layer 2 berisi class yang merupakan keuntungan dari bahasa pemrograman .Net.

(43)

Tabel 2.1. Fungsi Class – Class Pada Emgu CV

Class Description

AdaptiveSkinDetector Adaptive Skin Detector CameraCalibration Camera calibration functions

Capture Capture images from either camera or video

file

CascadeClassifier The Cascade Classifier

ColorInfoAttribute Attribute used to specify color information

Contour(T) Wrapped class for Contour

CvArray(TDepth) Wrapped CvArr

CvInvoke Library to invoke OpenCV functions

DenseHistogram A Dense Histogram

Class Description

ExtrinsicCameraParameters Extrinsic camera parameters

FaceRecognizer Face Recognizer

FeatureTree A wrapper for CvFeatureTree

FisherFaceRecognizer Fisher face recognizer

HaarCascade HaarCascade for object detection

HOGDescriptor A HOG discriptor

A Map is similar to an Image, except that the location of the pixels is defined by its area and resolution

Matrix(TDepth) A Matrix is a wrapper to cvMat of OpenCV

(44)

cvMemStorage of OpenCV

MotionHistory The motion history class

Octree Oct-Tree

OpticalFlow Contains a collection of optical flow methods

Class Description

PointCollection A collection of points

RotationMatrix2D(T) A (2x3) 2D rotation matrix. This Matrix defines an Affine Transform

Seq(T) Wrapper to cvSeq of OpenCV

SparseMatrix(TDepth) Create a sparse matrix

StereoBM Use Block Matching algorithm to find stereo

correspondence

StereoGC Use Graph Cut algorithm to find stereo

correspondence

VideoWriter Create a video writer that write images to video format

Pada EmguCV untuk melakukan perhitungan jari tangan dapat menggunakan class AdaptiveSkinDetector, Countur, CvArray, CvInvoke, dll. Sebenarnya banyak fungsi-fungsi dari EmguCV yang mempunyai kegunaan masing-masing, contohnya fungsi untuk mendeteksi sebuah wajah atau fungsi untuk mendeteksi gerakan suatu benda dll. Dan inilah class-class dalam emguCV yang digunakan untuk pembuatan aplikasi perhitungan jari tangan. (EmguCV, 2011)

Tabel 2.2. Class – Class yang digunakan pada Emgu CV

Class Description

(45)

Contour(T) Wrapped class for Contour

CvArray(TDepth) Wrapped CvArr

CvInvoke Library to invoke OpenCV functions

Image(TColor, TDepth) An Image is a wrapper to IplImage of OpenCV.

(46)

Pada bab ini akan dijelaskan mengenai proses pembuatan aplikasi menghitung jumlah jari pada citra tangan dengan menggunakan ruang warna YCbCr dan metode ConvexHull dan Convexity Defects.

3.1. Analisis Sistem

Secara garis besar proses perancangan aplikasi akan digambarkan seperti pada Gambar 3.1. di bawah ini.

(47)

Gambar 3.1. di atas merupakan desain flowchart dari pengembangan sistem pengenalan citra jari tangan menggunakan metode convex hull and defects. Berikut penjelasan dari flowchart diatas :

a. Start

b. Input image

Pada proses input image, user melakukan pengambilan gambar tangan yang ingin dideteksi yang berasal dari file browser komputer user. Gambar yang akan dideteksi harus file gambar yang ber-ekstensi .JPG / JPEG dengan ukuran gambar 391x324.

c. Pada proses YCbCr_min dan YCbCr_max, maka gambar yang telah diinputkan tadi akan ditentukan nilai value pada format warna YCbCr. Pada Emgu CV untuk menentukan format warna YCbCr value dapat dengan menggunakan nilai range sebagai berikut :

YCr Cb_mi n = New Ycc( 0, 131, 80) YCr Cb_max = New Ycc( 255, 185, 135)

d. Pada proses Convert to Ycc color maka akan dihasilkan gambar yang ber-range warna YCbCr. Dengan menggunakan warna YCbCr maka akan

dapat memudahkan dalam pendeteksian tangan manusia dengan memanfaatkan warna kulit manusia.

Berikut adalah konversi warna RGB ke dalam YCrCb : = 0.2999 ∙ + 587 ∙ + 114 ∙

(48)

= + 1.403 ∙ (Cr + elta )

= − 0.344 ∙ ( r − elta ) − 0.714 · ( b − elta ) = + 1.773 ∙ ( b − elta )

Dimana

Gambar 3.2. Hasil Konversi YCbCr Color

(49)

Gambar 3.3. Hasil Proses Dilate Pada Gambar

f. Pada proses Erode, derau-derau/noise yang terdeteksi didalam frame gambar akan dihapus sehingga menghasilkan gambar yang halus dan tidak ada noise.

Gambar 3.4. Hasil Proses Erode Pada Gambar

(50)

Gambar 3.5. Get Convex Hull and Convexity Defects

h. Menghitung Jari, fungsi ini akan melakukan penghitungan jumlah jari yang dideteksi dari tangan tersebut berdasakan oleh garis tepi dan garis polygon yang sudah diproses sebelumnya. Fungsi ini akan menetukan

mana bagian dari garis tepi yang cekung dan nantinya akan diasumsikan sebagai depthpoint dari cekungan tersebut. Kemudian mana bagian dari garis polygon yang menonjol dan nantinya akan diasumsikan sebagai startpoint.

(51)

3.1.1 Pre-processing

Gambar 3.6 Pra-proses

Tahap pre-processing seperti pada Gambar 3.6. di atas merupakan tahapan proses dari citra tangan yang nantinya akan diproses untuk pengenalan citra tangan sampai penghitungan jari tangan. Terdapat 4 tahapan dalam pre-processing diatas, antara lain :

a. YCbCr_min YCbCr_max

(52)

Pada tahap ini sebuah citra tangan akan ditentukan nilai value YCbCr Color-nya dengan fungsi YCbCr_min dan YCbCr_max. Tujuannya dari tahapan

ini adalah untuk menentukan nilai value format warna YCbCr yang ada pada suatu citra. Pada Emgu CV untuk menentukan format YCbCr dengan menggunakan perintah :

Dim YCrCb_min As Ycc Dim YCrCb_max As Ycc

b. Konversi Threshold

Gambar 3.8 Proses konversi Treshold

(53)

image_result = image_scr.Convert(Of Gray, Byte)()

dimana :

image_scr as image awal berformat RGB

image_result as image hasil berformat grayscale

c. Dilate

Gambar 3.9 Proses dilate

Pada tahapan dilate ini adalah proses yang menyempurnakan dari proses citra gambar black white untuk mempertebal dan memperjelas kontur dari tangan yang sudah terdeteksi. Citra tangan akan ditemukan oleh proses ini. Sehingga tepian terlihat lebih jelas.

d. Erode

(54)

Pada tahapan erode ini adalah proses yang menyempurnakan dari citra gambar black white untuk menghapus derau-derau/noise yang terdeteksi didalam frame gambar sehingga menghasilkan gambar yang halus dan tidak ada noise.

Citra tangan akan ditemukan oleh proses ini, sehingga tepian terlihat lebih halus dan mulus.

3.2. Segmentasi Citr a Tangan

Pada tahap deteksi tangan dengan metode convex hull dan convexity defects terdapat proses-proses tertentu dalam implementasi metode tersebut,

diantaranya metode convex hull memerlukan citra 1 bit dan merupakan contour hasil threshold. Pembuatan citra hasil threshold dilakukan dengan melakukan segmentasi menggunakan metode cvInRange untuk melakukan segmentasi dengan nilai maximum dan minimum warna kulit dengan format YCrCb, lalu dikenakan cvDilate untuk melakukan segmentasi pada citra dengan hasil cvRangeS sebelumnya dan cvErode untuk memperjelas atau mempertegas hasil threshold yang di dapat.

Berikut adalah psudeocode prosedur getGraber yang merupakan proses segmentasi warna kulit :

Procedure Dim grabber As Image()

1 : image := grabber = New Image(Of Bgr, Byte)

2 : ConvertColor(image, imageCopy, CV_RGB_To_YCbCr) 3 : InRanges(currentYCbCrFrame, min, max, skin) 4 : ConvexHulldanDefects()

(55)

Sedangkan untuk algoritma pada convert color YcbCr sendiri yaitu : Procedure Dim grabber As Image()

1 : input:

10: let mask = colorclose(Cb_p, Cr_p, Cb_key, Cr_key, tola, tolb)

11: let mask = 1.0 - mask

12: out(i,j) = fg(i,j) - mask*key_color + bg(i,j)*mask 13: end return;

14: end

Pada gambar 3.11 merupakan contoh hasil segmentasi menggunakan nilai maksimum dan minimum dari warna kulit.

Gambar 3.11. Contoh Hasil Segmentasi

(56)

Procedure Dilation()

Berikut adalah psudeocode prosedur erode yang menentukan wilayah warna kulit :

Procedure Dim skinErode As Image()

1 : image := grabber = New Image(Of Bgr, Byte)

3.3. Pencarian Kontur Tangan

Setelah proses diatas barulah dapat dilakukan proses pencarian contour dengan menggunakan metode Finding Contour dan mencari kontur terbesar atau biggest contour. Dalam tahap ini digunakan rutin emguCV yaitu cvFindContours.

(57)

Procedure ConvexHulldanDefects()

1 : contour = FindCountur(skin,contour,storage) 2 : do while contour <> Null

3 : result1 = contour.Area 4 : if result1 > result2 then 5 : result2 = result1

6 : biggestContour = contour 7 : endif

8 : contour := contour.next 9 : enddo

10: if biggestCountur <> Null then

11: DrawCountur(biggestCountur,storage) 12: hull = convexHull(biggestCountur)

13: imageBox = cvMinRect(biggestCountur,storage) 14: imageCenter = createCircle(imageBox)

15: defects = ConvexityDefects(biggestCountur, hull) 16: endif

17: end

Pada gambar 3.12 merupakan contoh hasil ekstraksi kontur yang didapat setelah melakukan segmentasi dari warna kulit.

Gambar 3.12. Contoh Hasil Pencarian Kontur

3.4. Convex Hull dan Convexity Defects dar i Tangan

(58)

convex hull untuk mendeteksi bidang tangan dan convexity defects yang nantinya

titik hasil dari convexity defects digunakan untuk komputasi menghitung jari. Parameter input dalam convex hull merupakan contour hasil komputasi sebelumnya. Parameter hull_storage merupakan tampat alokasi sequence hasil komputasi convex hull sedangkan orientation bernilai default dengan konstanta CV_CLOCKWISE yang bernilai 1 yang artinya proses komputasi searah jarum jam. Dan tipe data dari return value convex hull merupakan sequence hasil dari komputasi artinya contour yang sudah menunjukan lekuk dari tangan manusia.

Setelah mendapatkan hull tangan manusia yang merupakan lekuk dari tangan manusia lalu proses dilanjutkan dengan menghitung titik defects dengan metode convexity defects. Berbeda dengan convex hull, convexity defects memiliki tipe data tersendiri sebagai hasil komputasinya yaitu CvConvexityDefect yang nanti berfungsi menampung titik defects yang akan digunakan sebagai parameter untuk menghitung jumlah jari manusia.

Parameter kontur merupakan kontur dari tangan hasil threshold pencarian warna kulit, sedangkan parameter convexhull merupakan nilai hull hasil komputasi convex hull sebelumnya. Yang dihasilkan berupa sequence yang nantinya dirubah dalam tipe data cvConvexityDefects array 2 dimensi. Pada gambar 3.2 adalah langkah yang dibutuhkan untuk menggunakan metode Convex-Hull dan Convexity Defects hingga hasil dari metode digunakan untuk melakukan

(59)

Procedure MenghitungJari()

1 : For i=0 to defects.total.do 2 : startPoint = arrDefects.Start 3 : endpoint = arrDefects.End 4 : deptPoint = arrDefects.Dept

5 : if ((startPoint.y < imageBox.y) OR (deptPoint.y < imageBox.y)) AND (startPoint.y < deptPoint.y) && (sqrt(pow(startPoint.x = deptPoint.x,2) + pow(startPoint = deptPoint.y,2)) > (imageBox.height /6.0)) then

6 : fingerNum = fingerNum + 1

7 : cvLine(image, startPoint, deptPoint) 8 : endif

9 : cvCircle(image, startPoint, 2, 5) 10: cvCircle(image, deptPoint),2, 5) 11: enddo

12: end

3.5. Perancangan Interface

Interface merupakan suatu halaman perangkat lunak sebagai tempat

interaksi bagi pengguna dan perangkat lunak tersebut. Tujuan dari perancangan interface berikut ini agar pengguna dapat memahami jalan kerja program dengan

mudah.

3.5.1. Interface Tampilan Awal

(60)

Gambar 3.13. Desain Tampilan Awal

3.5.2. Interface Menu Load Images

Pada form seperti pada Gambar 3.14. dibawah, pengguna dapat memilih gambar dari file gambar komputer pengguna dengan mengklik tombol load images. Gambar yang akan dideteksi yaitu gambar yang ber-ekstensi jpg file dan

sudah memiliki ukuran yang sesuai dengan frame aplikasi.

Gambar 3.14. Desain Tampilan Menu Load Image

x

Finger Recognition YCbCr Color in BW

Image

Load

x

Finger Recognition YCbCr Color in BW

Image

(61)

3.5.3. Interface Finger Recognition

Pada ImageBox seperti pada Gambar 3.15 dibawah, akan muncul gambar yang sudah terdeteksi jari tangan pengguna disertai jumlah jari yang terdeteksi. Pada ImageBox ini akan disertai pula garis-garis yang mempermudah user dalam mengetahui berdasarkan apa tangan yang dideteksi dalam imagebox tersebut.

Gambar 3.15. Desain Tampilan ImageBox Finger Recognition

3.5.4. Interface YCbCr Detection

Pada ImageBox seperti pada Gambar 3.16 dibawah, akan muncul gambar hasil dari format YCbCr dalam bentuk Black and White Picture. Menggunakan Black and White Picture bertujuan untuk memudahkan para pengguna aplikasi

dalam menentukan kontur dari sebuah tangan yang akan dideteksi. Tentunya format warna ini berasal dari format warna YCbCr yang sudah dikonvert ke nilai Threshold Black and White Picture.

x

Finger Recognition YCbCr Color in BW

Image

(62)

Gambar 3.16. Desain Tampilan ImageBox YCbCr Detection

3.6. Lingkungan Implementasi

Untuk dapat melalukan implementasi sistem secara optimum, maka dibutuhkan spesifikasi sistem perangkat lunak (software) ataupun perangkat keras (hardware) yang memadai.

Pada bagian ini akan dijelaskan mengenai perangkat keras dan perangkat lunak yang digunakan pada implementasi aplikasi pengenalan jari tangan ini.

a. Perangkat Keras

Perangkat keras yang digunakan untuk implementasi aplikasi pengenalan citra jari tangan ini adalah :

Komputer dengan processor AMD Turion™ II Dual-Core Mobile M500 (2 CPUs), ~2.2GHz

• 3072 MB RAM

x

Finger Recognition YCbCr Color in BW

Image

(63)

• VGA Card ATI Mobility Radeon HD 4200 1474 MB • Monitor 14”

Hard Disk 320 GigaByte

b. Perangkat Lunak

Perangkat lunak yang digunakan untuk implementasi aplikasi pengenalan citra jari tangan ini adalah :

• Sistem Operasi Microsoft Windows 7 Professional 32-bit (6.1, Build 7601) Service Pack 1

(64)

Pada bab IV ini akan dijelaskan mengenai implementasi dari rancangan program yang telah dibuat pada bab III. Bagian implementasi aplikasi menghitung citra jari tangan ini meliputi : lingkungan implementasi, implementasi data, implementasi interface, implementasi proses, uji coba dan evaluasi aplikasi.

4.1. Implementasi Data

Data yang akan diimplementasikan pada proses pembuatan aplikasi menghitung citra jari tangan dengan metode deteksi kontur dan format warna YCbCr menggunakan library Emgu CV ini berupa citra yang telah di-capture

melalui web-camera yang akan diproses melalui beberapa tahapan untuk menyimpan dan melakukan pengenalan citra jari tangan yang terdeteksi tersebut.

4.2. Implementasi Interface

(65)

Gambar 4.1. Tampilan Loading Pembuka

Tampilan diatas merupakan tampilan ketika awal aplikasi dijalankan, user diminta untuk menunggu proses yang akan dimulai. Tampilan ini hanya dikhususkan untuk memperindah tampilan aplikasi.

Gambar 4.2. Tampilan Utama Aplikasi

(66)

• tombol (exit),

• tombol (search),

Tombol exit berfungsi untuk keluar dari aplikasi pengenalan citra jari tangan tersebut, tombol search berfungsi untuk menampilkan file browser dari data laptop/pc.

Tampilan aplikasi telah disusun sedemikian rupa dengan tujuan untuk mempermudah pengguna dalam memahami dan menggunakan aplikasi pengenalan citra jari tangan tersebut.

Ketika pengguna mengklik tombol search maka akan ditampilkan seperti pada Gambar 4.3.

Gambar 4.3. Tampilan Search

(67)

Dengan demikian maka akan terdeteksi pula jumlah jari yang ada pada gambar beserta gambar yang sudah di konversi ke threshold (frame sebelah kanan).

4.3. Implementasi Pr oses

Bagian implementasi proses ini menjelaskan mengenai implementasi proses-proses sesuai dengan konsep yang telah dibuat pada bab III seperti yang telah digambarkan dalam flowchart.

Aplikasi pengenalan citra jari tangan ini merupakan aplikasi yang menggunakan library Emgu CV, oleh karena itu sebelum proses coding maka diperlukan untuk melakukan konfigurasi pada komputer dan Microsoft Visual Studio 2010 agar dapat menjalankan fungsi-fungsi yang terdapat dalam library Emgu CV tersebut. Berikut ini adalah langkah-langkahnya :

1. Instalasi Open CV dan Konfigurasinya

Untuk memulai instalasinya, double klik pada file Open CV yang sudah didownload. Sebenarnya ini bukanlah instalasi, melainkan hanya mengekstrak file saja. Pilih lokasi untuk mengekstrak file .exe Open CV. Untuk lebih memudahkan kita ekstrak saja pada drive C. Setelah proses ekstrak file selesai, tahap selanjutnya adalah melakukan setting path agar file library Open CV dapat dipanggil dari Visual Studio. Klik kanan pada Computer, pilih Properties kemudian pilih Advanced system settings

(68)

Gambar 4.4. Tampilan Setting Open CV ke-1

Kemudian klik Environment Variables seperti pada Gambar 4.6.

Gambar 4.5. Tampilan Setting Open CV ke-2

(69)

;C:\opencv\build\x86\vc10\lib\;C:\opencv\build\bin\;C:\opencv\build\x86

\vc10\bin\ seperti pada Gambar 4.7.

Gambar 4.6. Tampilan Setting Open CV ke-3

Klik OK, kemudian restart komputer agar system dapat mengenali path baru tersebut.

2. Instalasi Emgu CV dan Konfigurasinya

Seperti instalasi pada Open CV untuk memulai instalasi double klik pada file Emgu CV yang sudah didownload. Pilih drive C untuk mengekstrak file .exe Emgu CV.

(70)

Gambar 4.7. Tampilan Setting Emgu CV ke-1

Pada tab browse pilih lokasi penginstalan Emgu CV kemudian pilih folder bin. Pilih file Emgu.CV.dll, Emgu.CV.UI.dll dan Emgu.Util.dll seperti pada Gambar 4.8.

(71)

Setelah menambahkan library kemudian menambahkan beberapa komponen Emgu CV ke toolbox. Komponen ini nantinya dapat digunakan untuk menampilkan gambar seperti picture box. Untuk menambahkan komponen, terlebih dahulu pilih bagian General pada Toolbox. Kemudian klik kanan dan pilih Choose Items seperti pada

Gambar 4.9.

Gambar 4.9. Tampilan Setting Emgu CV ke-3

Lanjutkan dengan mengklik tombol Browse dan pilih file Emgu.CV.UI.dll pada folder bin di lokasi folder Emgu CV. Kemudian

(72)

Gambar 4.10. Tampilan Setting Emgu CV ke-4

(73)

Pada view code di project yang telah dibuat tambahkan kode sebagai berikut :

Imports Emgu.CV

Imports Emgu.CV.Structure

Imports Emgu.CV.CvEnum

4.3.1. Pr oses Input Gambar pada File Explorer PC

Proses input gambar ini merupakan sebuah proses untuk menginputkan gambar yang diambil dari file explorer PC/Laptop user yang nantinya akan digunakan untuk memulai pengenalan citra jari tangan pada gambar yang ingin dideteksi dan menampilkannya pada form yang telah disediakan. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles Button1.Click

(74)

4.3.2. Pr oses Deteksi YCbCr

Proses Deteksi YCbCr ini merupakan proses mengkonversi image berwarna RGB menjadi YCbCr color kemudian dimplementasikan ke black white image . Berikut adalah potongan source code untuk proses tersebut :

... ... ...

currentFrameCopy = currentFrame.Copy()

YCrCb_min = New Ycc(0, 131, 80)

YCrCb_max = New Ycc(255, 185, 135)

Dim currentYCrCbFrame As Image(Of Ycc, Byte) =

currentFrameCopy.Convert(Of Ycc, Byte)()

Dim skin As Image(Of Gray, Byte) = New Image(Of Gray,

Byte)(currentFrameCopy.Width, currentFrameCopy.Height)

skin = currentYCrCbFrame.InRange(CType(YCrCb_min, Ycc),

CType(YCrCb_max, Ycc))()

... ... ...

4.3.3 Pr oses Convex Hull dan Defects

Pada proses ini Convexity Defect berfungsi sebagai suatu metode untuk mendapatkan kontur yang berkarakter kuat dan pasti pada suatu objek yaitu tangan. Sedangkan convex hull biasa dipakai untuk mendapatkan kontur besar yang mengelilingi suatu objek tangan tersebut. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

If (Not (biggestContour) Is Nothing) Then

Dim currentContour As Contour(Of Point) =

biggestContour.ApproxPoly((biggestContour.Perimeter * 0.0025), storage)

currentFrameCopy.Draw(currentContour, New Bgr(Color.LimeGreen), 2)

(75)

hull = biggestContour.GetConvexHull (Emgu.CV.CvEnum.ORIENTATION. CV_CLOCKWISE)

box = biggestContour.GetMinAreaRect()

Dim points() As PointF = box.GetVertices()

Dim ps() As Point = New Point((points.Length) - 1) {}

Dim i As Integer = 0

Do While (i < points.Length)

ps(i) = New Point(CType(points(i).X, Integer), CType(points(i).Y,

Integer)) i = (i + 1)

Loop

currentFrameCopy.DrawPolyline(hull.ToArray, True, New Bgr(200,

125, 75), 2)

currentFrameCopy.Draw(New CircleF(New PointF(box.center.X,

box.center.Y), 3), New Bgr(200, 125, 75), 2)

filteredHull = New Seq(Of Point)(storage)

Dim j As Integer = 0

Do While (j < hull.Total)

If (Math.Sqrt((Math.Pow((hull(j).X - hull((j + 1)).X), 2) +

Math.Pow((hull(j).Y - hull((j + 1)).Y), 2))) _

> (box.size.Width / 10)) Then

(76)

dihubungkan yang kemudian dihasilkan menjadi nilai 1 pada kontur yang dideteksi.

Setelah proses pengenalan citra jari tangan selesai, maka akan ditampilkan hasil dari pengenalan citra tersebut dengan Text yang berada diantara frame.

Berikut ini adalah potongan source code untuk proses tersebut :

... ... ...

Do While (i < defects.Total)

Dim startPoint As PointF = New

PointF(CType(defectArray(i).StartPoint.X, Single),

CType(defectArray(i).StartPoint.Y, Single))

Dim depthPoint As PointF = New

PointF(CType(defectArray(i).DepthPoint.X, Single),

CType(defectArray(i).DepthPoint.Y, Single))

Dim endPoint As PointF = New

PointF(CType(defectArray(i).EndPoint.X, Single),

CType(defectArray(i).EndPoint.Y, Single))

Dim startDepthLine As LineSegment2D = New

LineSegment2D(defectArray(i).StartPoint,

defectArray(i).DepthPoint)

Dim depthEndLine As LineSegment2D = New

LineSegment2D(defectArray(i).DepthPoint, defectArray(i).EndPoint)

Dim startCircle As CircleF = New CircleF(startPoint, 5.0!)

Dim depthCircle As CircleF = New CircleF(depthPoint, 5.0!)

Dim endCircle As CircleF = New CircleF(endPoint, 5.0!)

If ((startCircle.Center.Y < box.center.Y Or depthCircle.Center.Y <

box.center.Y) And (startCircle.Center.Y < depthCircle.Center.Y)

And (Math.Sqrt(Math.Pow(startCircle.Center.X -

depthCircle.Center.X, 2) + Math.Pow(startCircle.Center.Y -

depthCircle.Center.Y, 2)) > box.size.Height / 6.5)) Then

fingerNum = (fingerNum + 1)

(77)

End If

... ... ...

4.4. Uji Coba Program

Pada sub bab ini akan dijelaskan tentang uji coba terhadap aplikasi pengenalan citra jari tangan yang telah dibuat dan selanjutnya akan dievaluasi dari hasil uji coba tersebut. Uji coba dilaksanakan untuk mengetahui kemampuan aplikasi dapat berjalan dengan baik sesuai dengan rancangan. Evaluasi dilakukan untuk menentukan tingkat keberhasilan dari aplikasi yang dibuat.

4.4.1. Skenario Uji Coba

Untuk memastikan bahwa aplikasi ini berjalan dengan baik, diperlukan adanya skenario yang akan dicoba, antara lain :

a. Melakukan pengambilan contoh sample gambar dengan menggunakan web-cam laptop/pc atau juga bisa browsing dari internet. Posisi tangan

harus bervariasi agar dapat mengamati tingkat keberhasilan yang tepat. b. Melakukan proses pengenalan citra jari tangan dan menguji tingkat

(78)

4.4.2. Pelaksanaan Uji Coba

Setelah melakukan perancangan interface aplikasi dan pengcodingan program kemudian adalah menguji aplikasi tersebut. Dari project yang telah dibuat tekan F5 untuk memulai menjalankan aplikasi pengenalan citra jari tangan tersebut. Pertama kali dibuka maka akan muncul tampilan proses menunggu untuk user, tampilan ini hanya untuk keindahan dari interfaces aplikasi tersebut seperti

pada Gambar 4.12.

Gambar 4.12. Uji Coba Tampilan Please Wait awal aplikasi

(79)

Gambar 4.13. Uji Coba Tampilan Utama Aplikasi

Uji coba pertama adalah melakukan browse gambar yang ingin kita deteksi. Klik tombol “search” dan kemudian kita akan masuk kedalam file browser pc/laptop kita seperti Gambar 4.14.

(80)

Setelah itu kembali ke aplikasi, setelah memilih gambar yang akan dideteksi maka akan langsung terdeteksi jumlah jari tangan user pada tengah aplikasi seperti pada Gambar 4.15.

Gambar 4.15. Uji Coba Tampilan keberhasilan pendeteksian

Jika ingin keluar dari aplikasi ini hanya Klik tombol “power” dipojok kanan atas, desain ini memudahkan kita dalam mencari tombol keluar.

4.5. Evaluasi Aplikasi

(81)

4.5.1. Analisis Pr oses Pengambilan Citr a J ari Tangan

Pada tahap pengujian Mengitung Jari Tangan ini akan diuji berdasarkan tingkat ketepatan dalam mendeteksi area jari tangan dari citra tangan yang ter-capture. Pengujian Menghitung Jari Tangan ini dilakukan dalam kondisi cahaya

yang terang. Jarak citra tangan dengan web-camera adalah konstan ±30 cm. Berikut adalah contoh scan/model gambar yang akan dideteksi seperti pada Tabel 4.1.

Tabel 4.1. Contoh Model Gambar Pengambilan Jari Tangan

J ari 1 J ari 2 J ari 3 J ari 4 J ari 5

Dari kelima contoh gambar/sample diatas maka akan dikumpulkan dari berbagai model tiap jari, kemudian akan dideteksi tiap model seperti pada Tabel 4.2.

(82)

Uji

11 Gambar 2-5.jpg Berhasil 12 Gambar 2-6.jpg Berhasil

13 Gambar 2-7.jpg Berhasil 14 Gambar 2-8.jpg Berhasil

(83)

2-Uji

27 Gambar 3-1.jpg Berhasil 28 Gambar 3-2.jpg Berhasil

29 Gambar 3-3.jpg Berhasil 30 Gambar 3-4.jpg Berhasil

31 Gambar 3-5.jpg Berhasil 32 Gambar 3-6.jpg Berhasil

(84)

Uji

15.jpg Berhasil 42 Gambar 4-1.jpg Berhasil

43 Gambar 4-2.jpg Berhasil 44 Gambar 4-3.jpg Berhasil

45 Gambar 4-4.jpg Berhasil 46 Gambar 4-5.jpg Berhasil

(85)

49 Gambar 4-8.jpg Berhasil 50 Gambar 5-1.jpg Berhasil

Dari percobaan pada pengenalan jari tangan yang telah dilakukan, dapat dilihat bahwa dari 50 kali uji coba menghasilkan jari tangan berhasil terdeteksi sebanyak 46 kali dan 4 kali tidak terdeteksi. Tingkat keberhasilan akurasi pengenalan jari tangan ini sangat tinggi yaitu mencapai : 46/50*100% = 92% .

4.5.2. Analisis Pr oses Menghitung J ari Tangan

Pada tahap pengujian Menghitung Jari Tangan ini dilakukan untuk mengetahui keberhasilan aplikasi tersebut pada kondisi pencahayaan yang terang.

(86)

Berdasarkan seluruh kegiatan yang dilakukan mulai dari pembahasan teori, perancangan aplikasi hingga pengujian terhadap aplikasi menghitung citra jari tangan menggunakan format warna YCbCr dan teknik deteksi kontur pada library Emgu CV ini maka dapat diambil beberapa kesimpulan dan memberikan

beberapa saran sebagai berikut.

5.1. Kesimpulan

Setelah melakukan uji coba dan evaluasi pada tugas akhir ini maka dapat diambil kesimpulan sebagai berikut :

a. Proses deteksi citra jari tangan dengan menggunakan convex hull dan conviexity defects mempunyai tingkat akurasi tinggi hingga 92% dalam

kondisi pencahayaan yang terang.

b. Kondisi pencahayaan, background dan pose citra tangan mempengaruhi tingkat akurasi penghitungan.

5.2. Sar an

Beberapa saran yang dapat penulis berikan untuk pengembangan tugas akhir ini adalah sebagai berikut :

(87)
(88)

Vision Projects, www.it-ebooks.info, diakses tanggal 1 Agustus 2013 Emgu CV http://www.emgu.com/wiki/index.php/Main_Page, diakses tanggal 1

Oktober 2013

Wikipedia http://id.wikipedia.org/wiki/JPEG, diakses pada tanggal 2 Oktober 2013

Scribd http://www.scribd.com/masdalco, Published by M. Taufik Yusuf diakses pada tanggal 2 Oktober 2013

G. Bradski, Kehler, Adrian, Learning OpenCV First ed. New Yourk: O'Relly, 2008.

Fadlisyah, Computer Vision dan Pengolahan Citra: Andi, 2007.

Prasetyo Eko, (2011), Pengolahan Citr a Digital Dan Aplikasinya Menggunakan Matlab, Penerbit Andi, Yogyakarta

Purwanto Ari, http://aripurwanto.blog.upi.edu/files/2009/06/tro_0608627.pdf, , diakses tanggal 12 Oktober 2013

Setting Emgu CV, http://www.emgu.com/wiki/index.php/Setting_up_ EMGU_C_ Sharp, , diakses tanggal 20 Oktober 2013

Sitorus Syahriol dkk., (2006), Pengolahan Citr a Digital, USU Press, Medan Anil K. Jain, (1989), Fundamentals of Digital Image Processing, Prentice Hall Balza dan Kartika Firdausy, (2005), Teknik Pengolahan Citra, Ardi Publishing,

(89)

Komando Deteksi Citra Pergerakan, Surabaya.

Edi S. Mulyanta, (2006). Dari Teori Hingga Praktik : Pengolahan Digital Image dengan Photoshop CS2, Jakarta.

Hendri Kharisma, (2011). Implementasi Hand Tr acking Pada Kontr ol Mouse Pointer Menggunakan Algoritma Phyramidal Lucas-Kanade,

Bandung.

Djoni Haryadi Setiabudi, (2002).Uji Kecepatan Algoritma Convex-Hull: Graham dan Melkman, Surabaya.

Wahyu S J Saputra, (2009). Perancangan dan pembuatan aplikasi

pendeteksian gambar terbuka menggunakan model warna YCbCr, Surabaya.

Gambar

Gambar 2.6 Hasil Gambar Sebelum dan Sesudah Erosi
Gambar 2.8 Convex Hull
Gambar 2.9 Tampilan Lingkungan Visual Basic 2010
Tabel 2.1. Fungsi Class – Class Pada Emgu CV
+7

Referensi

Dokumen terkait

Manajemen sumber daya manusia (MSDM) merupakan penerapan pendekatan SDM dimana secara bersama-sama terdapat dua tujuan yang ingin dicapai yakni tujuan pembangunan

Berdasarkan uraian latar belakang masalah diatas maka penulis tertarik untuk melakukan penelitian dengan judul “Pengaruh Current Ratio (CR), Debt To Equity Ratio

9.3 Sekiranya berlaku apa-apa gangguan atau sebarang tuntutan diambil ke atas UiTM oleh Pemberi Sewa atau mana-mana pihak lain yang mempunyai kepentingan ke

Nilai koefisien regresi variabel penggangguran bertanda positif berarti setiap peningkatan pengangguran akan mengurangi pertumbuhan ekonomi (Y) di Kota Tual, dengan

Pemanfaatan ruang terbuka hijau seperti taman flora dan fauna di Surabaya atau yang sering disebut sebagai kebun Bibit Bratang Surabaya menjadi jawaban dari kota

Rosliana (1998) dalam skripsinya yang berjudul Alih Kode dan Campur Kode Pada Penutur Bahasa Indonesia, mengatakan bahwa alih kode dan campur kode adalah merupakan peristiwa

Memaklumkan tentang pelaksanaan ISMS, pemantauan ISMS, audit dan kajian semula pengurusan kepada staf berkaitan yang bertanggungjawab dalam proses keselamatan

Kriterianya adalah Pencatatan harus dilakukan segera setelah melaksanakan asuhan pada formulir yang tersedia ( Rekam Medis / KMS / Status pasien dan Buku KIA), kemudian