PERBESARAN DATA CITRA DIGITAL HASIL CROPPING DENGAN MENGGUNAKAN METODE HYBRID.
TUGAS AKHIR
Oleh :
UMI AFESENA
0634015080
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
(2)
Syukur Alhamdulillaahi rabbil ‘alamin terucap ke hadirat Allah SWT atas segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu, tenaga, pikiran dan keberuntungan yang dimiliki penyusun, akhirnya penyusun dapat menyelesaikan Skripsi yang berjudul “Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid” tepat pada waktunya.
Skripsi dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada program studi Teknik Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Melalui Skripsi ini penyusun merasa mendapatkan kesempatan emas untuk memperdalam ilmu pengetahuan yang diperoleh selama di bangku perkuliahan, terutama berkenaan tentang penerapan teknologi perangkat bergerak. Namun, penyusun menyadari bahwa Skripsi ini masih jauh dari sempurna. Oleh karena itu penyusun sangat mengharapkan saran dan kritik dari para pembaca untuk pengembangan aplikasi lebih lanjut.
Surabaya, Nopember 2010
(3)
Penyusun menyadari bahwasanya dalam menyelesaikan Skripsi ini telah mendapat banyak bantuan dan dukungan dari berbagai pihak, untuk itu pada kesempatan yang berharga ini, penyusun mengucapan terima kasih kepada:
1. Ibu, Bapak, Mas-masku dan AdikKu di rumah yang senantiasa memberikan dukungan dan mendoakan penyusun agar Skripsi ini segera terselesaikan. 2. PamanKu Cak Ito yang memberikan kesempatan buat kuliah, membiayai,
serta menyediakan semua keperluan kuliah.
3. Bapak Ir. Sutiyono, MT, selaku Dekan Fakultas Teknologi Industri.
4. Bapak Basuki Rahmat S.Si, MT, selaku Ketua Jurusan Teknik Informatika. 5. Ibu Ir. Kartini, MT, selaku Dosen Pembimbing I yang telah giat meluangkan
banyak waktu untuk memberikan arahan, ilmu dan dorongan serta motivasi kepada penyusun untuk menyelesaikan Skripsi ini.
6. Ibu Fetty Tri anggraeny S.Kom, selaku Dosen Pembimbing II yang dengan sabar telah meluangkan banyak waktu, pikiran dan tenaga di antara kesibukan beban-beban kegiatan akademik untuk memberikan bimbingan dan kesempatan penyusun untuk berkreasi dalam proses pembuatan Skripsi ini. 7. Bapak Wahyu yang telah banyak meluangkan waktu untuk memberikan solusi
dan membantu menyelesaikan masalah yang dihadapi penulis.
8. Ibu Hj. Asti Dwi Irfianti, S.Kom, M.Kom, Bapak Agustinus Bimo Gumelar, ST, MT, dan Bapak Chrystia Aji, S.Kom, selaku Penguji Skripsi yang telah banyak memberi masukan serta membuka wawasan baru.
(4)
10.Teman-teman spesial satu angkatan yang telah banyak membantu penyusun Tatik (membantu cari judul, ngajari matlab, pinjemin buku dan pemberi semangat dan saran) , Hajar (ngasih saran dan dorongan), Yulisah, Mamik ”PartnerQ” (ngasih semangat dan selamat), dan teman-teman satu Grup seperjuangan lainnya (Bagus, asrofi, firman, doni, hanif, tio, dapit, aziz, angga, mutia).
(5)
Hal.
ABSTRAK... i
KATA PENGANTAR... ii
UCAPAN SELAMAT... iii
DAFTAR ISI... V DAFTAR GAMBAR... ix
DAFTAR TABEL... xi
BAB I PENDAHULUAN... 1
1.1 Latar Belakang... 1
1.2 Rumusan Masalah... 3
1.3 Batasan Masalah... 3
1.4 Tujuan... 4
1.5 Manfaat... 4
1.6 Metodologi Penulisan Skripsi... 4
1.7 Sistematika Penulisan... 5
BAB II TINJAUAN PUSTAKA ... 8
2.1 Definisi Citra... 8
2.1.1 Definisi Citra Analog... 8
2.1.2 Definisi Citra Digital... 9
2.1.2.1 Jenis-Jenis Citra Digital... 9
2.2 Operasi Pengolahan Citra... 13
2.3 Perubahan Ukuran Citra... 15
2.3.1 Pebesaran Citra………... 15
2.3.2 Pengecilan Citra (Srinking)... 16
(6)
2.4.3 Interpolasi Dengan Orde Lebih Tinggi………..…… 21
2.4.4 Interpolasi Bicubik...………...…..……… 22
2.5 Operasi Geometri………... 22
2.5.1 Pencerminan (Flipping)……… 22
2.5.2 Rotasi/ Pemutaran (Rotating)……….. 23
2.5.2.1 Rotasi Searah Jarum Jam (CW/Clock wise)………… 23
2.5.2.2 Rotasi Berlawanan Dengan Arah Jarum Jam (CCW/ Counter clock wise)……… 23
2.5.3 Pemotongan (cropping)……… 24
2.5.4 Penskalaan (Scaling/ Zooming)……… 25
2.6 Transformasi Spasial... 25
2.7 Filtering………... 27
2.7.1 Prinsip – prinsip Filtering……….. 27
2.7.2 Konvolusi……… 29
2.7.3 Low Pass Filter……… 30
2.7.4 High Pass Filter……… 31
2.8 Metode Hybrid……… 31
2.9 MSE dan PSNR……….……… 32
2.10 Matlab 7.1………..……… 33
BAB III ANALISA DAN PERANCANGAN APLIKASI... 40
3.1 Analisa Permasalahan... 40
3.2 Pengolahan Citra... 41
3.3 Perancangan system... 43
3.3.1 Pemotongan (cropping)... 44
(7)
3.4.1 Algoritma Perbesaran Citra Hasil Cropping
dengan Menggunakan Metode Hybrid………. 45
3.4.2 Flowchart Secara Garis Besar…...………..…………. 45
3.4.3 Flowchart Preprocessing………....…...……… 47
3.4.4 Flowchart Perbesaran (Zoom)………...……….…… 49
3.5 Contoh Permasalahan………....……….… 50
3.6 Rancangan Antar Muka……….………..…...………… 55
BAB IV IMPLEMENTASI DAN EVALUASI... 57
4.1 Kebutuhan Sistem... 57
4.2 Potongan Program……... 58
4.3 Implementasi Interface... 61
4.3.1 Menu File... 62
4.3.2 Menu Edit... 65
4.3.3 Menu Bantuan... 68
BAB V UJI COBA DAN EVALUASI... 71
5.1 Uji Coba Perbesaran Data Citra Hasil Cropping... 72
5.1.1 Uji Coba Pembesaran Citra Cropping Pada Citra Yang Berextensi jpg Dengan Skala Pembesaran Serta Ukuran Citra Yang Berbeda dan Metode Yang Berbeda – beda... 73
5.1.2 Uji Coba Pembesaran Citra Cropping Pada Citra Yang Berextensi bmp Dengan Skala Pembesaran Serta Ukuran Citra Yang Berbeda dan Metode Yang Berbeda... 74
5.1.3 Uji Coba dengan Membandingkan Setiap Citra Inputan dengan Extensi yang Berbeda... 75
(8)
BAB VI PENUTUP... 78
6.1. Kesimpulan... 78
6.2. Saran... 78
DAFTAR PUSTAKA... 80
(9)
No. Hal.
2.1 Citra Digital... 9
2.2 Citra Warna... 10
2.3 Color Dialog... 11
2.4 Citra Gray... 11
2.5 Citra Biner... 12
2.6 Data Point y=f(x)...... 18
2.7 Interpolasi Linear Menggunakan y=f(x)... 19
2.8 Interpolasi Linear Explanation... 19
2.9 Contoh Perbesaran... 20
2.10 Kordinat System... 20
2.11 Mekanisme Cropping... 24
2.12 Transformasi Maju... 26
2.13 Transformasi Balik... 27
2.14 Format Koordinat Frekuensi Pada Citra... 27
2.15 Perhitungan Konvolusi Secara Grafis... 30
2.16 Perbesaran dengan Metode Hybrid... 32
2.17 Tampilan Jendela Utama Matlab... 36
2.18 Tampilan Workspace... 36
2.19 Tampilan Current Directory... 37
2.20 Tampilan Command History... 37
2.21 Tampilan Command Window... 38
2.22 Tampilan Matlab Editor... 38
2.23 Tampilan Help... 39
3.1 Proses Pengolahan Citra Digital... 42
3.2 Flowchart Secara Garis Besar... 46
3.3 Flowchart Proses Preprocessing...... 47
3.4 Flowchart Proses Cropping... 48
3.5 Proses Konvolusi dengan Low Pass Filter... 48
3.6 Proses Perbesaran Menggunakan Metode Bilinear Interpolation ... 51
3.7 Form Splash... 55
3.8 Form Utama... 56
3.9 Form Bantuan... 56
4.1 Interface Form Splash... 62
4.2 Form Utama... 63
4.3 Buka Gambar... 64
4.4 Konfirmasi Kesalahan... 64
4.5 Save Hasil Crop..... 65
4.6. Proses Crop... 66
(10)
5.1 Motor.jpg (Citra Asli 100x75)... 81 5.2 Motor.jpg (Hasil Pembesaran 2 Kali Dengan Metode Nearest Neighbor)... 81 5.3 Motor.jpg (Hasil Pembesaran 2 Kali Dengan Metode Hybrid)... 81 5.4 Motor.jpg (Hasil Pembesaran 3 Kali Dengan Metode Nearest Neighbor)... 82 5.5 Motor.jpg (Hasil Pembesaran 3 Kali Dengan Metode Hybrid)... 82 5.6 Motor.jpg (Hasil Pembesaran 4 Kali Dengan Metode Nearest Neighbor)... 83 5.7 Motor.jpg (Hasil Pembesaran 4 Kali Dengan Metode Hybrid)... 83 5.8 Motor.jpg (Hasil Pembesaran 5 Kali Dengan Metode Nearest Neighbor)... 84 5.9 Motor.jpg (Hasil Pembesaran 5 Kali Dengan Metode Hybrid)... 85 5.10 Motor.bmp (Citra Asli 100x75)... 86 5.11 Motor.bmp (Hasil Pembesaran 2 Kali Dengan Metode Nearest Neighbor). 86 5.12 Motor.bmp (Hasil Pembesaran 2 Kali Dengan Metode Hybrid)... 86 5.13 Motor.bmp (Hasil Pembesaran 3 Kali Dengan Metode Nearest Neighbor). 87 5.14 Motor.bmp (Hasil Pembesaran 3 Kali Dengan Metode Hybrid)... 87 5.15 Motor.bmp (Hasil Pembesaran 4 Kali Dengan Metode Nearest Neighbor). 88 5.16 Motor.bmp (Hasil Pembesaran 4 Kali Dengan Metode Hybrid)... 88 5.17 Motor.bmp (Hasil Pembesaran 5 Kali Dengan Metode Nearest Neighbor). 89 5.18 Motor.bmp (Hasil Pembesaran 5 Kali Dengan Metode Hybrid)... 90 5.19 Tanaman.jpg (Citra Input)... 91 5.20 Penyakit Tanaman.jpg (Citra Output Dari Citra Input Tanaman.jpg
Dengan Perbesaran 5 Kali)... 91 5.21 Laron.bmp (Citra Input)... 91 5.22 Seekor Laron.bmp (Citra Output Dari Citra Input Laron.bmp
Dengan Perbesaran 5 kali)... 91 5.23 Lalat.png (Citra Input)... 92 5.24 Satu Lalat.png (Citra Output Dari Citra Input Lalat.png Dengan
Perbesaran 5 Kali)... 92 5.25 Buku.tif (Citra Input)... 92 5.26 Nama Buku.tif (Citra Output Dari Citra Input Buku.tif Dengan
Perbesaran 5 Kali)... 92 5.27 Akar.jpg (Diambil Dari Kamera Hand Phone 3,2 MP)... 93 5.28 Akar Mati.jpg (Citra Output Dari Citra Input Akar.jpg Dengan
Perbesaran 3 Kali)... 93 5.29 Kamboja.jpg (Diambil Dari Kamera Digital 9 MP)... 93 5.30 Bunga Kamboja.jpg(Citra Output Dari Citra Input Kamboja Dengan
Perbesaran 3 Kali)... 93 5.31 Daun Tanaman.jpg (Diambil Dari Kamera Webcam 1.3 MP)... 94 5.32 Daun.jpg (Citra Output Dari Citra Input Daun Tanaman.jpg Dengan
(11)
5.1 Hasil Perhitungan MSE Untuk Citra BerextensiJpg... 72
5.2 Hasil Perhitungan PSNR Untuk Citra BerextensiJpg... 72
5.3 Hasil Perhitungan MSE untuk Citra BerextensiBmp... 74
5.4 Hasil Perhitungan PSNR untuk Citra Berextensi Bmp... 74
5.5 Hasil Uji Coba Untuk Extensi yang Berbeda-beda... 76
(12)
ABSTRACT
One technique in programming a digital image (digital image procesing) is to enlarge the size of the image. Research - research that has been done, only focused on enlarging the business all the objects in digital images, but sometimes it takes a certain object in the image magnification.
The purpose of this study is to make application program magnification of digital image data by cropping the hybrid method.
The procedure is done is digitize the image looks, then save the file in jpg or bmp berextentensi. The next process is the selection of objects in digital images is needed in the process of cropping. The process of magnification of digital image cropping results conducted through two channels. First undergo a process of filtration path further enlarged using bilinear interpolation method and the second line, the cropping directly magnified image using bilinear interpolation method. The output is equally - the average output of the two routes.
The results showed above image magnification process twice with the hybrid method has value Sequare Mean Error (MSE) smaller.
Key words : digital image, bilinear interpolation, hybrid, perbesaran.
ABSTRAK
Salah satu teknik dalam pemrograman citra digital (digital image procesing) adalah memperbesar ukuran citra. Penelitian – penelitian yang telah dilakukan, hanya terfokus pada usaha memperbesar seluruh objek dalam citra digital, namun kadang diperlukan perbesaran objek tertentu pada citra.
Tujuan penelitian adalah untuk membuat program aplikasi perbesaran data citra digital hasil cropping dengan metode hybrid.
Prosedur yang dilakukan adalah mendigitalisasi citra tampak, kemudian menyimpan dalam bentuk file berextentensi jpg atau bmp. Proses selanjutnya adalah melakukan pemilihan objek dalam citra digital yang dibutuhkan dalam proses cropping. Proses perbesaran citra digital hasil cropping dilakukan lewat dua jalur. Jalur pertama mengalami proses filterisasi selanjutnya diperbesar dengan menggunakan metode bilinear interpolation dan jalur kedua, citra hasil
cropping langsung diperbesar menggunakan metode bilinear interpolation. Keluarannya dengan merata – rata keluaran dari kedua jalur tersebut.
Hasil penelitian menunjukkan proses perbesaran citra diatas dua kali dengan metode hybrid memiliki nilai Mean Sequare Error (MSE) yang lebih kecil.
(13)
Dalam bab ini dijelaskan beberapa hal dasar yang meliputi latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi skripsi serta sistematika penulisan skripsi. Dari uraian tersebut diharapkan, gambaran umum permasalahan dan pemecahan yang diambil dapat dipahami dengan baik.
1.1 Latar Belakang
Pengolahan citra digital saat ini mengalami kemajuan yang sangat pesat, karena diikuti dengan kemajuan di bidang perangkat pengolahan citra itu sendiri. Komputer memiliki peranan yang sangat penting dalam proses pengolahan citra saat ini.
Salah satu teknik dalam pemrograman citra digital (digital image procesing) adalah memperbesar ukuran citra. Scaling techniques telah banyak dilakukan dan pernah diteliti oleh para peneliti berikut :
Thierry (2004) melakukan penelitian tentang perbesaran citra digital gray color dengan menggunakan metode perbesaran linear interpolation. Thierry menggunakan sisipan diantara pixel untuk memperbesar ukuran citra dan thierry membuktikan antara teknik dan praktek bahwa metode linear interpolation telah menghasilkan kwalitas citra yang cukup tinggi.
(14)
Penelitian perbesaran citra digital yang dilakukan oleh S. Battiato, G. Gallo, F. Stanco (2002) dengan judul “Smart Interpolation by Anisotropic Diffusion”. Dengan proses tiga tahap, yaitu: pertama melakukan perbesaran citra digital dengan menggunakan metode bicubik, kedua melakukan rekontruksi dari citra yang telah diperbesar dengan menggunakan algoritma anisotropic diffusion, dan yang ketiga mereduksi kembali citra yang mengalami kelebihan aliasing
dengan menggunakan low pass filter. Battiato melakukan percobaan dengan memperbesar citra sebesar 200% (dua kali) dengan nilai PSNR sebesar 36,31. Penelitian yang juga dilakukan oleh S. Battiato, G. Gallo, F. Stanco (2002) dengan menyisipi bagian pixel yang kosong dengan metoda Edge-Adaptive pada perbesaran citra digital, dan battiatio melakukan percobaan pada citra gray color
dan citra berwarna RGB.
Penelitian perbesaran citra digital dengan metode Edge-Forming yang dilakukan oleh Youngjoon Cha and Seongjai Kimy (2005), dan young joon menyatakan citra perbesaran yang dihasilkan lebih jelas dan tajam. Analisis yang dilakukannya hanya berdasarkan visualisasi yaitu membandingkan masing – masing citra hasil perbesaran dengan metoda yang berbeda, tidak berdasarkan matematika. [4]
Penelitian – penelitian yang telah dilakukan itu, hanya terfokus pada usaha memperbesar seluruh objek dalam citra digital tersebut, namun kadang – kadang tidak diinginkan memperbesar seluruh objek dari citra digital, misalnya untuk penelitian dalam bidang pertanian dari foto sebatang pohon atau tanaman, untuk
(15)
dilakukan pencuplikan (cropping) bagian tertentu yang terkena penyakit kemudian dilakukan proses perbesaran diperbesar (zooming). contoh lain yang dapat dipakai adalah foto yang didapat dari penderita penyakit kulit maka dapat diambil sebagian saja yaitu pencuplikan bagian tertentu foto tersebut, kemudian baru dilakukan proses perbesarannya.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang dipaparkan di atas, maka dapat dirumuskan permasalahan yang akan diselesaikan dalam skripsi ini adalah sebagai berikut :
a. Bagaimana cara memperbesar data citra digital hanya pada bagian tertentu saja tanpa mengurangi kualitas citra.
b. Bagaimana cara mengimplementasikan metode hybrid perbaikan citra (low pass filter dengan filter rata – rata) dan perbesaran (bilinear interpolation) dengan faktor perbesaran sesuai yang diinputkan user.
c. Menggabungkan perbaikan citra dan metode perbesaran dengan metode perbesaran saja.
1.3 Batasan Masalah
Dalam pembuatan skripsi ini, ruang lingkup permasalahan hanya akan dibatasi pada :
a. Citra input yang digunakan dalam uji coba adalah citra digital truecolor atau citra 24 bit
(16)
b. Citra input yang digunakan dalam uji coba berekstensi bmp, jpg, tif dan png c. Citra input yang digunakan dalam uji coba dicropping terlebih dahulu d. Citra input yang digunakan dianggap sudah bebas noise
e. Metode perbesaran citra ini diimplementasikan dalam perangkat lunak MATLAB 7.1
1.4 Tujuan
Tujuan skripsi ini adalah untuk membuat program aplikasi perbesaran data citra digital hasil cropping dengan menggunakan metoda hybrid.
1.5 Manfaat
Manfaat yang diperoleh dari skripsi ini antara lain sebagai berikut:
a. Dapat membantu memperbesar data citra tanpa merubah struktur yang ada pada citra aslinya.
b. Dapat memperbesar citra sebagian saja dengan proses cropping.
1.6 Metodologi Pembuatan Skripsi
Pembuatan skripsi terbagi menjadi beberapa tahapan sebagai berikut: 1. Studi Literatur
Pada tahap ini dilakukan pencarian, pengumpulan dan pemahaman tentang informasi–informasi yang diperlukan dan literatur yang berhubungan dengan permasalahan perbesaran citra. Literatur yang digunakan meliputi buku
(17)
2. Perumusan Masalah dan Penyelesaiannya
Tahap ini meliputi perumusan masalah, batasan-batasan masalah dan penyelesaiannya serta penentuan parameter untuk mengukur hasilnya.
3. Perancangan Perangkat Lunak
Pada tahap ini dilakukan perancangan perangkat lunak untuk menerapkan permasalahan dan penyelesaiannya pada tahap sebelumya.
4. Pembuatan Perangkat Lunak
Pada tahap ini dilakukan pembuatan perangkat lunak sesuai dengan perancangan perangkat lunak yang telah dilakukan. Dalam tahap ini dilakukan konversi algoritma menjadi kode program yang siap dieksekusi. 5. Uji Coba dan Evaluasi Hasil
Pada tahap ini dilakukan uji coba dan analisis serta dilakukan evaluasi
kelebihan dan kekurangan terhadap perangkat lunak yang telah dibuat. 6. Dokumentasi
Pada tahap terakhir ini disusun buku sebagai dokumentasi dari pelaksanaan skripsi yang berisi konsep penunjang, perancangan perangkat lunak, pembuatan perangkat lunak, dokumentasi dari uji coba dan pada bagian akhir berisi tentang kesimpulan dan saran.
1.7 Sistematika Penulisan
(18)
BAB I : PENDAHULUAN
Bab satu berisi penjelasan tentang latar belakang permasalahan, rumusan masalah, batasan masalah, tujuan, metodologi pembuatan skripsi, dan sistematika penulisan laporan skripsi ini. BAB II : TINJAUAN PUSTAKA
Pada bab dua dijelaskan mengenai landasan teori yang terkait dengan skripsi ini. Yaitu tentang definisi citra, teori mengenai perubahan ukuran citra yang meliputi proses pembesaran citra dan pengecilan citra, interpolasi, operasi geometri, transformasi spasial, filtering, metode hybrid serta penjelasan mengenai
software yang digunakan
BAB III : ANALISIS DAN PERANCANGAN APLIKASI
Pada bab tiga diuraikan mengenai tahapan – tahapan perancangan perangkat lunak untuk perbesaran data citra digital hasil cropping dengan menggunakan metoda hybrid yang terdiri atas penjelasan dari analisa permasalahan, perancangan sistem, prosedur metode yang digunakan, contoh permasalahan serta rancangan antarmuka sistem yang akan dibuat.
BAB IV : IMPLEMENTASI SISTEM
Pada bab empat berisi hasil implementasi dari perancangan program perbesaran data citra digital hasil cropping dengan menggunakan metoda hybrid yang telah dibuat sebelumnya yang
(19)
meliputi : kebutuhan sistem, dan implementasi tampilan-tampilan antarmuka aplikasi.
BAB V : UJI COBA DAN EVALUASI
Pada bab kelima berisi penjelasan lingkungan uji coba aplikasi, pelaksanaan uji coba dan evaluasi dari hasil uji coba yang telah dilakukan untuk kelayakan pemakaian aplikasi
BAB VI : KESIMPULAN DAN SARAN
Pada bab keenam berisi kesimpulan dan saran untuk pengembangan aplikasi lebih lanjut dalam upaya memperbaiki kelemahan pada aplikasi guna untuk mendapatkan hasil kinerja aplikasi yang lebih baik.
DAFTAR PUSTAKA LAMPIRAN
(20)
Pada bab ini akan dibahas beberapa teori dasar untuk menunjang penyelesaian skripsi ini, yaitu beberapa pengertian umum, konsep, dan teori yang berhubungan dengan pembuatan aplikasi Pembesaran Data Citra Digital Hasil
Cropping Dengan Metoda Hybrid, antara lain: definisi citra, teori mengenai perubahan ukuran citra yang meliputi proses pembesaran citra dan pengecilan citra, interpolasi, operasi geometri, transformasi spasial, filtering, metode hybrid
serta penjelasan mengenai software yang digunakan.
2.1 Definisi Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. [9]
2.1.1 Definisi Citra Analog
Citra analog tidak direpresentasikan dalam komputer dan bersifat kontinyu, semua merupakan fakta, contoh : gambar pada monitor televisi, foto
(21)
2.1.2 Definisi Citra Digital
Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut, hal tersebut diilustrasikan pada gambar dibawah ini. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue - RGB). [7]
Gambar 2.1. Citra Digital
2.1.2.1 Jenis-jenis Citra Digital
Ada banyak cara untuk menyimpan citra digital di dalam memori. Cara penyimpanan menentukan jenis citra digital yang terbentuk. Beberapa jenis citra
digital yang sering digunakan adalah citra warna, citra grayscale, dan citra biner.
1. Citra Warna
RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas. Setiap warna
(22)
dasar, misalnya merah, dapat diberi rentang-nilai. Untuk monitor komputer, nilai rentangnya paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x, komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut
digantikan oleh komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB(30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam= RGB(0,0,0).
Gambar 2.2. Citra Warna 2. Citra Gray
Graysacale adalah warna-warna piksel yang berada dalam rentang gradasi warna hitam dan putih.
(23)
Gambar 2.3. Color Dialog
Pada Color Dialog seperti yang terlihat pada gambar diatas, jika memilih warna solid hitam, putih, atau abu-abu, maka akan berada dalam pita warna Grayscale. Apabila tanda panah digeser ( ke atas menuju putih atau ke bawah menuju ke hitam ) maka red, green dan blue akan memberikan nilai yang sama. Untuk pengubahan warna image menjadi grayscale, cara yang umumnya dilakukan adalah dengan memberikan bobot untuk masing-masing warna dasar red, green, dan blue. Tetapi cara yang cukup mudah adalah dengan membuat nilai rata-rata dari ketiga warna dasar tersebut dan kemudian mengisikannya untuk warna dasar tersebut dengan nilai yang sama ( seperti pada contoh color dialog di atas ).
(24)
3. Citra Biner
Citra biner diperoleh melalui proses pemisahan piksel-piksel berdasarkan derajat keabuan yang dimilikinya. Piksel yang memiliki derajat keabuan lebih kecil dari nilai batas yang ditentukan akan diberikan nilai 0, sementara piksel yang memiliki derajat keabuan yang lebih besar dari batas akan diubah menjadi bernilai 1.
Gambar 2.5. Citra Biner
(2.1) Jika a1 =0 dan a2 = 1, maka operasi ini akan mentransformasikan suatu citra
menjadi citra biner. Misal suatu citra memiliki gray level 256, dipetakan menjadi citra biner, maka fungsi fungsi trasformasinya adalalah sebagai berikut:
(2.2)
pixel-pixel yang nilai intensitasnya di bawah 128 diubah menjadi hitam (nilai intensitas = 0), sedangkan pixel-pixel yang nilai intensitasnya di atas 128 diubah menjadi putih (nilai intensitas =1).
(25)
2.2 Operasi Pengolahan Citra
Operasi-operasi yang dilakukan dalam pengolahan citra banyak ragamnya, namun secara umum operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:[6]
1. Perbaikkan Kualitas Citra (image enhancement)
Jenis operasi ini bertujuan untuk memperbaiki citra dengan cara memanipulasi parameter-parameter citra. Dengan operasi ini, cirri-ciri khusus yang khusus yang terdapat didalam citra lebih ditonjolkan.
Contoh-contoh operasi perbaikkan citra: a. Perbaikkan kontras gelap/terang
b. Perbaikkan tepian objek (edge enhancement) c. Penajaman (sharpening)
d. Pemberian warna semu (pseudocoloring) e. Penapisan derau (noise filtering)
2. Pemugaran Citra (image restoration)
Operasi ini bertujuan menghilangkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikkan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui.
Contoh-contoh operasi pemugaran citra : a. Penghilangan kesamaran (deblurring) b. Penghilangan derau (noise)
(26)
3. Pemampatan Citra (image compression)
Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan citra adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. 4. Segmentasi Citra (image segmentation)
Jenis operasi ini bertujuan untuk memecah suatu citra kedalam beberapa segmen dengan suatu criteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola.
5. Pengorakan Citra (Image Analysis)
Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk menghasilkan diskripsinya. Tehnik pengolahan citra mengekstraksi cirri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadang kala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya. Contoh-contoh operasi pengorakan citra :
a. Pendeteksian tepian objek (edge detection) b. Ekstraksi batas (boundary)
c. Representasi Daerah (region)
6. Rekonstruksi Citra (Image Reconstruction)
Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis.
(27)
2.3 Perubahan Ukuran Citra
Perubahan ukuran citra dapat dilakukan melalui dua proses utama, yaitu pembesaran ukuran citra dan pengecilan ukuran citra (shrinking). Perubahan ukuran citra berkaitan dengan proses sampling dan kuantisasi (quantization) pada citra, dimana proses pembesaran citra bisa dipandang sebagai oversampling
sementara untuk pengecilan ukuran citra dipandang sebagai undersampling. Perbedaan antara perubahan ukuran citra dengan proses sampling dan kuantisasi terletak pada obyek yang diproses, dimana proses sampling dan kuantisasi dilakukan pada citra kontinyu asli (original continuous image) sementara proses pembesaran citra dan pengecilan citra dilakukan pada citra digital.
2.3.1 Pembesaran Citra
Pembesaran citra adalah suatu proses untuk menghasilkan citra dengan ukuran lebih besar dari citra input. Adapun tujuan dari pembesaran citra adalah menghasilkan tampilan (view) yang lebih baik melalui citra yang lebih besar. Citra digital dapat diperbesar dengan cara menghitung fungsi f(x,y) yang merupakan pendekatan terhadap fungsi citra yang sesungguhnya dengan menggunakan metode interploasi. Setelah fungsi tersebut diketahui, citra diperbesar dengan cara menambahkan jarak antar piksel, sehingga muncul ruang kosong di antara piksel yang semula bersebelahan. Ruang kosong tersebut kemudian dapat diisi dengan piksel baru yang nilainya dapat dihitung dengan fungsi interpolasi. Dengan demikian citra yang dihasilkan akan lebih besar, dapat
(28)
menunjukkan detail-detail yang semula kurang mencolok dan memiliki resolusi serta kualitas yang lebih baik dari citra semula.
2.3.2 Pengecilan Citra (Shrinking)
Konsep pengecilan citra secara umum sama saja dengan pembesaran citra, yaitu dengan menentukan ukuran baru untuk citra subjektif dan menempatkan nilai untuk setiap piksel-nya. Apabila pada pembesaran citra ukuran baris dan kolom citra diperbesar, maka pada pengecilan citra, citra diperkecil dengan cara menghapus kolom dan baris tertentu dari citra input hingga dihasilkan citra yang lebih kecil.
2.4 Interpolasi
Dalam pengolahan citra digital, interpolasi digunakan untuk menentukan nilai pada koordinat tertentu dalam citra. Untuk itu, interpolasi merupakan konsep dasar dalam perubahan ukuran citra yang membutuhkan proses penentuan nilai pada koordinat tertentu dalam citra yang mengalami perubahan ukuran. [2]
Interpolasi dapat dinyatakan dengan notasi sebagai berikut :
(2.3) dimana merupakan bobot piksel, sedangkan h adalah kernel atau jarak
interpolasi yang diberi bobot c(x,y) dengan sampel data pada piksel (xk , yl). Sebagaimana ditunjukkan pada persamaan di atas kernel interpolasi merupakan bagian utama algoritma interpolasi.
(29)
2.4.1 Interpolasi Tetangga Terdekat
Pada interpolasi tetangga terdekat (nearest neighbor interpolation), nilai keabuan titik hasil diambil dari nilai keabuan pada titik asal yang paling dekat dengan koordinat hasil perhitungan dari transformasi spasial. Untuk citra dua dimensi, tetangga terdekat dipilih di antara 6 titik asal yang saling berbatasan satu sama lain. [2]
Kelebihan dari interpolasi tetangga terdekat adalah kemudahan dan kecepatan eksekusinya. Namun pada banyak kasus, penggunaan interpolasi tetangga terdekat menghasilkan citra yang kurang memuaskan karena timbulnya efek aliasing pada bagian tepi obyek.
Replikasi piksel adalah kasus khusus dalam interpolasi tetangga terdekat.
Replikasi piksel dapat digunakan ketika kita ingin memperbesar ukuran citra dengan skala bilangan integer. Sebagai contoh, untuk memperbesar ukuran citra dua kali dari citra input, mula–mula ukuran kolom digandakan untuk melipat duakan ukuran citra pada arah vertikal. Prosedur yang sama juga dilakukan untuk memperbesar ukuran citra sebesar tiga kali, dan seterusnya.
Duplikasi dilakukan hanya untuk mencapai ukuran yang diinginkan. Penempatan nilai keabuan pada tiap piksel ditentukan berdasarkan fakta bahwa lokasi yang baru adalah dupliksai pasti dari lokasi yang sama.
2.4.2 Interpolasi Bilinier
Interpolasi bilinier adalah metode pembesaran citra untuk mengatasi efek papan atau aliasing yang dihasilkan oleh metode replikasi piksel sederhana.
(30)
Interpolasi bilinier dapat dilakukan dengan memanfaatkan empat tetangga terdekat dari suatu titik yang di rata-rata. [2]
Dibandingkan interpolasi tetangga terdekat atau replikasi piksel sedehana, citra hasil dari pembesaran citra akan tampak lebih halus (smooth), namun tentu saja membutuhkan waktu pengolahan yang lebih lama.
Jika kita memiliki satu set dari dua titik data, a dan b, seperti yang
ditunjukkan di bawah ini ( a= 2, b = 3), nilai fungsi y = f (x) pada titik-titik ini
dapat didefinisikan sebagai:
a=f( a)
b=f( b)
Gambar 2.6 data point y=f(x)
Asumsikan bahwa kita ingin lebih banyak data poin di antara nilai-nilai ini. Kita telah melihat apa yang terjadi dengan interpolasi tetangga terdekat, kami mendapatkan pendekatan discountinuous bergerigi. f (xi), untuk setiap datapoint,
(31)
Gambar 2.7 interpolasi linear menggunakan y=f(x)
Teknik ini dikenal sebagai interpolasi linier, dan masing-masing titik data dapat dihitung dengan menggunakan rumus sederhana y-intercept kemiringan = b .
Jika kita memisahkan parameter, kita bisa memecahkan setiap nilai-y menurut:
i=f( 1)=( ) a+( ) b (2.4)
Untuk nilai W, kita dapat menyelesaikan hal ini dengan asumsi bahwa kita ingin memasukkan titik data n yaitu 0, 1,……. n antara a dan b. Jadi, untuk
setiap titik data, = ( i a ) dan = ( b i). Dengan menggunakan
rumus di atas, kita dapat membuat sebuah loop sederhana yang menghitung , dan i untuk i masing-masing. Silakan lihat diagram kiri bawah untuk
penjelasan visual.
(32)
Sekarang, mari kita memperluas ini untuk pengolahan gambar dan langkah ke atas satu atau dua. Jadi, kami ingin upsampler gambar, seperti terlihat di bawah :
Gambar 2.9 contoh perbesaran
Untuk melakukan hal ini, seperti yang kita lakukan dengan interpolasi tetangga terdekat, kita perlu mendefinisikan transformasi antara koordinat dari gambar sumber dan akhir kita (upsampled) output gambar. Seperti yang ditunjukkan di bawah ini .
Gambar 2.10 kordinat system
Dari gambar di atas, kita dapat melihat sekarang bahwa ketika upsampling menggunakan interpolasi bilinier, kita hanya menciptakan pixel baru di gambar
(33)
, ditentukan oleh posisi relatif dari pixel baru dibandingkan dengan piksel – piksel tetangganya. Juga mencatat bahwa ini merupakan garis berat dalam dua dimensi. Jadi, secara umum, kita dapat interpolasi nilai apapun untuk menempatkan piksel dalam gambar target sebagai: [2]
Y(J,K) = (1 – W ) (1 – H) X (A,B) + (W) (1 – H) X (A + 1,B) + (1 – W) (H) X (A,B+1) +
(W) (H) X (A + 1,B+1) (2.5)
2.4.3 Interpolasi Dengan Orde Lebih Tinggi
Meskipun interpolasi bilinier menghasilkan citra kontinyu, namun tepat pada keempat koordinat tetangga tersebut, slope-nya tidak kontinyu. Hal ini terjadi karena interpolasi yang digunakan untuk menginterpolasi sebelah kanan sebuah titik akan berbeda dengan yang digunakan untuk menginterpolasi sebelah kiri. Discontinyuitas dari slope ini mengakibatkan hasil yang tidak diinginkan apabila citra hasil interpolasi akan dioperasikan lebih lanjut.
Karena keterbatasan ini, sering kali diperlukan interpolasi dengan orde yang lebih tinggi. Hal ini dapat dilakukan dengan menggunakan lebih banyak titik yang ada di sekitar koordinat titik asal. Contoh interpolasi dengan orde yang lebih tinggi adalah interpolasi menggunkaan fungsi cubic spline, fungsi sin(ax)/ax. Waktu proses tentu akan lebih lama karena operasi matematis yang digunakan dan titik yang dioperasikan menjadi lebih banyak. Misalnya interpolasi bikubik yang memperhitungkan hingga 16 (6 x 6) titik bertetangga dengan bobot yang bersesuaian dengan polinomial orde 3 (tidak linier). [2]
(34)
2.4.4 Interpolasi Bikubik
Cubic Convolution dapat dicari dengan menyelesaikan dalam baris per baris terlebih dahulu. Kemudian disusul dengan penyelesaian kolom per kolomnya. Berdasarkan hasil per baris yang telah diselesaikan.
2.5 Operasi Geometri
Operasi Geometri pada pengolahan citra ditujukan untuk memodifikasi koordinat piksel dalam suatu citra dengan pendekatan tertentu, tetapi dalam perkembangannya dimungkinkan juga memodifikasi nilai skala keabuan. Operasi geometri berhubungan dengan perubahan bentuk geometri citra, antara lain: pencerminan (flipping), rotasi/ pemutaran (rotating), pemotongan (cropping), penskalaan (scaling/ zooming). [3]
2.5.1 Pencerminan (flipping)
Operasi pencerminan merupakan salah satu operasi geometri yang paling sederhana.
Efek pencerminan
horisontal : pencerminan pada sumbu Y vertikal : pencerminan pada sumbu X
kombinasi : pencerminan pada sumbu Y dan X Formula/ rumus yang digunakan
Pencerminan Horizontal : x’ = w – 1 – x
(35)
Pencerminan Kombinasi : x’ = w – 1 – x
y’ = h – 1 – y (2.8)
2.5.2 Rotasi/ Pemutaran (rotating)
Operasi rotasi dengan memutar koordinat yang akan dibahas adalah rotasi putaran (90°) dan putaran (180°).
2.5.2.1Rotasi searah jarum jam (CW/clock wise)
1. Rotasi putaran (90°) searah jarum jam (CW/clock wise) w’ = h dan h’ = w > pertukaran ukuran lebar & tinggi citra
x’ = w’ – 1 – y (2.9)
y’ = x (2.10)
2. Rotasi putaran (180°) searah jarum jam (CW/clock wise)
x’ = w’ – 1 – x (2.11) y’ = h’ – 1 – y (2.12)
2.5.2.2Rotasi berlawanan dengan arah jarum jam (CCW/counter clock wise)
Rotasi Bebas Dengan asumsi berlawanan arah jarum jam (CCW/counter clock wise)
x’ = x cos(θ) + y sin(θ) (2.13)
y’ = -x sin(θ) + y cos(θ) (2.14)
w’ = |w cos(θ)| + |h sin(θ)| (2.15)
(36)
2.5.3 Pemotongan (cropping)
Pemotongan (cropping) : Adalah pengolahan citra dengan kegiatan memotong satu bagian dari citra.
Rumus yang digunakan :
x’ = x – xL untuk x = xL sampai xR (2.17) y’ = y – yT untuk y = yT sampai yB (2.18) (xL,yT) dan (xR,yB) adalah koordinat titik pojok kiri atas dan pojok kanan bawah citra yang akan di-crop, ukuran citra menjadi :
w’ = xR – xL (2.19)
h’ = yB –YT (2.20)
Gambar 2.11 Mekanisme Cropping.
2.5.4 Penskalaan (scaling/ zooming)
Operasi penskalaan (scaling) dimaksudkan untuk memperbesar (zoom-in) atau memperkecil (zoom-out) citra.
Nilai skala >1, memperbesar citra asli Nilai skala <1, memperkecil citra asli Rumus yang dipakai :
(37)
Keterangan :
Sh = faktor skala horizontal Sv = faktor skala vertikal
Ukuran citra juga berubah menjadi :
(2.23) (2.24) Operasi zoom in dengan faktor 2 (Sh=Sv=2) : menyalin setiap piksel sebanyak 6 kali, jadi citra 2x2 piksel menjadi citra 6x6 piksel.
2.6 Transformasi Spasial
Terdiri atas transformasi maju dan transformasi mundur.
a. Transformasi maju
Transformasi Maju memetakan koordinat titik citra asal ke koordinat titik-titik citra hasil.
x'= f x (x, y ) (2.25)
y'= f y (x, y ) (2.26)
K o ( x ' , y ' ) = K i ( x , y ) (2.27) Keterangan :
(x,y) → koordinat asal (x’,y’) → koordinat hasil
fx , fy → fungsi transformasi spasial Ciri – ciri transformasi maju :
bila koordinat hasil pemetaan jatuh di antara 6 buah titik hasil
(38)
nilai keabuan titik asal didistribusikan ke keempat titik pada citra hasil
dengan aturan interpolasi tertentu
Gambar 2.12. Transformasi Maju. cara ini sering disebut pixel carry-over
b. Transformasi Mundur/Balik
Transformasi Mundur/Balik memetakan koordinat titik-titik citra hasil ke koordinat titik-titik citra asal
x = f x '(x', y' ) (2.28)
y = f y '(x' , y' ) (2.29) keterangan :
(x,y) → koordinat asal (x’,y’) → koordinat hasil
f’x , f’y → invers fungsi transformasi spasial Ciri – cirri Transformasi mundur/balik :
nilai x dan y hasil transformasi balik tidak bulat
jika hasil pemetaan balik jatuh di antara 6 titik
maka keabuan titik hasil dihitung berdasarkan nilai keabuan keempat titik tadi berdasarkan aturan interpolasi tertentu
(39)
Gambar 2.13. Transformasi Mundur/ Balik. Cara ini sering disebut pixel filling
2.7 Filtering
Filtering adalah suatu proses dimana diambil sebagian sinyal dari frekwensi tertentu, dan membuang sinyal pada frekwensi yang lain. Filtering pada citra juga menggunakan prinsip yang sama, yaitu mengambil fungsi citra pada frekwensi tertentu dan membuang fungsi citra pada frekwensi-frekwensi tertentu. [7]
2.7.1 Prinsip – prinsip filtering
Berdasarkan sifat transformasi fourier dari suatu citra dan format koordinat frekwensi seperti gambar 6.1. berikut ini:
(40)
Berikutnya kita perhatikan bagaimana pengaruh frekwensi rendah dan frekwensi tinggi pada citra dengan memanfaatkan hasil dari transformasi fourier. Dimana frekwensi pada citra dipengaruhi oleh gradiasi warna yang ada pada citra tersebut.
Dari sifat-sifat citra pada bidang frekwensi, maka prinsip-prinsip filtering dapat dikembangkan adalah sebagai berikut:
1. Bila ingin mempertahankan gradiasi atau banyaknya level warna pada suatu citra, maka yang dipertahankan adalah frekwensi rendah dan frekwensi tinggi dapat dibuang atau dinamakan dengan Low Pass Filter. Di dalam Low Pass Filter terdapat filter rata – rata ataupun filter gaussian
Hal ini banyak digunakan untuk reduksi noise dan proses blur.
2. Bila ingin mendapatkan threshold atau citra biner yang menunjukkan bentuk suatu gambar maka frekwensi tinggi dipertahankan dan frekwensi rendah dibuang atau dinamakan dengan High Pass Filter. Hal ini banyak digunakan untuk menentukan garis tepi (edge) atau sketsa dari citra. 3. Bila ingin mempertahankan gradiasi dan bentuk, dengan tetap mengurangi
banyaknya bidang frekwensi (bandwidth) dan membuang sinyal yang tidak perlu maka frekwensi rendah dan frekwensi tinggi dipertahankan, sedangkan frekwensi tengahan dibuang atau dinamakan dengan Band Stop Filter. Teknik yang dikembangkan dengan menggunakan Wavelet Transform yang banyak digunakan untuk kompresi, restorasi dan denoising.
(41)
2.7.2 Konvolusi
Konvolusi adalah perkalian total dari dua buah fungsi f dan f yang didefinisikan dengan:
(2.30) Untuk fungsi f dan h yang berdimensi 2, maka konvolusi dua dimensi didefinisikan dengan:
(2.31) Konvolusi 2D inilah yang banyak digunakan pengolahan citra digital, sayangnya rumus diatas sangat sulit diimplementasikan menggunakan komputer, karena pada dasarnya komputer hanya bisa melakukan perhitungan pada data yang diskrit sehingga tidak dapat digunakan untuk menghitung intregral di atas.[7]
Konvolusi pada fungsi diskrit f(n,m) dan h(n,m) didefinisikan dengan:
(2.32) Perhitungan konvolusi semacam ini dapat digambarkan dengan:
Bila ingin dihitung y = f * h, maka proses perhitungannya dapat dilakukan dengan:
(42)
Gambar 2.15 Perhitungan Konvolusi Secara Grafis.
Filter pada citra pada bidang spasial dapat dilakukan dengan menggunakan konvolusi dari citra (I) dan fungsi filternya (H), dan dituliskan dengan:
I’ = H ٔ I
Dan dirumuskan dengan:
(2.33)
Dimana :
m,n adalah ukuran dari fungsi filter dalam matrik.
Rumus konvolusi di atas digunakan untuk berbagai macam proses filter yang akan dijelaskan pada sub bab-sub bab berikut.
(43)
Seperti telah dijelaskan di atas bahwa Low Pass Filter adalah proses filter yang mengambil citra dengan gradiasi intensitas yang halus dan perbedaan intensitas yang tinggi akan dikurangi atau dibuang. Ciri-ciri dari fungsi l Low Pass Filter adalah sebagai berikut:
(2.34) Sebagai contoh dibuat program Low Pass Filter dengan fungsi filter rata-rata sebagai berikut:
2.7.4 High Pass Filter
Seperti telah dijelaskan di atas bahwa high pass filter adalah proses filter yang mengambil citra dengan gradiasi intensitas yang tinggi dan perbedaan intensitas yang rendah akan dikurangi atau dibuang. Ciri-ciri dari fungsi low pass filter adalah sebagai berikut:
(2.35) Sebagai contoh dibuat program high pass filter dengan fungsi filter rata-rata sebagai berikut:
(44)
2.8 Metode Hybrid
Metode hybrid yang dimaksudkan adlah penggabungan antara perbaikan citra (filter) yaitu low pass filter dengan metode perbesaran yaitu bilinear interpolation. Citra hasil perbesaran biasanya cenderung kontras, maka dibuat blok diagram sebagai berikut yang terdapat dua jalur, yaitu jalur atas yang melewati sebuah low pass filter kemudian dilakukan proses perbesaran dengan metode bilinear yang bertujuan untuk menurunkan kontras karena low pass filter
akan menghasilkan citra yang cenderung agak gelap. Sedangkan pada jalur bawah, citra langsung diperbesar dengan menggunakan metode bilinear, maka jalur ini menghasilkan perbesaran citra yang cenderung lebih kontras. Keluaran dari kedua jalur kemudian dijumlahkan dan diambil nilai rata – ratanya untuk keluaran system. [4]
Gambar 2.16 Perbesaran dengan Metode Hybrid.
2.9 MSE dan PSNR
Secara obyektif, citra diukur dari (Mean Sequare Error) MSE dan variasi nilai ini. Kelebihan teknik pengukuran ini dibandingkan dengan cara subyektif adalah: sederhana, kurang bergantung opini individu dan mudah ditangani secara matematis. Kekurangannya adalah nilai yang diperoleh tidak selalu mencerminkan
(45)
Disamping MSE, dua ukuran obyektif yang sering dipakai dalam pengolahan citra adalah SNR dan PSNR. Nilai SNR dan PSNR disukai karena skornya menunjukkan kualitas dari sinyal atau citra, artinya, citra dengan SNR atau PSNR yang tinggi memiliki kualitas yang lebih baik dari pada yang memiliki SNR atau PSNR rendah. Hal ini berlawanan dengan MSE. SNR dan PSNR didefinisikan sebagai berikut:[8]
(2.36) (2.37)
2.10 Matlab 7.1
Matlab (Matrix Laboratory) merupakan salah satu bahasa pemrograman yang dikembangkan oleh MathWorks. Matlab tidak hanya berfungsi sebagai bahasa pemrograman, tetapi sekaligus sebagai alat visualisasi, yang berhubungan langsung dengan ilmu Matematika.Penggunaan matlab, yaitu :[5]
a. Matematika dan komputasi b. Pengembangan algoritma
c. Pemodelan, simulasi dan pembuatan “prototipe” d. Analisis data, eksplorasi dan visualisasi
e. Grafik untuk sains dan teknik
f. Pengembangan aplikasi, termasuk pembuatan antarmuka grafis untuk pengguna (Graphical User Interface)
System Matlab terdiri dari lima bagian utama, yaitu : 1. Bahasa pemrograman Matlab
(46)
Bagian ini adalah bahasa (pemrograman) tingkat tinggi yang menggunakan matrik/array dengan pernyataan aliran kendali program, struktur data, masukan/keluaran, dan fitur – fitur pemrograman berorientasi objek.
2. Lingkungan kerja Matlab
Bagian ini adlah sekumpulan peralatan dan fasilitas Matlab yang digunakan oleh pengguna. Fasilitas yang dimaksud misalnya untuk mengelola variable di dalam ruang kerja (workspace) dan melakukan import dan export data. Sedangkan peralatan yang disediakan untuk pengembangan, pengelolaan, proses debugging dan pembuatan M-file untuk aplikasi Matlab.
3. Penanganan grafik
Bagian ini adalah system grafik Matlab, termasuk printah – printah (program) tingkat tinggi untuk visualisasi data dimensi dua dan dimensi tiga, pengolahan citra, animasi, dan presentasi grafik. Selain itu juga, bagian ini juga termasuk perintah – perintah (program) tingkat rendah untuk menetapkan sendiri tampilan grafik seperti halnya membuat graphical user interface untuk aplikasi Matlab.
4. Pustaka (library) fungsi matematis Matlab
Bagian ini adalah koleksi algoritma komputasi mulai dari fungsi dasar seperti menjumlahkan (SUM), menentukan nilai sinus (SINE), kosinus (COSINE) dan aritmatika bilangan kompleks, serta fungsi – fungsi seperti
(47)
5. API (application program interface) Matlab
Bagian ini adalah pustaka untuk menuliskan program dalam bahasa C dan fortran yang berinteraksi dengan Matlab, termasuk fasilitas untuk memanggilrutin program dari Matlab, memanggil Matlabsebagai mesin komputasi dan untuk pembacaan serta penulisan MAT-files.
Versi Matlab terbaru adalah Matlab 7. Namun, Matlab 7 hanya dapat dijalankan pada Windows XP, sedangkan untuk Windows 98 atau Windows ME digunakan Matlab 7 ke bawah. [5]
Tampilan jendela matlab dapat dibagi menjadi beberapa bagian, yaitu : 1. Jendela Utama
Berikut adalah penjelasan fungsi ikon – ikon pada toolbar : a. New , untuk membuka lembar kerja Matlab editor baru. b. Open , untuk membuka file – file yang sudah tersimpan.
c. Cut , untuk menghapus suatu teks yang diketikkan supaya dapat disalin kembali.
d. Copy , untuk mengkopi suatu teks.
e. Paste , untuk menyalin kembali teks yang sudah dihapus atau dikopi. f. Undo , untuk mengembalikan suatu perintah yang dilakukan
sebelumnya.
g. Redo , untuk mengembalikan suatu perintah yang dilakukan sesudahnya.
(48)
h. Simulink , untuk mengakses Simulink Library Browser yang berfungsi sebagai bantuan.
i. Help , untuk mengakses Help yang berfungsi sebagai bantuan pula.
j. Current Directory ,
untuk memilih lembar kerja aktif yang digunakan selama Matlab berlangsung.
Tampilan jendela utama adalah :
Gambar 2.17. Tampilan Jendela Utama Matlab
2. Workspace
(49)
Gambar 2.18. Tampilan Workspace
Fungsi workspace adalah menginformasikan kepada pengguna tentang variable-variabel yang dipakai selama penggunaan Matlab berlangsung. 3. Current Directory
Tampilan current directory dalam Matlab adalah :
Gambar 2.19. Tampilan Current Directory
Fungsi current directory adalah memilih direktori yang aktif dan akan digunakan selama penggunaan Matlab berlangsung.
4. Command History
Tampilan command history dalam Matlab adalah :
(50)
Fungsi command history adalah menyimpan perintah – perintah yang pernah ditulis pada command window.
5. Command Window
Tampilan command window dalam matlab adalah :
Gambar 2.21. Tampilan Command Window
Fungsi command window adalah menjalankan seluruh fungsi yang disediakan Matlab. Command Window merupakan tempat pengguna berinteraksi dengan Matlab.
6. Matlab Editor
(51)
Fungsi Matlab editor adalah membuat script program pada Matlab. Untuk memunculkan Matlab editor, kita menggunakan perintah File – New – M-File atau dengan mengetikkan >>edit pada command window.
7. Help
Tampilan help dalam Matlab :
(52)
Metode hybrid adalah metode yang digunakan untuk memperbesar citra dengan sembarang factor perbesaran, metode ini adalah gabungan dari perbaikan kualitas citra (filter) dan metode Bilinear Interpolation. Dalam metode hybrid
terdapat dua tahap yang harus dilakukan yaitu melalui jalur atas dan jalur bawah. Jalur atas adalah perbesaran citra yang melalui proses perbaikan citra melalui low pass filter kemudian hasil dari filter tersebut akan diperbesar menggunakan metode Bilinear Interpolation. Sedangkan untuk jalur bawah citra hasil akan langsung diperbesar menggunakan metode Bilinear Interpolation. Pada bab ini akan dibahas tentang analisa permasalahan, perancangan system yang terdiri dari perbaikan kualitas citra dan juga metode Bilinear Interpolation, contoh permasalahan, serta rancangan antarmuka aplikasi yang akan dibuat.
3.1 Analisa Permasalahan
perbesaran citra merupakan proses penting yang banyak aplikasinya dalam pengolahan citra, namun metode yang digunakan bermacam – macam. Perbesaran citra dibutuhkan karena proses ini merupakan proses perbearan bagian citra, dimana citra yang diperbesar dapat memperlihatkan gambar dengan jelas. Proses – proses yang termasuk dalam perbesaran citra, yaitu :
(53)
1. Preprocessing, merupakan kumpulan dari proses yang digunakan untuk dapat menghasilkan perbesaran citra yang baik.
a. Cropping yaitu proses pemotongan citra sebagian. Dalam hal ini citra hasil
cropping akan dijadikan objek untuk diperbesar.
b. Konvolusi yaitu proses perkalian total dari dua buah fungsi diskrit f(n,m) dan h(n,m) dimana f adalah citra hasil cropping sedangkan h adalah kernel matriks.Filterisasi yaitu proses peningkatan mutu citra dalam hal ini yang digunakan adalah low pass filter dengan fungsi filter rata – rata.
2. Perbesaran citra dengan metode hybrid yaitu melakukan perbesaran dengan penggabungan antara perbaikan citra dengan metode perbesaran bilinear interpolation.
3.2 Pengolahan Citra Digital
Citra digital direpresentasikan dengan dua dimensi yang disebut larik (array) atau matriks. Operasi pada citra digital pada dasarnya adalah manipulasi atau memodifikasi elemen – elemen matriks. Elemen yang dimanipulasi dapat berupa elemen tunggal (sebuah piksel), sekumpulan elemen yang berdekatan, atau keseluruhan elemen matriks. Citra digital dapat didefinisikan sebagai dua variabel
f(x,y), dimana x dan y adalah kordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut. Sebuah citra diubah kebentuk digital agar dapat disimpan dalam memori computer atau media lain. Proses pengubah citra kebentuk digital bias dilakukan dengan beberapa perangkat, misalnya scanner, kamera digital,
(54)
digital (selanjutnya disebut citra digital), bermacam – macam proses pengolahan citra dapat dilakukan terhadap citra tersebut. [7]
Gambar 3.1. Proses Pengolahan Citra Digital
Pada awal permulaan melalui proses pengolahan citra digital dari objek sampai pada merekam objek menggunakan kamera analog dihasilkan citra kontiniu ini berasal dari sumber cahaya menyinari objek, objek memantulkan kembali sebagian berkas cahaya tersebut, pantulan ini ditangkap oleh sensor visual pada system optic pada kamera analog.
Digitalisasi merupakan system penangkap citra digital yang melakukan penjelajahan citra dan mengkonversinya ke representasi numeric sebagai masukan bagi computer digital. Hasil dari digitalisasi adalah matriks yang elemen –
(55)
digunakan untuk digitalisasi adalah scanner. Digitalisasi terdiri dari tiga komponen dasar yaitu sensor citra yang bekerja sebagai pengukur intensitas cahaya, perangkat penjelajah yang berfungsi merekam hasil pengukuran intensitas pada seluruh baian citra, dan mengubah analog ke digital yang berfungsi melakukan spasial dan kuantitas.
Komputer digital yang digunakan pada system pemrosesan citra dapat bervariasi dari computer mikro sampai komputer besar yang mampu melakukan bermacam – macam fungsi pada citra digital resolusi tinggi. Program pengolahan citra digital berfungsi untuk mengolah citra masukan yang akan diperbaiki kualitas atau mutu citra masukan menjadi citra keluaran yang menghasilkan citra yang lebih mudah dideskripsikan.
Piranti tampilan peraga berfungsi untuk mengkonversi matriks intensitas yang merepresentasikan citra kketampilan yang dapat diinterpretasikan oleh mata manusia. Contoh piranti tampilan adalah monitor. Media penyimpanan adalah piranti yang mempunyai kapasitas memori besar sehingga gambar dapat disimpan secara permanen sehingga dapat digunakan kembali dimasa mendatang. Alat yang digunakan untuk media penyimpanan adalah hard disk, disket, atau media penyimpanan lainnya.
3.3 Perancangan System
Secara garis besar system ini terbagi dari tiga bagian utama, yaitu memotong (cropping), jalur atas yang terdiri dari perbaikan citra (filter) dan
(56)
perbesaran citra menggunakan metode Bilinear Interpolation, jalur bawah meperbesar citra dengan metode Bilinear Interpolation.
3.3.1 Pemotongan (cropping)
Cropping adalah memotong satu bagian citra sehinga diperoleh citra yang berukuran lebih kecil. Operasi ini pada dasarnya adalah operasi translasi, yaitu menggeser koordinat titik citra.
3.3.2 Jalur Atas
Jalur atas adalah penggabungan antara perbaikan citra melalui proses
konvolusi dan juga low pass filter yang bertujuan untuk menurunkan kontras karena low pass filter akan menghasilkan citra yang cenderung agak gelap dengan metode perbesaran Bilinear Interpolation.
3.3.3 Jalur Bawah
Jalur bawah adalah perbesaran citra dengan metode Bilinear Interpolation
maka perbesaran ini menghasilkan perbesaran citra yan cenderung lebih kontras. Metode Bilinear Interpolation merupakan perpanjangan dari interpolasi – interpolasi linear untuk fungsi dua buah variable digrid biasa.
3.4 Algoritma dan Diagram Alir (flowchart)
(57)
3.4.1 Algoritma Perbesaran Citra Hasil Cropping dengan Menggunakan
Metode Hybrid
Untuk sampai pada perancangan program, akan ditentukan terlebih dahulu bentuk algoritma dalam mendukung proses perbesaran data citra digital hasil
cropping dengan menggunakan metode hybrid, yaitu. 1. Mengcropping citra inputan
2. Menghitung nilai konvolusi
3. Menghitung nilai (x,y) baru dalam hal ini disebut penskalaan dengan citra hasil dari konvolusi
4. Menentukan ratio antara dimensi lama dibandingkan dimensi baru 5. Menghitung jarak W(width) dan H(height)
6. Menghitung nilai ketetanggaan (1,1), (1,2), (2,1), (2,2) 7. Menghitung rumus Bilinear Interpolation.
8. Mengulang langkah no.3 samapi no.7 tetapi ciitra yang dipakai adalah citra hasil crop.
9. Menggabungkan perbesaran citra hasil konvolusi dan zoom Bilinear Interpolation dengan citra hasil zoomBilinear Interpolation.
3.4.2 Flowchart Secara Garis Besar
Secara garis besar algoritma perbesaran data citra digital hasil cropping
(58)
Gambar 3.2. Flowchart Secara Garis Besar
Keterangan :
(i) input file yang nantinya akan diperbesar (zoom), setelah nama file di-input, gambar di-load dan dipersiapkan untuk di-zoom.
(ii) Crop, citra inputan akan dicrop terlebih dahulu.
(iii) Jalur Atas disini masih terdiri dari beberapa proses yaitu proses perbaikan citra dan juga proses perbesaran citra dengan metode Bilinear Interpolation. (iv) Jalur bawah adalah citra hasil crop akan langsung diperbesar dengan metode
(59)
(v) Hasil dari jalur atas dan bawah akan dirata- rata dan akan menjadi keluaran dari system.
3.4.3 Flowchart Preprocessing
Preprocessing merupakan kumpulan dari proses yang digunakan untuk dapat menghasilkan perbesaran yang baik. Preprocessing yang digunakan adalah
cropping, konvolusi dengan low pass filter,. Flowchart ditunjukkan sebagai berikut.
Gambar 3.3. Flowchart Proses Preprocessing
Dari proses preprocessing yang terlihat pada flowchart sebelumya, dikatakan bahwa proses salah satu awal dari proses preprocessing ini adalah proses cropping. Dalam hal ini, proses cropping yang dilakukan adalah memotong sebagian dari citra asli. Pada gambar dijelaskan bagaimana cara kerja proses ini dalam bentuk flowchart.
(60)
Gambar 3.4. Flowchart Proses Cropping
Proses kedua setelah proses cropping adalah proses konvolusi
dengan low pass filter, dimana dalam proses ini menggunakan filter rata – rata. Proses yang dilakukan dalam proses ini adalah memperbaiki kualitas citra asli.
(61)
3.4.4 Flowchart perbesaran (zoom)
Proses perbesaran (zoom) citra merupakan proses utama dari pengolahan citra ini. Berikut ditampilkan flowchart dari proses tersebut.
start Input data (x,y) penskalaan x_new=zoom*x y_new=zoom*y Menentukan ratio x_scale = x_new/(u-1) y_scale = y_new/(v-1)
For i = 0
for j = 0
Menghitung nilai width dan height W = -(((i/x_scale)-(i/x_scale))-1) H = -(((j/y_scale)-(j/y_scale))-1)
Mencari nilai ketetanggaan (1,1), (1,2), (2,1), (2,2)
(x,y) = baru(1+(i/x_scale),1+(j/y_scale),1);
End
zoom= (1-W)*(1-H)*(2,2) + (W)*(1-H)*(2,1) + (1-W)*(H)*(1,2) + (W)*(H)*(1,1)
Y j=y_new-1 T i=x_new-1 Y T
(62)
3.5 Contoh permasalahan
Dalam hal ini aplikasi ini digunakan matriks hasil cropping berdimensi 3, tetapi dalam contoh permasalahan akan diambil matriks berdimensi 1 saja yaitu :
gbr_crop(:,:,1) =
248 247 247 250 251
245 245 245 248 248
241 243 244 245 244
238 242 244 243 242
Matriks hasil cropping ini akan dilakukan perbesaran 2 kali menggunakan metode hybrid. Berikut langkah – langkah dalam menerapkan metode hybrid.
a. Melalui jalur atas
1. mereplikasi terlebih dahulu dalam hal ini disebut (padding) maka ukuran citra akan bertambah kekanan, kekiri, keatas, maupun kebawah.
gambar = padding matriks [1 1] gambar(:,:,1) =
248 248 247 247 250 251 251 248 248 247 247 250 251 251 245 245 245 245 248 248 244 241 241 243 244 245 244 248 238 238 242 244 243 242 242 238 238 242 244 243 242 242
Karena citra berdimensi 3 maka akan dihitung dari masing – masing dimensi, tetapi dalam contoh permasalahan ini kita memakai dimensi 1 jadi tidak perlu untuk menghitung dimensi 2 atau 3.
(63)
2. Dari hasil padding makan akan dilakukan konvolusi dengan filter rata – rata dalam hal ini disebut mask/ kernel. Matriks mask yang dipakai dalam aplikasi ini adalah matriks [3 3].
h =
3. Proses konvolusi
perhitungan konvolusi dimulai dari matrik (2,2) = gambar(1,1)*h(1,1) + gambar(1,2)*h(1,2) + gambar(1,3)*h(1,3) + gambar(2,1)*h(2,1) + gambar(2,2)*h(2,2) + gambar(2,3)*h(2,3) + gambar(3,1)*h(3,1) + gambar(3,2)*h(3,2) + gambar(3,3)*h(3,3)
248*0.1111 248*0.1111 247*0.1111 247 250 251 251 248*0.1111 248*0.1111 247*0.1111 247 250 251 251 245*0.1111 245*0.1111 245*0.1111 245 248 248 244
241 241 243 244 245 244 248
238 238 242 244 243 242 242
238 238 242 244 243 242 242
Demikian seterusnya bergeser satu persatu hingga baris-1 dan kolom-1 dan didapat matriks baru
247 245 246 249 252 245 244 245 247 249 241 242 244 245 246 239 241 243 243 243
0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111
(64)
Terlihat bahwa baris dan kolom ditepi bernilai 0 maka akan dihilangkan dan dapat mengembalikan matriks keukuran semula sperti sbelum dipadding. 4. Dari hasil konvolusi tersebut akan dizoom menggunakan metode Bilinear
Interpolation. Menggambarkan piksel – piksel yang baru yang berukuran (n.k x n.k), dari gambar berikut, dapat terlihat posisi piksel asli maupun posisi piksel hasil interpolasi. Karena akan dizoom 2 kali maka ukuran citra menjadi 2 kali yaitu x_new = 8, dan y = 10.
247 0 245 0 246 0 249 0 252 0
0 0 0 0 0 0 0 0 0 0
245 0 244 0 245 0 247 0 249 0
0 0 0 0 0 0 0 0 0 0
241 0 242 0 244 0 245 0 246 0
0 0 0 0 0 0 0 0 0 0
239 0 241 0 243 0 243 0 243 0
0 0 0 0 0 0 0 0 0 0
5. Menentukan ratio dimensi lama dibandingkan dimensi baru x_scale = 8/(4 – 1) = 2.6667
y_scale = 10/(5 – 1) = 2.5000 6. Inisialisasi buffer gambar
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
(65)
W = – (((count1/x_scale) – (count1/x_scale)) – 1) = 1
H = – (((count2/y_scale) – floor(count2/y_scale)) –1) = 0.2000
baru = matriks hasil konvolusi
baru11 = baru(1+ (count1/x_scale),1+ (count2/y_scale)) baru12 = baru(1+ (count1/x_scale),1+ (count2/y_scale)) baru21 = baru(1+ (count1/x_scale),1+ (count2/y_scale)) baru22 = baru(1+ (count1/x_scale),1+ (count2/y_scale))
8. Bilinear interpolation
Dari hasil no.5 dan no.7 berulang ulang dan dimasukkan kedalam rumus bilinear interpolation dibawah ini :
hasil= (1-W)*(1-H)*baru22 + (W)*(1-H)*baru21 + (1-W)*(H)*baru12 + (W)*(H)*baru11
maka akan menghasilkan perbesaran dengan piksel – piksel baru seperti dibawah ini :
247 246 245 245 246 246 248 248 249 251
246 246 245 245 245 246 246 247 249 250
246 245 244 244 244 246 246 247 248 249
244 244 244 244 244 245 245 246 247 247
244 243 243 243 244 245 245 246 247 247
242 242 241 242 243 245 244 245 245 246
241 241 241 242 243 244 243 245 245 244
(66)
b. Melalui jalur bawah
Pada dasarnya jalur bawah hampir sama dengan jalur atas akan tetapi pada jalur bawah tidak perlu dilakukan proses konvolusi jadi pada jalur bawah ini hanya memperbesar saja. Untuk langkah – langkahnya tinggal mengikuti langkah – langkah pada jalur atas mulai no.4 sampai dengan no.8 akan tetapi citra yang diperbesar adalah citra hasil cropping bukan citra hasil konvolusi.
Maka akan dihasilkan matriks perbesaran baru yaitu :
248 248 248 247 247 247 248 249 250 251 247 247 247 247 247 246 247 248 249 249 246 246 245 245 245 246 246 248 249 249 244 245 245 245 245 245 246 247 247 247 244 244 243 243 245 245 246 246 246 246 242 242 243 243 243 245 244 245 245 245 241 241 242 243 244 244 244 245 245 243 239 240 242 242 243 245 245 243 242 244
Dari proses melalui jalur atas dan proses melalui jalur bawah maka hasil dari kedua proses tersebut akan dirata – rata dan hasilnya adalah keluaran dari program (output).
248 247 247 26 247 247 248 249 250 251 247 247 246 246 246 246 247 248 249 250 246 246 245 245 245 246 246 248 249 249 244 245 245 245 245 245 246 247 247 247 244 244 243 243 245 245 247 246 247 247 242 242 242 243 243 245 244 245 245 246 241 241 242 243 244 244 244 245 245 244 239 240 242 242 243 245 245 243 242 244
(67)
3.6 Rancangan Antarmuka
Dalam melakukan perancangan antarmuka sistem diharapkan mampu memenuhi aspek-aspek seperti user friendly (mudah dimengerti oleh user), sederhana, dan mengurangi terjadinya kesalahan saat user menggunakan sistem. Untuk memberikan gambaran awal tentang antarmuka aplikasi serta menjaga konsistensi dari desain aplikasi, maka perlu dibuat suatu rancangan masukan dan keluaran aplikasi.
a. FormSplash
Form splash merupakan form yang muncul pertama kali ketika aplikasi dijalankan. Form splash menampilkan nama dari aplikasi yang dijalankan. Berikut merupakan rancangan antarmuka dari form splash.
Gambar 3.7. form splash
b. Form Utama
Form utama pada Gambar 3.6 ini digunakan untuk memasukkan objek berupa citra dengan format .jpg atau .bmp. Dalam form utama ini proses
(68)
utama. Proses zoom atau perbesaran juga terdapat didalam form utama setelah proses cropping dilakukan.
Gambar 3.8. form utama
c. Form Bantuan
Form bantuan pada Gambar 3.8 berisi petunjuk cara menggunakan aplikasi yang digunakan sebagai panduan atau petunjuk bagi user apabila mengalami kendala dalam menjalankan aplikasi ini.
(69)
4.1 Kebutuhan System
Sebelum melakukan implementasi dan menjalankan aplikasi untuk perbesaran data citra digital hasil cropping dengan menggunakan metode hybrid, dibutuhkan spesifikasi perangkat keras dan juga perangkat lunak dengan kondisi tertentu agar dapat berjalan dengan baik.
Berikut ini adalah perangkat keras yang digunakan untuk menjalankan aplikasi perbesaran data citra digital hasil cropping dengan menggunakan metode
hybrid :
a. Komputer dengan prosesor Dual Core. b. Memori 1 GB.
Kebutuhan perangkat lunak yang digunakan untuk menjalankan aplikasi perbesaran data citra digital hasil cropping dengan menggunakan metode hybrid
ini adalah sebagai berikut :
a. Sistem Operasi Microsoft Windows XP Profesional SP2. b. Matlab 7.1
(70)
4.2 Potongan Program
Dalam sub bab ini akan dijelaskan mengenai beberapa potongan program matlab sebagai implementasi dari algoritma yang sudah dijelaskan pada bab sebelumnya.
a. Membuka dan menyimpan file
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp'},'Buka
Gambar')
[namafile,direktori]=uiputfile({'*.jpg';'*.bmp'},'SimpanGambar
');
Fungsi “uigetfile()” digunakan untuk membuka file. Fungsi
“uigetfile()” menghasilkan dua keluaran, yaitu variable namafile dan variable direktori. Variable namafile digunakan untuk menyimpan nama file yang dibuka dan variable direkori digunakan untuk menyimpan path direktori. Fungsi untuk menyimpan file adalah “uiputfile()”.
b. Mengambil data dan mengcrop gambar
proyek=guidata(gcbo);
I=get(proyek.original_image,'Userdata'); gbr_crop=imcrop(I);
set(proyek.figUtama,'CurrentAxes',proyek.crop); set(imshow(gbr_crop));
set(proyek.figUtama,'Userdata',gbr_crop);
set(proyek.original_image,'Userdata',gbr_crop);
Pada matlab, fungsi untuk mengambil data yang tersimpan pada properties userdata disuatu uicontrol fungsi yang digunakan adalah “get()” sedangkan fungsi untuk meng – crop citra menggunakan fungsi “imcrop”.
(71)
c. Mereplikasi matrik asli dan menentukan matrik mask/ kernel
% mereplikasi matrik asli dan menentukan mask/ kernel gambar=padarray(gbr_crop,[1 1],'replicate');
[b,k,j]=size(gambar); h=ones(3,3)/9;
Mereplikasi matriks asli dilakukan untuk proses selanjutnya yaitu proses konvolusi agar pada waktu proses konvolusi matriks asli tidak kehilangan data keasliannya. Dalam proses konvolusi yang menggunakan low pass filter dengan filter rata – rata memerlukan matriks mask/ kernel, karena menggunakan low pass filter maka matriks mask/ kernel dengan jumlah mariks harus sama dengan satu.
d. Mengalikan matriks asli dengan matriks mask/ kernel
for klm=2:k-1
for brs=2:b-1 red1=gambar(brs-1,klm-1,1)*h(1,1); red2=gambar(brs-1,klm,1)*h(1,2); red3=gambar(brs-1,klm+1,1)*h(1,3); red4=gambar(brs,klm-1,1)*h(2,1); red5=gambar(brs,klm,1)*h(2,2); red6=gambar(brs,klm+1,1)*h(2,3); red7=gambar(brs+1,klm-1,1)*h(3,1); red8=gambar(brs+1,klm,1)*h(3,2); red9=gambar(brs+1,klm+1,1)*h(3,3);
Dalam aplikasi ini matriks asli akan dikalikan dengan matriks mask/ matriks kernel, perhitungan dimulai dari matriks hasil replikasi. Untuk citra dengan 24 bit maka perhitungan nilai RGB nya dihitung masing – masing setelah itu digabungkan dalam satu variable yang sama.
(72)
e. Menentukan ratio dimensi lama dibandingkan dimensi baru
%menentukan ratio dimensi lama dibandingkan dimensi baru
x_scale = x_new/(u-1); y_scale = y_new/(v-1);
Perhitungan ratio digunakan untuk perhitungan selanjutnya, perhitungan ratio didapat dari x dan y yang baru.
f. Menghitung nilai W dan H dan juga 4 nilai – nilai tetangganya
for count1 = 0:x_new-1 for count2 = 0:y_new-1
W = -(((count1/x_scale)-floor(count1/x_scale))-1); H = -(((count2/y_scale)-floor(count2/y_scale))-1); hasil_red11 = baru(1+floor(count1/x_scale),1+floor(count2/y_scale),1); hasil_red12 = baru(1+ceil(count1/x_scale),1+floor(count2/y_scale),1); hasil_red21 = baru(1+floor(count1/x_scale),1+ceil(count2/y_scale),1); hasil_red22 = baru(1+ceil(count1/x_scale),1+ceil(count2/y_scale),1);
Nilai W dan H digunakan digunakan untuk menghitung rumus bilinear interpolation yang sudah dijelaskan dalam bab – bab sebelumnya. Seperti yang telah ada rumus bilinear interpolation menggunakan 4 piksel tetangganya untuk mencari piksel – piksel baru.
g. Menampilkan gambar
% ----MENAMPILKAN HASIL AKHIR ---
set(proyek.figUtama,'CurrentAxes',proyek.original_image); set(imshow(selesai));
set(proyek.figUtama,'Userdata',selesai); set(proyek.crop,'Userdata',selesai);
(73)
Didalam matlab fungsi untuk menampilkan gambar adalah “imshow()”,
gambar akan ditampilkan dalam figure utama dan ditampilkan dalam sebuah
axes.
h. Menghitung Nilai MSE dan PSNR
% ---menampilkan nilai MSE dan PSNR---
R_jalur_atas=hasil(:,:,1); G_jalur_atas=hasil(:,:,2); B_jalur_atas=hasil(:,:,3); gray_jalur_atas
=double((double(R_jalur_atas)+double(G_jalur_atas)+double(B_ja lur_atas))/3);
MSE_jalur_atas = mse(gray_jalur_atas/255);
PSNR_jalur_atas = 10*log10(255^2/MSE_jalur_atas);
Menghitung nilai MSE dan PSNR terlebih dahulu menghitung derajat keabuannya dengan menghitung masing – masing nilai RGBnya.
4.3 Implementasi Interface
Pada tahap ini akan dijabarkan tentang rancangan interface dari aplikasi perbesaran data citra digital hasil cropping dengan menggunakan metode hybrid
berdasarkan perancangan yang telah dibuat terdapat menu – menu antara lain : 1. Menu File
2. Menu Edit 3. MenuBantuan
Selain menu – menu yang ada terdapat juga form splash, Form ini tampak pada saat aplikasi pertama kali dijalankan. Form splash ini perlu dibuat agar dapat diketahui nama dari aplikasi tersebut. Seperti terlihat pada gambar 4.1 dibawah,
(74)
pada form splash menu – menu tersebut ditampilkan. Berikut adalah interface dari
form splash.
Gambar 4.1. Interface Form Splash
4.3.1 Menu File
Di dalam menu file terdapat beberapa sub – sub menu antara lain sub menu utama, sub menu open, sub menu save, dan sub menu keluar.
1. Sub Menu Utama
Jika sub menu utama di klik, maka user akan masuk ke form utama, dimana form utama merupakan tempat melakukan proses pembesaran data citra digital hasil cropping menggunakan metode hybrid. Untuk menu – menu yang lainnya kecuali menu keluar dibuat off saat form splash ditampilkan.di dalam form utama terdapat tempat untuk menampilkan inpu maupun output, terdapat informasi yang berguna untuk mengetahui informasi tentang citra,
(75)
terdapat tempat untuk menampilkan hasil cropping dan tempat untuk mengetahui ni lai MSE atau nilai PSNR.
Berikut ini adalah tampilan dari form utama :
Gambar 4.2. Form Utama
2. Sub Menu Open
Sub menu open digunakan untuk menginputkan citra yang akan diproses, jika user mengklik sub menu open maka akan muncul tampilan dimana tempat dan nama citra yang ingin diproses, user juga dapat memilih citra mana saja kecuali citra yang mempunyai 8 bit atau citra grayscale karena program aplikasi ini dibuat untuk citra truecolor atau citra yang mempunyai 24 bit. Jika user melakukan kesalahan dalam menginputkan citra maka akan ada informasi dari program aplikasi tersebut seperti yang akan ditunjukkan pada gambar 4.4 dibawah ini.
(76)
Gambar 4.3. Buka Gambar
Gambar 4.4. Konfirmasi Kesalahan
3. Sub Menu Save
Sub menu save dugunakan untuk menyimpan citra yang sudah di proses baik citra hasil crop maupun citra hasil akhir. Sub menu save ini dapat digunakan ketika citra inputan sudah dicrop, sebelum proses crop dilakukan sub menu save di off – kan oleh aplikasi tersebut.
(1)
75
Uji coba kedua, dilakukan pada objek citra yang sama seperti pada uji coba yang pertama, tetapi berbeda extensi. Pada uji coba yang pertama, dilakukan pada citra yang berextensi jpg sedangkan pada uji coba yang kedua dilakukan pada citra yang berextensi bmp. Hal ini sengaja dilakukan apabila mengalami perbedaan pada hasil pembesaran citra antara dua objek citra yang sama, tetapi berbeda extensi.
Dari hasil uji coba pada tabel 5.3 dan 5.4 diatas, dapat diketahui bahwa hasil pembesaran citra pada uji coba kedua, menghasilkan output citra yang sama seperti pada uji coba yang pertama. Yang membedakan antara uji coba yang pertama dengan uji coba yang kedua, yaitu terletak pada hasil nilai MSE dan PSNR ketika melakukan pembesaran citra menggunakan citra yang berextensi
bmp ini, nilai yang dihasilkan lebih besar sedikit meskipun hanya 0,00... sekian. Hal ini dikarenakan citra yang berextensi bmp memiliki bit yang lebih besar daripada citra yang berextensi jpg.
Gambar citra inputan maupun citra hasil proses pembesaran dapat dilihat pada lembar lampiran.
5.1.3 Uji Coba Dengan Membandingkan Setiap Citra Inputan Dengan Extensi Yang Berbeda
Uji coba yang berikutnya adalah membandingkan hasil dari citra yang mempunyai extensi yang berbeda – beda dalam hal ini extensi yang digunakan adalah “.jpg”, “.bmp”, “.tif”, “.png”, ukuran dari citra inputan juga berbeda – beda.
(2)
76
Tabel 5.5. Hasil uji coba untuk citra dengan extensi yang berbeda – beda
Nama Citra Ukuran Citra Zoom MSE PSNR Waktu/s
Laron.bmp 212x282 5 0.69515 49.7100 23
Tanaman.jpg 160x175 5 0.33031 52.9415 21
Lalat.png 241x230 5 0.40579 52.0478 24
Buku.tif 496x135 5 0.48823 51.2446 22
Dari hasil table 5.5 dapat disimpulkan citra dengan exensi yang berbeda – beda dengan ukuran yang berbeda dengan perbesaran yang sama maka nilai MSE dan PSNRnya juga berbeda, waktu prosesnya juga berbeda. Waktu proses disebabkan oleh besar kecilnya ukuran dari citra inputan dapat dilihat pada table, Tanaman.jpg dengan ukuran 160x175 piksel lebih cepat waktu prosesnya, sedangkan Lalat.png dengan ukuran 241x230 piksel lebih lama.
Gambar citra inputan maupun citra hasil proses pembesaran dapat dilihat pada lembar lampiran.
5.1.4 Uji Coba Dengan Media Yang Berbeda
Uji coba yang terakhir adalah uji coba dengan menggunkan alat atau media yang berbeda dalam hal ini media yang digunakan adalah kamera digital, kamera hand phone, dan juga kamera webcam.
Tabel 5.6. Hasil uji coba untuk media yang berbeda – beda
Media Nama Citra Ukuran Zoom MSE PSNR
Kamera HP 3,2 MP Akar.jpg 356x561 3 0.1296 57.0048 Kamera Digital 9 MP Kamboja.jpg 668x538 3 0.28728 53.5478 Kamera webcam 1,3 MP Daun.jpg 567x507 3 0.22513 54.6065 Dari table 5.6 dapat dilihat nilai MSE atau nilai PSNR dipengaruhi oleh besar kecilnya ukuran citra input, semakin kecil citra input maka nilai MSE
(3)
77
semakin kecil dan nilai PSNR semakin besar. Semakin besar citra input maka nilai MSE semakin besar dan nilai PSNRnya semakin kecil.
Gambar citra inputan maupun citra hasil proses pembesaran dapat dilihat pada lembar lampiran.
5.2 Evaluasi
Hasil evaluasi dari uji coba pembesaran citra yang telah dilakukan membuktikan bahwa aplikasi yang telah dibuat dapat berjalan dengan baik sesuai dengan fungsinya. Sedangkan hasil evaluasi dari uji coba mengenai citra hasil pembesaran yang telah dilakukan dengan menggunakan metode Hybrid
membuktikan sudah seoptimal yang diharapkan untuk citra berekstensi jpg dan untuk citra berekstensi bmp, serta citra yang mempunyai extensi yang lain. Hal ini dibuktikan dengan tidak terjadinya pecah – pecah atau kotak – kotak pada citra hasil pembesaran yang berekstensi jpg dan citra hasil pembesaran yang
berekstensi bmp. Meskipun nilai MSE dan PSNR citra yang berekstensi jpg lebih baik dari pada citra yang berekstensi bmp. Hal ini dikarenakan citra yang berekstensi jpg telah terkompres, sedangkan citra yang berekstensi bmp belum terkompres (masih bit asli), sehingga kualitas citra lebih baik. Meskipun apabila dilihat sekilas motor tidak terlihat sama sekali. Selain itu, pembesaran citra menggunakan metode hybrid memiliki kualitas citra yang lebih tinggi. Metode
(4)
78
BAB VI
PENUTUP
6.1 Kesimpulan
Kesimpulan yang dapat diambil dari pembuatan Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid berdasarkan dari hasil rumusan masalah yang telah disebutkan sebelumnya adalah sebagai berikut:
1. Aplikasi Pembesaran Citra hasil crop ini dibangun atau dibuat sesuai dengan alur atau tahapan-tahapan yang terdapat pada metode Hybrid. Sehingga Aplikasi ini dapat berjalan sesuai dengan fungsinya, yaitu dapat memperbesar gambar atau citra hasil cropping (potong) dari yang semula gambar atau citra asli diambil sebagian saja.
2. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid dapat berfungsi sesuai fungsinya untuk memperbesar citra hasil crop dengan inputan yang diinputkan oleh user.
3. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid menghasilkan nilai MSE lebih kecil dan nilai PSNR lebih besar dibandingkan dengan metode yang lain, dengan demikian maka kualitas citra metode hybrid 73 % lebih baik.
(5)
79
4. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid menghasilkan citra lebih soft dibandingkan dengan menggunakan metode – metode yang lain.
5. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid dapat meload gambar yang berextensi ”.jpg”, ”.bmp”, ”.tif”, dan juga ”.png”.
6. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid dalam melakukan proses perbesaran waktu yang diperlukan dipengaruhi oleh besar kecilnya citra yang dicrop.
7. Aplikasi Perbesaran Data Citra Digital Hasil Cropping dengan Menggunakan Metode Hybrid dapat dapat meload gambar dengan menggunakan kabel data, mms atau bluetooth.
6.2 Saran
Adapun saran yang dapat digunakan untuk mengembangkan aplikasi yang telah dibuat adalah Aplikasi Metode Perbesaran citra hybrid juga dapat disusun oleh beberapa metode perbesaran citra lain, yang mungkin lebih baik dari metode yang telah dipakai penelitian ini.
(6)
80
DAFTAR PUSTAKA
[1]
Bilinear Interpolation, (online),
http://www.GIASSA.NET/Bilinear Interpolation/ diakses 24 Juni 2010 pkl 14.00 WIB
[2]
Interpolasi, (online),
(http://senosuke.wordpress.com/2009/12/22/interpolasi/ diakses 28 Juli 2010 pkl.13.00)
[3]
Kartika Firdausy, Operasi geometri (online),
(http://blog.uad.ac.id/kartikaf/files/2009/02/operasi-geometri.pdf/ diakses 4 Agustus 2010 pkl. 06.30 WIB)
[4]
Komang somawirata, Magnification Of Digital Image Data By Cropping The Results Using The Hybrid Method, (online),
(http://technoscientia.akprind.ac.id/wp-content/uploads/2009/08/komang 731.pdf/ diakses 22 Juli 2010 pkl. 18.30 WIB)
[5]
Paulus, Erick & Yessica Nataliani. 2007. Cepat Mahir GUI MATLAB. Yogyakarta:ANDI OFFSET
[6]
Pengolahan citra digital, (online),
http://www.scribd.com/doc/26023237/Bab-II-Teori-Dasar-2-2-1-Pengolahan/ diakses 28 Juli 2010 pkl. 13.00 WIB)
[7]
Riyanto, Konvolusi dan low pass filter, (online),
(http://www2.eepis-its.edu/~riyanto/citra-bab6.pdf/ diakses 11 mei 2010 pkl.23.45 WIB)
[9]
Suksmono, MSE dan PSNR, (online),
(http://radar.ee.itb.ac.id/~suksmono/Lectures/ec4041/ppt/PC2.%20Persepsi%20Cit ra%20dan%20Warna.pdf/ diakses 4 Agustus 2010 pkl 06.30 WIB).
[10]
Sutoyo, Edy Mulyanto, dkk. 2009. Teori Pengolahan Citra Digital. Yogyakarta: ANDI OFFSET.