Image en Dan Restoration

Embed Size (px)

Citation preview

PROYEK AKHIR

IMAGE DATABASE MENGGUNAKAN SISTEM CONTENT BASED IMAGE RETRIEVAL DENGAN EKSTRAKSI FITUR TERSTRUKTUR

Oleh : Bayu Bagus NRP: 7404.030.055

Dosen Pembimbing : Nana Ramadijanti, S.Kom, M.kom NIP: 132.206.161

Rengga Asmara, S.Kom, OCA NIP: 132.310.244

JURUSAN TEKNOLOGI INFORMASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2007

PROYEK AKHIR

IMAGE DATABASE MENGGUNAKAN SISTEM CONTENT BASED IMAGE RETRIEVAL DENGAN EKSTRAKSI FITUR TERSTRUKTUR

Oleh : Bayu Bagus NRP: 7404.030.055

JURUSAN TEKNOLOGI INFORMASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2007

IMAGE DATABASE MENGGUNAKAN SISTEM CONTENT BASED IMAGE RETRIEVAL DENGAN EKSTRAKSI FITUR TERSTRUKTUR Oleh : Bayu Bagus 7404.030.055 Diajukan sebagai salah satu syarat untuk menyelesaikan Studi pada Program Pendidikan Diploma III Politeknik Elektronika Negeri Surabaya-ITS

Surabaya, Juli 2007 Disetujui oleh : Tim Penguji Proyek Akhir : Dosen Pembimbing : Dosen Penguji I Dosen Pembimbing I

Arif Basofi S.Kom NIP: 132.303.872 Dosen Penguji II

Nana Ramadijanti, S.Kom, M.Kom NIP: 132.206.161 Dosen Pembimbing II

Wiratmoko Yuwono S.T NIP: 132.316.238 Dosen Penguji III

Rengga Asmara, S.Kom, OCA NIP: 132.310.244

Setiawardhana S.T NIP: 132.310.243 Mengetahui, Ketua Jurusan Teknologi Informasi

Iwan Syarif, S.Kom, M.Kom NIP: 132.134.725

ABSTRAKContent Based Image Retrieval System (CBIR) adalah teknik untuk mencari gambar yang berhubungan dan mempunyai karakteristik dari sebuah sekumpulan gambar. Pada proyek akhir ini digunakan Shape (bentuk) sebagai ekstraksi fitur dari gambar baik gambar query maupun gambar yang ada pada sekumpulan gambar. Kemudian untuk proses matching antara gambar query dengan gambar target yang ada pada sekumpulan gambar dilakukan perhitungan jarak (Euclidean distance) dari gambar query dengan gambar target pada sekumpulan gambar. Nilai jarak yang paling minimal merupakan gambar yang memiliki kemiripan dengan gambar query. CBIR dengan metode shape ini lebih cocok digunakan pada gambar-gambar yang memiliki background atau latar belakang yang polos yang komplek serta ukuran gambar yang tidak terlalu jauh.

Kata kunci : content based image retrieval system, bentuk, metode euclidean distance.

i

ABSTRACTContent Based Image Retrieval System (CBIR) is the set of techniques for retrieving relevant images from an image database based on automatically-derived image feature. In this final project, shape is used to extracting the feature from image, wheter it is a query image or a target image on database. Afterwards, by calculating the Euclidean distance value of image query and target image on database does the matching process between query image and target image. The distance that smallest value is the image that has similar characteristic with image query. CBIR with shape feature more suitable for used to pictures have simple background and the pictures must have small different size each other. Key Words : content based image retrieval system, shape, euclidean distance.

ii

KATA PENGANTARDengan mengucap puji syukur kepada Allah SWT, atas limpahan rahmat dan hidayahNya, serta perlindungan, pertolongan dan ridho-Nya kepada kami sehingga kami dapat menyelesaikan Proyek Akhir ini tepat pada waktunya, serta tak terlupakan iringan salam dan sholawat bagi junjungan kami Nabi Muhammad SAW. Dengan pengerahan segenap usaha kami akhirnya kami dapat menyelesaikan proyek akhir kami yang berjudul :

IMAGE DATABASE MENGGUNAKAN SISTEM CONTENT BASED IMAGE RETRIEVAL DENGAN EKSTRAKSI FITUR TERSTRUKTURBuku proyek akhir ini diajukan guna memenuhi persyaratan kurikulum pada tahap akhir semester VI di Politeknik Elektronika Negeri Surabaya. Penulis telah bersikeras sekuat tenaga dan pikiran dengan harapan hasil yang sebaik mungkin, namun penulis menyadari sepenuhnya bahwa buku ini masih banyak kekurangannya. Untuk itu penulis mohon maaf yang sebesar-besarnya dan sangat mengharapkan saran dan kritik dari semua pembaca agar kekurangan dan kesalahan dapat diperbaiki demi sempurnanya buku ini. Demikian uraian singkat ini, besar harapan buku proyek akhir ini bermanfaat bagi penulis serta bagi pembaca pada umumnya untuk menambah pengetahuan.

Surabaya, Juli 2007

Penulis

iii

UCAPAN TERIMA KASIHMelalui kesempatan ini, penulis ingin menyampaikan ucapan terima kasih dari dalam hati atas selesainya tugas akhir ini. Khususnya rasa syukur kepada Allah SWT yang telah banyak memberikan kekuatan dan rahmat-Nya kepada penulis. Dan tanpa menghilangkan rasa hormat yang mendalam saya mengucapkan terima kasih kepada pihak-pihak yang telah membantu saya antara lain : 1. Ayah dan Bunda tercinta, atas doa dan dukungannya yang selalu diberikan kepadaku. 2. Semua adik adikku yang telah menyemangatiku. 3. Para Alim Ulama yang secara tidak langsung telah mendoakanku dengan tulus. 4. Bapak Dr Ir Titon Dutono M.Eng, selaku Direktur Politeknik Elektronika Negeri Surabaya. 5. Bapak Iwan Syarif, selaku Ketua Jurusan Teknologi Informasi Politeknik Elektronika Negeri Surabaya. 6. Ibu Nana Ramadijanti S.Kom M.Kom, selaku dosen pembimbing I, terima kasih atas bantuan dan kesabarannya dalam memberikan bimbingan, dan masukan-masukan disetiap kesempatan selama mengerjakan tugas akhir. 7. Bapak Rengga Asmara S.Kom, OCA selaku dosen pembimbing II, yang juga banyak memberikan bimbingan, masukan dan pandangan-pandangan dalam menyelesaikan tugas akhir ini. 8. Seluruh Dosen dan karyawan di Politeknik Elektronika Negeri Surabaya atas fasilitas dan waktu yang diberikan. 9. Nescafe, Kopi kemasan sachet yang setia menemani dan banyak membantu dalam menemukan ide-ide maupun logika yang cemerlang. 10. Temanku Rizal Mashuri yang telah membuatku merasa senasib-sepenanggungan. 11. Rekanku Teknisi Laboratorium Sun Training Center PENSITS (ferry/vanfier, andy/vesa, fatikh/conman, satria/ubul) yang setiap harinya selalu menghiburku dan mendukungku. 12. Seluruh rekan yang telah banyak membantu saya dalam menyelasaikan Proyek Akhir ini. Sekali lagi penulis mengucapkan banyak terima kasih yang tak terhingga semoga Allah SWT membalas atas semua kebaikan dan bantuan dari kalian semua.

iv

DAFTAR ISIHALAMAN DEPAN LEMBAR PENGESAHAN ABSTRAK ................................................................................................ i ABSTRACT.............................................................................................. ii KATA PENGANTAR.............................................................................. iii UCAPAN TERIMA KASIH.................................................................... iv DAFTAR ISI............................................................................................. v DAFTAR GAMBAR................................................................................ viii DAFTAR TABEL .................................................................................... x BAB I PENDAHULUAN 1.1. Latar belakang .................................................................................... 1 1.2. Maksud dan Tujuan............................................................................. 2 1.3. Permasalahan ...................................................................................... 2 1.4. Batasan Masalah.................................................................................. 3 1.5. Metodologi ......................................................................................... 3 1.6. Sistematika Studi................................................................................. 5 BAB II TEORI PENUNJANG 2.1. Pengolahan Gambar Digital ................................................................ 7 2.2. Mode Warna........................................................................................ 8 2.3. Piksel .................................................................................................. 9 2.4. Garis .................................................................................................. 9 2.5. Grayscale............................................................................................. 10 2.6. Segmentasi .......................................................................................... 10 2.7. Deteksi Tepi ........................................................................................ 11 2.8. Content Based Image Retrieval System .............................................. 13

v

2.9. Perangkat Lunak Pemrograman VISUAL C++ dengan MFC............. 15 BAB III PERENCANAAN DAN PEMBUATAN 3.1. Algoritma System ............................................................................... 43 3.2. Blok Diagram ..................................................................................... 44 3.3. Freeman Code ..................................................................................... 44 3.4. First Different Code ............................................................................ 47 3.5. Normalisasi Data................................................................................. 48 3.6. Euclidean Distance.............................................................................. 49 3.7. Gambar Query..................................................................................... 51 3.8. Graphical User Interface ..................................................................... 52 BAB IV PENGUJIAN PROGRAM 4.1. Hasil Pengujian Pada Gambar Primitif ............................................... 54 4.1.1. Pengujian pada gambar bujur sangkar ...................................... 54 4.1.2. Pengujian pada gambar persegi panjang................................... 55 4.1.3. Pengujian pada gambar segitiga................................................ 56 4.1.4. Pengujian pada gambar lingkaran............................................. 57 4.2. Hasil Pengujian Pada pengujian sistem luas gambar ...................... 58 4.2.1. Pengujian pada gambar ikan glodok ......................................... 58 4.2.1.1. Hasil data yang didapat pada pengujian ikan glodok......... 58 4.2.1.2 Analisa pada hasil pengujian dengan ikan glodok ............. 59 4.2.2. Pengujian pada gambar ikan nila .............................................. 60 4.2.2.1. Hasil data yang didapat pada pengujian ikan nila.............. 61 4.2.2.2. Analisa pada hasil pengujian dengan ikan nila .................. 62 4.2.3. Pengujian pada gambar ikan manggasius ................................. 63 4.2.3.1 Hasil data yang didapat pada pengujian ikan manggasius .. 64 4.2.3.2. Analisa pada hasil pengujian dengan ikan manggasius ..... 65 4.2.4. Pengujian pada gambar ikan mujaer ......................................... 66

vi

4.2.4.1. Hasil data yang didapat pada pengujian ikan mujaer............. 67 4.2.4.2. Analisa pada hasil pengujian dengan ikan mujaer ................ 68 4.3. Hasil Pengujian Pada pengujian sistem keseluruhan luas gambar ...... 71 4.3.1 Pengujian pada gambar ikan glodok ......................................... 71 4.3.1.1 Hasil data yang didapat pada pengujian ikan glodok .......... 71 4.3.1.2 Analisa pada hasil pengujian dengan ikan glodok .............. 72 4.3.2 Pengujian pada gambar ikan nila .............................................. 74 4.3.2.1 Hasil data yang didapat pada pengujian ikan nila ............... 74 4.3.2.2 Analisa pada hasil pengujian dengan ikan nila ................... 75 4.3.3 Pengujian pada gambar ikan manggasius.................................. 77 4.3.3.1 Hasil data yang didapat pada pengujian ikan manggasius .. 77 4.3.3.2 Analisa pada hasil pengujian dengan ikan manggasius....... 78 4.3.4 Pengujian pada gambar ikan mujaer ......................................... 79 4.3.4.1 Hasil data yang didapat pada pengujian ikan mujaer.............. 79 4.3.4.2 Analisa pada hasil pengujian dengan ikan mujaer ................. 81

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ......................................................................................... 84 5.2. Saran .................................................................................................. 84 DAFTAR PUSTAKA

vii

DAFTAR GAMBARGambar 1.1 Gambar 1.2 Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 2.10 Gambar 2.11 Gambar 2.12 Gambar 2.13 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Marine Sketch Image ........................................................ 3 Sistem CBIR ..................................................................... 4 Memberi nama program.................................................... 16 Memilih isi program.......................................................... 17 Membuat Menu................................................................. 18 Menghapus dan menambah menu..................................... 19 Mengaktifkan menu .......................................................... 20 Membuka file gambar ....................................................... 22 Memproses gambar ........................................................... 24 Memilih aplikasi dialog based .......................................... 25 Tampilan dialog box ......................................................... 26 ClassWizard dengan Member Variables ........................... 26 Hasil proses gambar dengan dialog box............................ 29 Mengubah Citra Berwarna Menjadi Gray-Scale ............... 31 ThresHolding dengan nilai 128......................................... 34 Diagram System................................................................ 44 Ilustrasi Freeman code ...................................................... 45 Perbedaan dalam penelusuran diagram arah ..................... 46 Kalkulasi First Different Code.......................................... 48 Diagram alir matching ...................................................... 51 Contoh Image Query......................................................... 51 Jendela Kerja CBIR.......................................................... 52 Gambar query bujur sangkar............................................. 54 hasil pada thresholding 35% gambar bujur sangkar ........ 54 pada thresholding 55% keatas gambar bujur sangkar ....... 55 Gambar query persegi panjang ......................................... 55 hasil pada thresholding 35% gambar persegi panjang ..... 55 hasil pada thresholding 55% keatas gambar persegi panjang ............................................................................. 56 Gambar query segitiga...................................................... 56 hasil pada thresholding 75% keatas gambar segitiga ...... 56 Gambar query lingkaran....... ........................................... 57 hasil pada thresholding 75% keatas gambar lingkaran.... 57 Gambar query ikan glodok............................................... 58 hasil pada thresholding 35% dari gambar query .............. 58

viii

Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Gambar 4.18 Gambar 4.19 Gambar 4.20 Gambar 4.21 Gambar 4.22 Gambar 4.23 Gambar 4.24 Gambar 4.25 Gambar 4.26 Gambar 4.27 Gambar 4.28 Gambar 4.29 Gambar 4.30 Gambar 4.31 Gambar 4.32 Gambar 4.33 Gambar 4.34 Gambar 4.35 Gambar 4.36 Gambar 4.37 Gambar 4.38 Gambar 4.39 Gambar 4.40 Gambar 4.41 Gambar 4.42 Gambar 4.43 Gambar 4.44 Gambar 4.45 Gambar 4.46 Gambar 4.47 Gambar 4.48 Gambar 4.49 Gambar 4.50

hasil pada thresholding 55% dari gambar query .............. 58 hasil pada thresholding 75% dari gambar query .............. 59 hasil pada thresholding 95% dari gambar query .............. 59 Grafik tingkat ketelitian dengan gambar ikan glodok ...... 60 Gambar query ikan Nila .............................................. 61 hasil pada thresholding 35% dari gambar query .............. 61 hasil pada thresholding 55% dari gambar query .............. 61 hasil pada thresholding 75% dari gambar query .............. 62 hasil pada thresholding 95% dari gambar query .............. 62 Grafik tingkat ketelitian dengan gambar ikan nila ........... 63 Gambar query ikan Manggasius....................................... 64 hasil pada thresholding 35% dari gambar query .............. 64 hasil pada thresholding 55% dari gambar query .............. 64 hasil pada thresholding 75% dari gambar query .............. 64 hasil pada thresholding 95% dari gambar query ......... 65 Grafik tingkat ketelitian dengan gambar ikan manggasius....................................................................... 66 Gambar query ikan Mujaer .............................................. 66 hasil pada thresholding 35% dari gambar query .............. 67 hasil pada thresholding 55% dari gambar query .............. 67 hasil pada thresholding 75% dari gambar query .............. 67 hasil pada thresholding 95% dari gambar query .............. 67 Grafik tingkat ketelitian dengan gambar ikan mujaer ...... 69 Rata-rata prosentase ketelitian gambar berdasarkan tingkat thresholding luas gambar ................................ 69 Gambar query ikan glodok............................................... 71 hasil pada thresholding 35% dari gambar query .............. 72 hasil pada thresholding 55% dari gambar query .............. 72 hasil pada thresholding 75% dari gambar query .............. 72 hasil pada thresholding 95% dari gambar query .............. 72 Grafik tingkat ketelitian dengan gambar ikan glodok ...... 73 Gambar query ikan Nila .............................................. 74 hasil pada thresholding 35% dari gambar query .............. 75 hasil pada thresholding 55% dari gambar query .............. 75 hasil pada thresholding 75% dari gambar query .............. 75 hasil pada thresholding 95% dari gambar query .............. 75 Grafik tingkat ketelitian dengan gambar ikan nila ........... 76 Gambar query ikan Manggasius....................................... 77 hasil pada thresholding 35% dari gambar query .............. 78 hasil pada thresholding 55% dari gambar query .............. 78

ix

Gambar 4.51 Gambar 4.52 Gambar 4.53 Gambar 4.54 Gambar 4.55 Gambar 4.56 Gambar 4.57 Gambar 4.58 Gambar 4.59 Gambar 4.60 Gambar 4.61

hasil pada thresholding 75% dari gambar query .............. 78 hasil pada thresholding 95% dari gambar query ......... 78 Grafik tingkat ketelitian dengan gambar ikanmanggasius 79 Gambar query ikan Mujaer .............................................. 79 hasil pada thresholding 35% dari gambar query .............. 80 hasil pada thresholding 55% dari gambar query .............. 80 hasil pada thresholding 75% dari gambar query .............. 80 hasil pada thresholding 95% dari gambar query .............. 80 Grafik tingkat ketelitian dengan gambar ikan mujaer ...... 81 Rata-rata prosentase ketelitian gambar berdasarkan tingkat thresholding seluruh luas gambar......................... 82 Rata-rata prosentase ketelitian gambar berdasarkan tingkat thresholding luas gambar ................................. 83

x

DAFTAR TABELTabel 3.1 Tabel 4.1 Tabel 4.2 Tabel 4.3 Tabel 4.4 Tabel 4.5 Keterangan Graphical User Interface.................................... 53 prosentase ketelitian dengan gambar ikan glodok................. 59 prosentase ketelitian dengan gambar ikan nila...................... 62 prosentase ketelitian dengan gambar ikan manggasius ......... 65 prosentase ketelitian dengan gambar ikan mujaer................. 68 Rata rata prosentase Ketelitian gambar berdasarkan tingkat thresholding ......................................................................... 69 Tabel 4.6 prosentase ketelitian dengan gambar ikan glodok................. 73 Tabel 4.7 prosentase ketelitian dengan gambar ikan nila...................... 76 Tabel 4.8 prosentase ketelitian dengan gambar ikan manggasius ......... 78 Tabel 4.9 prosentase ketelitian dengan gambar ikan mujaer................. 81 Tabel 4.10 Rata rata prosentase Ketelitian gambar berdasarkan tingkat thresholding seluruh luas gambar ........................................ 82 Tabel 4.11 Rata rata prosentase Ketelitian gambar berdasarkan tingkat thresholding luas gambar ................................................. 83

xi

BAB I PENDAHULUAN

1.1

LATAR BELAKANG

Di berbagai bidang seperti hiburan, perdagangan, pendidikan, biomedicine, dan kepolisian, data gambar dari berbagai bidang tersebut semakin bertambah dengan cepat, dimana hal ini didasarkan pada kebutuhan manusia yang cenderung semakin hari semakin meningkat. Sedangkan sistem penyimpanan dari berbagai macam informasi digital tersebut semakin meningkat sehingga membuat masalah dalam pencarian dan pengolahannya. Content Based Image Retrieval System ini bertujuan untuk mempermudah dan mempercepat pencarian dari gambar-gambar mirip dengan kriteria gambar tertentu yang diinginkan dari sekumpulan gambar yang ada. Dimana karakteristik atau kriteria dari gambar yang dihasilkan ini seperti bentuk, warna, dan tekstur dan lain-lain yang sesuai dengan gambar yang diinginkan. Hubungan antar gambar-gambar yang diinginkan dengan gambar hasil dikelompokkan berdasarkan kemiripan karakteristik secara komputasi. Teknik pencarian berbasis teks yang sudah ada pada saat ini menjadi tidak bisa digunakan karena nama dari sebuah file tidak dapat mempresentasikan isinya. Disamping itu jika kita menggunakan input yang berupa teks, maka kita harus mengetahui kata kunci yang benarbenar tepat agar gambar yang kita inginkan dapat ditampilkan. Sedangkan suatu gambar itu mempunyai interest yang sangat bervariasi. Sebagai contoh bila kita ingin mencari gambar kuda, dimana gambar kuda itu mempunyai banyak informasi antara lain mungkin yang akan dihasilkan adalah makanan kuda, atau area pacuan kuda, atau informasi yang lain yang ada unsur kuda dan yang pasti suatu gambar itu bisa berbicara seribu kata. Seperti yang kita lihat pada Google image searching, yang bahwasanya tidak dapat menemukan hasil optimal dan tidak bersesuaian dengan apa yang kita harapkan, dimana hal tersebut dikarenakan teknik pencariannya hanya didasarkan pada nama file. Hal ini bisa saja jadi berantakan bila ada seseorang yang memodifikasi nama file tersebut dengan tidak memperhitungkan

1

Pendahuluan melihat isi atau informasi dari file gambar tersebut, dan tentunya hal yang seperti ini dapat merugikan orang banyak. Untuk menghindari teknik tersebut, maka digunakan pendekatan alternative yaitu : Content Based Image Retrieval System yang mencari gambar hanya berdasarkan informasi yang ada pada gambar. Informasi dari gambar yang didapatkan merupakan ciri dari gambar, pada level primitif dapat berupa warna, bentuk, tekstur. Dari ketiga feature tersebut sudah tampak jelas bahwa setidaknya suatu gambar itu memiliki ciri, misal gambar bebek yang memiliki ciri bentuk yang sebagaimana bebek, dan memiliki ciri warna dimana bebek memiliki warna putih serta memiliki tektur bulu. Dengan hal yang seperti ini (CBIR), meskipun kita memodifikasi atau merubah nama filenya, tidaklah membuat image searching menjadi rancu karena hal ini tidak didasarkan atas teks atau nama dari sebuah file melainkan berdasrkan ciri baik bentuk, warna maupun tektur. Dengan demikian, penulis berusaha untuk membuat sistem Content Based Image Retrieval pada primitif level khususnya dengan menggunakan ciri bentuk untuk melengkapi sistem yang sudah ada. Aplikasi lebih lanjut dari Content Based Image Retrieval System (CBIR) ini dapat digunakan untuk kepentingan pencarian (image searching), video content, image registration, dan lain-lain.

1.2

Maksud dan Tujuan

Tujuan dari proyek akhir ini adalah untuk membangun sistem Content Based Image Retrieval (CBIR) berdasarkan identifikasi pola bentuk menggunakan ekstraksi fitur terstruktur (metode Freeman Code dan First Different Code) dengan metode Euclidean distance (pencocokan gambar) untuk mendapatkan gambar yang mempunyai fitur dan isi yang sama atau mirip dengan gambar kueri.

1.3

PERMASALAHAN Permasalahan yang dibahas dalam proyek akhir ini adalah : Bagaimana menggunakan metode Freeman Code untuk mendapatkan data numerik dari gambar (chain code).

1.

2

Pendahuluan 2. 3. 4. Bagaimana cara mendapatkan nilai bobot dari chaincode dengan menggunakan metode First Different Code. Bagaimana menyederhanakan data numerik dengan menggunakan metode Normalisasi Data. Bagaimana membandingkan bentuk obyek (image matching) dengan data numerik yang didapat berdasarkan metode pencarian nilai jarak yaitu Euclidean Distance.

1.4

BATASAN MASALAH Agar tidak terjadi kesalahan persepsi dan tidak meluasnya pokok pembahasan, maka saya memberikan batasan-batasan masalah sebagai berikut: 1. Dalam proyek akhir ini, image database diartikan sebagai sekumpulan gambar dalam sebuah direktori, dimana semua gambar adalah berbentuk sketsa hewan laut atau Marine Sketch Image. (Total berjumlah 632 gambar) Contoh gambar :

Gambar 1.1 Marine Sketch Image 2. 3. 4. File gambar menggunakan format BMP, masing masing dengan ukuran yang berbeda. Penamaan file tidak merujuk pada jenis gambar, tetapi diberi index. Misalnya kk1, kk2, dst. Fitur yang digunakan sebagai model yang menyatakan content gambar adalah fitur bentuk.

3

Pendahuluan 1.5 METODOLOGI

Dalam mengerjakan proyek akhir ini, metode yang dipergunakan adalah sebagai berikut : 1. Studi literatur Pada tahap pertama dilakukan pendalaman literatur yang berhubungan dengan CBIR, ekstraksi fitur menggunakan Freeman Code dan First Different Code dengan Euclidean Distance (proses pencocokan) dan pemrograman GUI MFC pada Microsoft Visual C++. 2. Pengumpulan data Suatu kegiatan mencari, mengumpulkan data-data yang digunakan dalam pembuatan sistem pada Aplikasi Image Database . Data-data yang digunakan untuk proyek akhir ini berupa beberapa referensi materi dan image database (gambar sketsa ikan atau Marine Sketch Image berjumlah 632 gambar) yang diperoleh dari alamat : http://www.ee.surrey.ac.uk/Research/VSSP/imagedb 3. Perancangan sistem pada bagian software Tahap ini bertujuan untuk mencari bentuk yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai faktor-faktor permasalahan dan kebutuhan yang telah ditentukan. Perancangan arsitektur sistem Arsitektur sistem pada aplikasi ini akan dibangun menggunakan metode dan algoritma yang sudah dijelaskan diatas untuk menganalisa fitur fitur yang dimiliki oleh query image kemudian dibandingkan satu persatu dengan gambar yang ada pada image database.

4

Pendahuluan

Gambar 1.2 Sistem CBIR Metode yang akan digunakan untuk pendekatan masalah adalah terdiri dari : 1. Mendapatkan data numerik yang menjadi ciri bentuk dari gambar dengan Structural Feature Extraction menggunakan metode Freeman Code. 2. Penghitungan nilai Normalisasi pada data numerik yang dihasilkan sehingga mendapatkan nilai yang mewakili ciri dari query image dan image database. 3. Membandingkan fitur dari query image dan fitur gambar dalam image database dengan metode Euclidean Distance. 4. Perancangan GUI MFC Microsoft Visual C++ yang berfungsi untuk menampilkan gambar hasil. 4. Pembuatan dan pengujian sistem Dari hasil perancangan dilakukan realisasi pembuatan aplikasi seleksi gambar pada image database. Pengujian aplikasi ini dilakukan pada beberapa gambar dalam sebuah direktori yaitu dengan cara mengoperasikan aplikasi GUI yang sudah dibuat.

1.6.

SISTEMATIKA STUDI Sistematika pembahasan dari proyek akhir ini direncanakan sebagai berikut:

5

Pendahuluan BAB 1 PENDAHULUAN Menguraikan tentang latar belakang, tujuan, permasalahan, batasan masalah dan sistematika pembahasan masalah yang digunakan dalam pembuatan proyek akhir ini. BAB II TEORI PENUNJANG Teori-teori yang digunakan dalam penyelesaian proyek akhir akan dibahas dalam bab ini sesuai dengan kaitannya proses content based image retrieval system berdasarkan identifikasi pola bentuk menggunakan ekstraksi fitur terstruktur. BAB III PERENCANAAN DAN PEMBUATAN Membahas secara detail dari perencanaan dan pembuatan system. BAB IV PENGUJIAN DAN ANALISA Membahas tentang pengujian dari system yang telah dibuat beserta analisanya. BAB V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dari pembahasan pada perancangan awal serta analisa yang diperoleh. Untuk lebih meningkatkan mutu dari system yang telah dibuat maka saya memberikan saran-saran untuk perbaikan dan penyempurnaan system. DAFTAR PUSTAKA Berisi referensi-referensi yang telah digunakan sebagai acuan selama pembuatan proyek akhir.

6

BAB II TEORI PENUNJANG2.1. PENGOLAHAN GAMBAR DIGITAL

Proses pengolahan gambar digital dengan menggunakan komputer digital adalah terlebih dahulu mentransformasikan gambar ke dalam bentuk besaran-besaran diskrit dari nilai tingkat keabuan pada titik-titik elemen gambar. Bentuk gambar ini disebut gambar digital.Elemen-elemen gambar digital apabila ditampilkan dalam layar monitor akan menempati sebuah ruang yang disebut dengan pixel (picture elemen/pixel). Pada proses transformasi yang menghasilkan gambar dari bentuk tiga dimensi ke bentuk dua dimensi akan dipengaruhi oleh bermacam-macam faktor yang mengakibatkan penampilan gambar suatu benda tidak identik dengan bentuk fisik nyatanya. Faktor-faktor tersebut merupakan efek degradasi atau penurunan kualitas yang dapat berupa rentang kontras benda yang terlalu sempit atau terlalu lebar, distorsi geometri (geometric distortion), kekaburan (blur), kekaburan akibat obyek gambar yang bergerak (motion blur), noise atau gangguan yang disebabkan oleh interferensi peralatan pembuat gambar, baik itu berupa tranduser, peralatan elektronik ataupun peralatan optik Teknik dan proses untuk mengurangi atau menghilangkan efek degradasi pada gambar digital meliputi perbaikan citra (image enhancement), restorasi citra (image restoration), dan transformasi spasial (spatial transformation). Subyek lain dari pengolahan gambar digital diantaranya adalah pengkodean gambar (image coding), segmentasi gambar (image segmentation), representasi dan diskripsi gambar (image representation and description ). Pengolahan gambar digital memiliki banyak aplikasi seperti pada bidang penginderaan jarak jauh, robotik, pemetaan, biomedis, dan sebagainya. Perlengkapan pengolahan gambar digital minimal terdiri atas alat pemasukan data gambar berupa digitizer atau scanner, komputer digital, alat penyimpanan data dengan kapasitas yang besar.

7

Teori Penunjang 2.2 MODE WARNA Gambar yang tidak berwarna atau hitam putih dikenal juga sebagai gambar dengan derajat keabuan (gambar gray level). Derajat keabuan yang dimiliki ini bisa beragam mulai dari 2 derajat keabuan (yaitu 0 dan 1) yang dikenal juga sebagai gambar monochrome, 16 derajat keabuan dan 256 derajat keabuan. Semakin besar jumlah derajat keabuan yang dimiliki maka semakin halus citra tersebut Dalam sebuah gambar monochrome, sebuah pixel diwakili oleh 1 bit data yang berisikan data tentang derajat keabuan yang dimiliki pixel tersebut. Data akan berisi 1 bila pixel tersebut berwarna putih dan data akan berisi nilai 0 bila pixel tersebut berwarna hitam Untuk gambar berwarna, jumlah warna bisa beragam mulai dari 16, 256, 65536 atau 16 juta warna, yang masing-masing direpresentasikan oleh 4, 8, 16, atau 24 bit data untuk setiap pixelnya. Warna yang ada terdiri dari 3 komponen utama yaitu nilai merah (red), nilai hijau (green), dan nilai biru (blue). Paduan ketiga komponen utama pembentuk warna ini dikenal sebagai RGB color. Gambar berwarna Suatu gambar berwarna selalu memiliki 3 unsur yaitu unsure red, unsur green, dan unsure blue atau hal ini sering disebut dengan unsur RGB

RED

Color

GREEN

BLUE

8

Teori Penunjang 2.3 PIKSEL Piksel merupakan salah satu komponen dari gambar yang menentukan resolusi dari gambar tersebut, misal, sebuah gambar dikatakan resolusinya sebesar 400 x 500 maka artinya yaitu panjang pixel horizontalnya 400 dan panjang pixel vertikalnya 500 dan jumlah total keseluruhan pixel dari gambar tersebut yaitu 480000 atau dapat dikatakan bahwa dalam gambar tersebut terdiri dari 20000 pixel. Dalam penolahannya, piksel memiliki hubungan antara yang satu dengan yang lainnya. Sebuah piksel p pada koordinat (x,y) mempunyai tetangga horisontal dan vertikal yang koordinatnya sebagai berikut : N4(p) : 4 tetangga dari p (x+1,y), (x-1,y),(x,y+1),(x,y-1) x x p x x

Kumpulan dari piksel-piksel diatas yang disebut 4-neighbours of p dapat dinyatakan sebagai N4(p), kecuali jika p(x,y) posisinya terletak pada garis batas gambar, sehingga jumlah piksel tetangga tidak terdiri dari tetangga. Selain 4 tetangga diatas, p juga memiliki 4 tetangga diagonal, yaitu: ND(p):4 diagonal tetangga dari p (x+1,y+1), (x+1,y-1),(x-1,y+1),(x-1,y-1) x p x x x

Gabungan dari N4(p) dan ND(p) didefinisikan sebagai 8-neighbours of pdan dinyatakan sebagai N8(p). x x x N8(p): 8 neighbours of p x p x x x x

2.4

GARIS Mengapa dalam bidang seni ada karya yang khusus, yang populer dinamai Sketsa? Padahal, jika dilihat secara kasat mata, bentuk gambar yang disebut sketsa itu hanya berupa goresan-goresan garis yang seolah merupakan rangka-rangka dati suatu bentuk benda.

9

Teori Penunjang Garis merupakan sekumpulan titik yang berderet. Adapun deretannya berwujud melingkar, segitiga, persegi panjang, berkelokkelok, melengkung, bahkan lurus. Sekumpulan titik yang disebut garis dan ujudnya beraneka ragam itu, ternyata setiap bentuk ragamnya membawa karakter sendiri-sendiri. Garis yang visualnya tegak lurus misalnya, punya karakter visual yang kaku dan statis. Sedangkan yang horisontal membawa karakter datar. Adapun yang berkelok membawa karakter yang dinamis[9]. 2.5 GRAYSCALE Variabel gambar gray scale adalah matrik yang dinyatakan:

A = [a(i, j )]nnUntuk gambar yang berwarna, nilai A terdiri dari 3 matrik layer yaitu: 1 matrik untuk layer warna RED, 1 matrik untuk layer warna GREEN dan 1 matrik untuk layer warna BLUE 2.6 SEGMENTASI Tujuan dari sementasi gambar adalah untuk menentukan daerah atau bagian yang merepresentasikan objek dengan kata lain memisahkan objek dengan latar belakangnya. Tetapi ini salah satu keulitan dalam pemrosesan citra digital. Algoritma segmentasi berdasarkan pada satu atau dua sifat nilai intensitas yaitu diskontinu dan similaritas. Kategori pertama membagi sebuah gambar berdasarkan perubahan yang tiba-tiba dari intensitas, misal tepi dari sebuah gambar. Kategori kedua berdasarkan pembagian gambar kedalam daerah-daerah yang mirip menurut kriteria yang sudah didefinisikan sebelumnya. Pendekatan Histogram Thresholding berada pada kategori ini. Dasar-dasar thresholding Anggaplah histogram dari gambar grayscale, f(x,y), tersusun atas obyek gelap didalam latar belakang yang terang, dengan cara ini piksel-piksel untuk objek dan latar belakangnya mempunyai kelompok gray level yang dibagi dalam dua mode. Salah satu untuk dilihat untuk mengekstraksi objek dari latar belakangnya

10

Teori Penunjang adalah memilih sebuah threshold T yang akan memisahkan 2 mode ini. Kemudian semua piksel (x,y) yang nilai f(x,y)> T disebut sebagai piksel dari objek, selain itu, disebut sebagai piksel latar belakang. Jika ada dua mode yang dominan dari karakteristik histogram, disebut sebagai bimodal histogram. Hanya satu threhold sudah cukup untuk membagi gambar. Jika contoh gambar dibangun dengan dua tipe obyek obyek terang pada latar belakang gelap, tiga atau lebih mode karakteristik histogram yang dominan.

2.7

DETEKSI TEPI

Latar belakang: untuk Deteksi tepi dikembangkan menggunakan konsep filter pada gambar. Untuk mereduksi noise pada hasil deteksi tepi diperlukan pengaturan nilai pada filter kernel, seperti pada prewitt dan sobel. Deteksi tepi merupakan salah satu proses penting di dalam image processing. Tepi suatu gambar dapat dijadikan salah satu ciri atau fitur yang dapat digunakan dalam proses pengenalan (identifikasi dan recognition), klasifikasi dan penjabaran informasi dari suatu gambar. Mengingat pentingnya informasi tepi ini, diperlukan suatu proses deteksi tepi yang benar-benar handal dalam menyajikan informasi tepi. Permasalahan di dalam proses deteksi tepi adalah bagaimana menghasilkan informasi tepi yang benar-benar tepi dan menghilangkan noise. Proses deteksi tepi pada dasarnya adalah proses filter pada frekuensi tinggi dimana pada frekuensi ini sukar dibedakan mana informasi tepi dan mana yang noise. Beberapa deteksi tepi yang mencoba mengurangi noise mempunyai efek samping hilangnya beberapa informasi tepi, seperti pada Robert dan sobel. Metode deteksi Prewitt menghasilkan banyak informasi tepi tetapi noise yang dihasilkan juga banyak. Untuk itu muncul pemikiran bagaimana menghasilkan matrik filter kernel

11

Teori Penunjang deteksi tepi yang dapat mengurangi noise sebanyak-banyaknya tanpa kehilangan informasi tepi. Tepi suatu obyek gambar dinyatakan sebagai titik yang intensitasnya berubah dengan jelas, dengan demikian proses deteksi tepi dilakukan dengan memperhatikan perubahan nilai intensitas setiap titik dengan delapan titik tetangganya. Sehingga matrik filter kernel yang dikembangkan merupakan nilai differensial dari suatu titik dengan titik-titik tetangganya. Perhitungan konvolusi antara matrik kernel H dan matrik gambar X, hasilnya Y adalah informasi tepi. Y=HX

Filter Kernel Prewitt dan Sobel [1]. Filter Kernel Prewitt Horisontal dan Vertikal o Deteksi Tepi Prewitt merupakan pengembangan dari deteksi tepi Robert dengan memanfaatkan nilai tetangga dari dua arah yang berbeda. Beberapa matrik kernel dari metode deteksi tepi Prewitt adalah sebagai berikut

1 0 1 H = 1 0 1 1 0 1

1 1 1 H = 0 0 0 1 1 1

Filter Kernel Sobel Horisontal dan Vertikal o Deteksi Tepi Sobel merupakan pengembangan dari deteksi tepi Prewitt dengan menambahkan unsur gaussian di dalam matrik filter kernel yang menyatakan arah dari proses konvolusi.

1 2 1 H= 0 0 0 1 2 1

1 0 1 H= 2 0 2 1 0 1

12

Teori Penunjang Filter kernel laplacian

0 1 0 1 1 1 1 4 1 atau H= 1 8 1 H= 0 1 0 1 1 1

2.8

CONTENT BASED IMAGE RETRIEVAL SYSTEM

Content Based Image Retrieval System (CBIR) merupakan suatu teknik pencarian kembali gambar yang mempunyai kemiripan karakteristik atau content dari sebuah sekumpulan gambar. Proses secara umum dari CBIR adalah gambar yang menjadi query dilakukan proses ekstraksi feature, begitu halnya dengan gambar yang ada pada sekumpulan gambar juga dilakukan proses seperti pada gambar query. Parameter feature gambar yang dapat digunakan untuk retrieval pada system ini seperti histogram, susunan warna, teksture, dan shape, tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi. gambar query yang digunakan mempunyai beberapa level, yaitu: Level 1: retrieval dengan primitive feature, seperti color, shape, teksture, Level 2: retrieval dengan logical feature, seperti tipe obyek, individu obyek atau orang. Level 3: retrieval dengan abstrak feature, seperti nama even, tipe aktifitas, emotional, religius. Penelitian dan pembangunan dalam CBIR mencakup keseluruhan topik. Beberapa pokok persoalan yang terjadi dalam pembangunan CBIR dapat diuraikan sebagai berikut: Pemahaman gambar yang dibutuhkan oleh user dan pencarian informasi. Pengidentifikasian cara yang sesuai dalam penggambaran content atau karakteristik dari gambar. Proses ekstraksi feature dari gambar.

13

Teori Penunjang Ekstrasi feature merupakan proses penting pada sistem CBIR. Karena hasil dari proses ini, perbedaan pada setiap gambar dapat diketahui berdasarkan cirinya seperti ciri bentuk, ciri warna, ciri tekstur dan lain lain. Beberapa teknik yang dapat digunakan untuk ekstrasi feature antara lain : teknik analisis komponen utama, besaran statistik , histogram warna, wavelet transform dan lain lain. Penyediaan tempat penyimpanan untuk sekumpulan gambar. Proses matching antara gambar query dan gambar yang ada pada sekumpulan gambar.. Proses matching merupakan proses pencocokan gambar untuk memperoleh gambar yang mempunyai kemiripan dengan gambar query. Proses matching dilakukan dengan menghitung jarak antara dua gambar yaitu gambar query dan gambar target pada sekumpulan gambar. Parameter yang digunakan dalam perhitungan jarak berdasarkan pada hasil ekstrasi ciri. Penyediaan human interface dari CBIR system.

Nilai normalisasi Nilai normalisasi digunakan untuk mengecilkan data, dimana data nilai piksel dari sebuah gambar tersebut cenderung sangat besar, dengan demikian butuh adanya normalisasi. Dengan normalisasi ini maka data tersebut hanya memiliki range antara nol sampai satu. X= {i0, i1, i2, ....in} Maka |X| =

i +i +i2 2 0 1

2 2

+ ... + i n2

|X|=xx X=(i0/xx, i1/xx, ....,xn/xx) Mean dan Standard Deviasi Dalam ilmu statistik, perhitungan nilai rata-rata (mean) dan standard deviasi untuk mengetahui besarnya simpangan cenderung banyak digunakan karena hal tersebut dapat mempengaruhi probabilitas hasil kerja.

14

Teori Penunjang Rumus Jarak Euclidean Distance Jarak Euclidean dapat dianggap sebagai jarak yang paling pendek antar dua poin poin, maka dari itu dalam proyek akhir ini digunakan fungsi jarak Euclidean dan pada dasarnya sama halnya dengan persamaan Pythagoras ketika digunakan di dalam dua dimensi. Secara matematis dapat dituliskan di dalam persamaan berikut : d(i,j)= Ket : d(i,j) xi xj Gambaran CBIR = = = nilai jarak nilai nilai pada fitur 1 nilai nilai pada fitur 2

| xi1 x j1 |2 + | xi 2 x j 2 | 2 +.....+ | xip x jp | 2

2.9

PERANGKAT LUNAK BAHASA PEMROGRAMAN VISUAL C++ DENGAN MFC

15

Teori Penunjang Menjalankan Visual C++ dengan MFC 1. Membuka Visual C++ 6.0 Pilih menu : Start->Programs->Microsoft Visual Studio 6.0->Microsoft Visual C++ 6.0 2. Memberi nama program Pilih menu : File->New->Projects->MFC AppWizard(exe) Isi Project name misalnya dengan: Test (lihat gambar 1) Tekan tombol OK

Gambar 2.1 Memberi nama program 3. Memilih isi program What tipe of application would you like to create (aplikasi apa yang ingin dibuat) pilih Multiple documents untuk pilihan standar. Tekan tombol Next What database support would you like include (database apa yang ingin dibuat) pilih None untuk pilihan standar. Tekan tombol Next What compound document support would you like include (dokumen apa yang ingin dibuat) pilih None untuk pilihan standar. Tekan tombol Next What features would you like include

16

Teori Penunjang (tampilan apa yang ingin dibuat) pilih Docking toolbar, Initial status bar, printing and print preview, 3D control untuk pilihan standar. Tekan tombol Next What style of project would you like (gaya program apa yang ingin dibuat) pilih MFC standard untuk pilihan standar. Tekan tombol Next AppWizard creates the following classes for you (AppWizard akan membuat class seperti dibawah ini) CtestView CtestApp CmainFrame CchildFrame CtestDoc Lihat gambar 2

4.

Gambar 2.2 Memilih isi program Tekan tombol Finish kemudian tombol OK Cara menjalankan program Pilih menu : Build->Execute (!) Tekan tombol Yes

Cara membuat menu dengan MFC 1. Cara membuat menu Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan Menus

17

Teori Penunjang Pilih ResourceView pada workspace Pilih folder paling atas dengan cara klik pada tanda + Pilih folder menu dengan cara klik pada tanda + Klik 2 kali IDR_MENUSTYPES[English[U.S.]] seperti gambar 3

Gambar 2.3 Membuat Menu 2. Menghapus dan menambah menu Untuk menghapus menu : Pilih menu Edit kemudian tekan keyboard Delete kemudian tekan tombol OK Untuk Menambah menu: Tekan tombol keyboard Insert dan ketik misalnya Test kemudian dibawahnya ketik Hello seperti gambar 4

18

Teori Penunjang

Gambar 2.4 Menghapus dan menambah menu 3. Mengaktifkan menu Pilih menu Hello dan klik kanan Pilih menu ClassWizard dan klik kiri Pilih message dengan COMMOND dan klik kiri dua kali seperti gambar 5 kemudian tekan tombol OK Untuk mengedit isi program tekan tombol Edit Code

19

Teori Penunjang

Gambar 2.5 Mengaktifkan menu 4. Menampilkan fungsi Tambahkan program untuk menampilkan pesan seperti dibawah ini///////////////////////////////////////////////////////////////////////////// // CMenusView message handlers void CMenusView::OnTestHello() { // TODO: Add your command handler code here // Menampilkan pesan untuk pemakai MessageBox(Hello); }

Jalankan program dengan memilih menu Build->Execute (!)

Menampilkan File Gambar 1. Cara membuka file Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan OpenFile Buat Menu seperti pada praktikum 2 dengan tambahan Test dan submenunya OpenFile

20

Teori Penunjang Untuk mengedit isi program tekan tombol Edit Code atau buka file OpeFileView.cpp Tambahkan program untuk membuka file seperti dibawah ini

///////////////////////////////////////////////////////////////////////////// // COpenFileView message handlers // Menampilkan file yang akan dibuka void COpenFileView::OnTestOpenfile() { // TODO: Add your command handler code here static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||"; CFileDialog m_ldFile(TRUE, "*.bmp", name, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); if(m_ldFile.DoModal()==IDOK) { name=m_ldFile.GetPathName(); LoadGambar(); } } // Menampilkan gambar hasil dari open file void COpenFileView::LoadGambar(void) { CDC* pDC = GetDC(); CDC dcMem; HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), name, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if(hBitmap) { if(m_bmpBitmap.DeleteObject()) m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap); } dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); pDC->BitBlt(0,0,250,210,&dcMem,0,0,SRCCOPY); }

2.

Menambah header file Buka file OpenFileView.h Tambahkan program seperti dibawah ini

21

Teori Penunjang// Attributes public: COpenFileDoc* GetDocument(); CString name; CBitmap m_bmpBitmap; // Operations public: void LoadGambar(void);

3. Cara menjalankan program Pilih menu : Build->Execute (!) Pilih menu : Test->OpenFile ->pilih salah satu gambar misalnya gambar.bmp Hasilnya seperti gambar 6

Gambar 2.6 Membuka file gambar Cara Memproses Gambar 1. Cara memproses gambar Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan Proses Buat Menu seperti pada praktikum 2 dengan tambahan Test sedangkan submenunya OpenFile dan Proses Untuk mengedit isi program tekan tombol Edit Code atau buka file ProsesView.cpp Tambahkan program untuk memproses gambar seperti dibawah ini///////////////////////////////////////////////////////////////////////////// // CProsesView message handlers

22

Teori Penunjangvoid CProsesView::OnTestOpenfile() { // TODO: Add your command handler code here static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||"; CFileDialog m_ldFile(TRUE, "*.bmp", name, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); if(m_ldFile.DoModal()==IDOK) { name=m_ldFile.GetPathName(); LoadGambar(); } } // Menampilkan gambar hasil dari open file void CProsesView::LoadGambar(void) { CDC* pDC = GetDC(); CDC dcMem; HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), name, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if(hBitmap) { if(m_bmpBitmap.DeleteObject()) m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap); } dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); pDC->BitBlt(0,0,250,210,&dcMem,0,0,SRCCOPY); } void CProsesView::OnTestProses() { // TODO: Add your command handler code here CDC* pDC = GetDC(); CDC dcMem; int i,j; long int warna; char str[5]; dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); for(i=0;iTextOut(10,10,str); }

2.

Menambah header file Buka file ProsesView.h Tambahkan program seperti dibawah ini// Attributes public: CProsesDoc* GetDocument(); CString name; CBitmap m_bmpBitmap; // Operations public: void LoadGambar(void);

3. Cara menjalankan program Pilih menu : Build->Execute (!) Pilih menu : Test->OpenFile -> pilih salah satu gambar misalnya gambar.bmp Pilih menu: Test->Proses hasilnya seperti gambar 7

24

Teori Penunjang Gambar 2.7 Memproses gambar Cara Memproses Gambar dengan Dialog Box 1. Cara memproses gambar dengan dialog box Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan ProsesDialog Buat Dialog Box dengan memilih tipe aplikasi dialog based seperti pada gambar 8 kemudian pilih Finish.

Gambar 2.8 Memilih aplikasi dialog based Buatlah tampilan dengan bantuan control panel sehingga menghasilkan tampilan seperti gambar 9 dibawah ini

25

Teori Penunjang

Gambar 2.9 Tampilan dialog box Tambahkan ID control dan member variables dengan cara clik kanan pada dialog dan pilih properties, kemudian clik kanan dan pilih ClassWizard kemudian pilih member variables, isi member sehingga menghasilkan seperti gambar 10 dibawah ini

Gambar 2.10 ClassWizard dengan Member Variables

26

Teori Penunjang

Tekan dua kali tombol LoadGambar dan pilih OK, tambahkan program seperti di bawah inivoid CProsesDialogDlg::OnLoadgambar() { // TODO: Add your control notification handler code here static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||"; CFileDialog m_ldFile(TRUE, "*.bmp", name, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); if(m_ldFile.DoModal()==IDOK) { name=m_ldFile.GetPathName(); LoadGambar(); } } // Menampilkan gambar hasil dari open file void CProsesDialogDlg::LoadGambar(void) { CDC* pDC = m_pic.GetDC(); CDC dcMem; HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), name, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if(hBitmap) { if(m_bmpBitmap.DeleteObject()) m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap); } CRect rect; BITMAP bm; m_pic.GetClientRect(rect); m_bmpBitmap.GetBitmap(&bm); dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); pDC>StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bm.bmWidth ,bm.bmHeight,SRCCOPY); }

Tekan dua kali tombol Proses dan pilih OK, tambahkan program seperti di bawah inivoid CProsesDialogDlg::OnProses() { // TODO: Add your control notification handler code here

27

Teori PenunjangCDC* pDC = m_pic.GetDC(); CDC dcMem; int i,j; long int warna; char str[5]; CRect rect; BITMAP bm; m_pic.GetClientRect(rect); m_bmpBitmap.GetBitmap(&bm); dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); for(i=0;iTextOut(10,10,str); }

2.

Menambah header file Buka file ProsesDialogDlg.h Tambahkan program seperti dibawah ini// Construction public: CProsesDialogDlg(CWnd* pParent = NULL); constructor // Attributes public: CString name; CBitmap m_bmpBitmap; // Operations public: void LoadGambar(void); // standard

3. Cara menjalankan program Pilih menu : Build->Execute (!) Pilih tombol LoadGambar -> pilih salah satu gambar misalnya harimau.bmp Pilih tombol Proses-> hasilnya seperti gambar 11

28

Teori Penunjang

Gambar 2.11 Hasil proses gambar dengan dialog box Mengubah Citra Berwarna Menjadi Gray-Scale 1. Cara mengubah citra warna menjadi gray-scale Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan GrayScale Buat Menu seperti pada praktikum 2 dengan tambahan Test sedangkan submenunya OpenFile dan GrayScale Untuk mengedit isi program tekan tombol Edit Code atau buka file GrayScaleView.cpp Tambahkan program untuk mengubah citra warna menjadi gray-scale seperti dibawah ini///////////////////////////////////////////////////////////////////////////// // CGrayScaleView message handlers void CGrayScaleView::OnTestLoadgambar() { // TODO: Add your command handler code here static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||"; CFileDialog m_ldFile(TRUE, "*.bmp", name, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); if(m_ldFile.DoModal()==IDOK) { name=m_ldFile.GetPathName(); LoadGambar();

29

Teori Penunjang} } // Menampilkan gambar hasil dari open file void CGrayScaleView::LoadGambar(void) { CDC* pDC = GetDC(); CDC dcMem; HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), name, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if(hBitmap) { if(m_bmpBitmap.DeleteObject()) m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap); } dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap); pDC->BitBlt(0,0,150,100,&dcMem,0,0,SRCCOPY); } // merubah data pixel ke RGB void WarnaToRGB(long int warna,int *Red, int *Green, int *Blue) { *Red = warna & 0x000000FF; *Green = (warna & 0x0000FF00) >> 8; *Blue = (warna & 0x00FF0000) >> 16; } //merubah RGB ke data pixel long int RGBToWarna(int Red, int Green, int Blue) { return(Red+(GreenBitBlt(0,0,200,200,&dcMem,0,0,SRCCOPY); } // merubah data pixel ke RGB void WarnaToRGB(long int warna,int *Red, int *Green, int *Blue) { *Red = warna & 0x000000FF; *Green = (warna & 0x0000FF00) >> 8; *Blue = (warna & 0x00FF0000) >> 16; } //merubah RGB ke data pixel long int RGBToWarna(int Red, int Green, int Blue) { return(Red+(Green