BAB II DASAR TEORI Pada bab ini akan dibahas teori yang berkaitan dengan skripsi ini, meliputi pustaka OpenCV, citra, yaitu citra grayscale dan citra berwarna, pengolahan citra meliputi image enhancement dan image restoration, serta pengujian pedoman praktikum meliputi kuisioner dan skala Likert.
2.1. Pustaka OpenCV Open Source Computer Vision (OpenCV) adalah sebuah pustaka yang dikembangkan oleh Intel dengan berbasis bahasa pemrograman C/C++ [5]. Pustaka OpenCV bersifat open source [4] (terbuka) artinya, semua orang dapat mengakses dan melakukan modifikasi atau penyesuaian terhadap sistem di dalamnya sesuai dengan kebutuhan. Pustaka ini dapat diunduh di situs resmi OpenCV, www.opencv.org. Pustaka OpenCV diaplikasikan dengan menggunakan sebuah compiler di dalam sebuah Operating System (OS). Saat ini pustaka OpenCV dapat digunakan di dalam berbagai OS seperti Windows, Linux, dan Android [6]. Dalam pedoman praktikum ini akan dibahas dengan OS Windows XP yang dijalankan menggunakan compiler Microsoft Visual Studio C++ 2010 Ultimate. Berdasarkan dokumentasinya, pustaka OpenCV tersusun oleh pustaka CV, CXCORE, Machine Learning (ML), CVCam, Haartraining, dan HighGui [6].
CV Dokumentasi CV berisi pengolahan citra, analisis struktur citra, motion dan tracking, pengenalan pola, dan kalibrasi kamera.
CXCORE Dokumentasi CXCORE berisi struktur data, aljabar matriks, transformasi data, object persistence, pengaturan memori, penanganan error, dan image code dynamic loading.
ML (Machine Learning) Dokumentasi ML berisi pengelompokan, klasifikasi, dan fungsi analisis. 5
HighGui Dokumentasi HighGui berisi antarmuka pengguna GUI, penyimpanan citra atau video dan pemanggilan ulang suatu data.
CVCam Dokumentasi CVCam berisi antar muka kamera.
Haartraining Dokumentasi Haartraining berisi pelatihan untuk object detector boosted cascade.
Berdasarkan strukturnya, pustaka OpenCV terstruktur dari 5 komponen yaitu CV, ML, HighGui, CXCORE dan CVAux [6]. Bagan strukturnya dapat dilihat pada Gambar 2.1 di bawah ini. Pada bagan di Gambar 2.1 tidak terdapat komponen CVAux. Hal itu karena CVAux merupakan komponen yang berisi daerah-daerah tertutup dan algoritma-algoritma eksperimen.
CV
ML
HIGHGUI
Image Processing and Vision Algorithms
Statistical Classifiers and Clustering Tools
GUI Image And Video I/O
CXCORE Basic Structures and Algorithms, XML Support, and Drawing Function Gambar 2.1. Struktur OpenCV. Menurut Bradsky dan Kaehler dalam bukunya “Learning OpenCV Computer Vision with OpenCV Library”, berdasarkan struktur dan dokumentasinya OpenCV terdiri dari pustaka-pustaka berisi fungsi-fungsi, pustaka-pustaka tersebut adalah :
6
Opencv_core
: pustaka ini berisi fungsi-fungsi inti dari pustaka OpenCV, beberapa bagian struktur data dasar dan fungsi aritmatika.
Opencv_imgproc
: pustaka ini berisi fungsi-fungsi utama pengolahan citra.
Opencv_highgui
: pustaka ini berisi fungsi-fungsi untuk membaca dan menulis serta menampilkan citra atau video dalam fungsi antarmuka dengan pengguna lain.
Opencv_features2d
: pustaka ini berisi fungsi-fungsi detektor dan deskripsi fitur titik serta kerangka (framework) matching feature.
Opencv_calib3d
: pustaka ini berisi fungsi-fungsi kalibrasi kamera, dan estimasi geometri dua background.
Opencv_video
: pustaka ini berisi fungsi-fungsi estimasi gerak, pelacakan fitur, dan pelacakan kelas dan latar depan.
Opencv_objdetect
: pustaka ini berisi fungsi-fungsi deteksi objek, seperti deteksi wajah dan orang.
Selain modul-modul di atas, pustaka OpenCV juga memiliki modul-modul lain, yaitu yang berisi fungsi-fungsi machine learning (opencv_ml), algoritma geometri komputasi (opencv_flann), kontribusi kode (opencv_contrib), absolete code (opencv_legacy), dan accelerated GPU code (opencv_gpu). Semua modul di OpenCV ini memiliki file header yang terletak di directory include.
2.2. Citra Citra merupakan kuantisasi nilai-nilai grayscale yang direpresentasikan pada sebuah matriks atau array, dimana tiap nilai baris maupun kolom dari array, tersebut merupakan koordinat dari tiap piksel [7] dengan kata lain tiap titik atau piksel dari sebuah citra direpresentasikan oleh tiap nilai dari tiap array dengan baris dan kolom tertentu suatu citra dengan resolusi 256 × 256 piksel akan direpresentasikan ke dalam sebuah matriks atau array dengan jumlah 256 baris dan 256 kolom. Representasi matriks tersebut dapat dilihat pada Gambar 2.2.
7
Gambar 2.2. Representasi Citra [7].
2.2.1. Citra Grayscale Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu yang merupakan variasi dari warna hitam untuk bagian dengan intensitas terlemah dan warna putih pada intensitas terkuat [8]. Citra grayscale berbeda dengan citra hitam-putih, dimana citra hitam putih hanya terdiri atas 2 warna saja yaitu hitam dan putih saja. Citra grayscale disimpan dalam format 8 bit untuk setiap sampel piksel, yang memungkinkan sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manipulasi bit yang dimilikinya tidak terlalu banyak [8]. Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing R, G, dan B menjadi citra grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G, dan B. Persamaan (1) merupakan persamaan untuk merepresentasikan hal tersebut. X = (R + G + B) / 3
(1)
2.2.2. Citra Berwarna Citra merupakan suatu representasi, kemiripan atau imitasi dari suatu objek atau benda. Citra dalam komputer berupa sekumpulan piksel dimana setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green, dan blue. Triplet terdiri dari 3 angka yang mengatur intensitas dari red (R), green (G), dan blue (B). Suatu triplet dengan nilai 67, 228, dan 180 berarti mengeset nilai R ke nilai 67, G ke nilai 228, dan B ke nilai 180. Angka-angka RGB ini yang seringkali disebut dengan color values. Pada format
8
.bmp citra setiap piksel direpresentasikan dengan 24 bit, yaitu 8 bit untuk R, 8 bit untuk G, dan 8 bit untuk B [8].
2.3. Pengolahan Citra Digital 2.3.1. Image Enhancement Image Enhancement adalah proses peningkatan mutu citra yang bertujuan untuk memperoleh citra yang dapat memberikan informasi sesuai dengan tujuan atau kepentingan pengolahan citra. Proses peningkatan mutu citra ini termasuk memperbaiki citra yang mengalami gangguan signifikan seperti noise, gangguan geometris, radiometrik dan beberapa gangguan faktor alam lainnya [9]. Suatu metode pendekatan peningkatan mutu citra yang terbaik untuk satu implementasi belum tentu baik untuk implementasi lainnya, sebab karakteristik citra dapat saling berbeda menunjukkan proses peningkatan citra. Secara umum domain dalam pengingkatan mutu citra ini dapat dilakukan secara spasial (spatial filtering) dan frekuensi (frequency domain). Spatial filtering dilakukan dengan memanipulasi nilai piksel secara langsung yang dipengaruhi oleh nilai piksel lainnya secara spasial sedangkan frequency domain berdasarkan frekuensi spektrum citra. Terdapat beberapa teknik peningkatan mutu citra yang merupakan kombinasi dari dua kategori ini. Peningkatan mutu citra dapat dikaitkan dengan metode Filtering, dimana citra tersebut di-filter untuk mendapatkan citra yang lebih baik.
2.3.2. Image Restoration Image restoration adalah pengolahan citra yang bertujuan untuk meningkatkan kualitas atau mengembalikan kualitas citra [10]. Secara umum perbedaan antara image enhancement dengan image restoration ialah pada image enhancement merupakan proses pengolahan peningkatan kualitas citra dimana penilaian terhadap suatu citra sangat subyektif atau ditentukan oleh penilaian manusia. Sedangkan pada image restoration penilaian sangat obyektif yaitu berdasarkan penentuan standar umum matematis (signal to noise). Proses image restoration ialah dengan dilakukan pemodelan degradasi dan melakukan inverse dari model degradasi terhadap citra sehingga di dapat citra asli. Proses tersebut dapat dilihat dalam bagan pada gambar di bawah ini [10].
9
Degradation Function H
Restoration Filter (s)
+
̂
Noise
Degradation
Restoration
Gambar 2.3. Bagan proses restorasi [7].
= citra sebelum terdegradasi = citra terdegradasi = noise ̂
= citra hasil restorasi
2.4. Pengujian Pedoman Praktikum 2.4.1. Kuisioner Kuisioner adalah sebuah media yang digunakan untuk memperoleh data dalam sebuah penelitian [11]. Kuisioner ini berupa pernyataan-pernyataan yang diberikan kepada responden, dalam hal ini adalah mahasiswa. Tujuannya adalah untuk mengukur sejauh mana pedoman praktikum yang dibuat dapat membantu mahasiswa untuk memahami materi yang diajarkan dalam perkuliahan, kesesuaian pedoman praktikum dengan materi dalam perkuliahan, kesesuaian pedoman terhadap tugas-tugas yang diberikan, dan sejauh mana pedoman praktikum yang telah disusun dapat dipahami oleh mahasiswa.
2.4.2. Skala Likert Kuisioner ini menggunakan skala Likert, yaitu suatu sistem penskalaan untuk menghitung respon dari suatu responden. Sistem ini biasanya diskalakan dengan 5 pilihan, yaitu : sangat setuju, setuju, netral, tidak setuju, dan sangat tidak setuju. Namun bisa juga diskalakan menjadi 4 pilihan saja, yaitu : sangat setuju, setuju, tidak setuju, dan sangat tidak setuju. Kuisioner ini akan dibuat akan dengan menggunakan skala Likert yang diskalakan menjadi 4 pilihan.
10