LANDASAN TEORI
Digital image processing adalah istilah untuk memproses gambar (picture) dua
Segala proses yang digunakan untuk mengolah suatu gambar dikenal dengan
image processing. Ada pun istilah pengolahan gambar menurut Ahmad (2005, p4),
image processing atau pengolahan gambar adalah bidang tersendiri yang sudah cukup
berkembang sejak orang mengerti bahwa komputer tidak hanya dapat menangani data
teks, tetapi juga data gambar. Bidang-bidang yang termasuk dalam image processing
meliputi penajaman gambar, penonjolan fitur tertentu dari suatu gambar, komponen
gambar dan koneksi gambar yang tidak fokus atau kabur, pewarnaan pada gambar
Menurut Pressman (1992, p24), rekayasa piranti lunak mencakup tiga elemen
yang mampu mengontrol proses pengembagan piranti lunak, yaitu sebagai berikut.
a. Methods
b. Tools
5
6
c. Procedures
Dalam skripsi ini digunakan perancangan software dengan model Classic Life
a. Rekayasa dan analisis sistem. Proses menganalisis kebutuhan secara umum yang
pada spesialisasi software. Semua kebutuhan baik sistem mau pun software harus
c. Perancangan. Pada tahap ini, ada tiga hal yang harus difokuskan dalam program,
yaitu struktur data, arsitektur software, dan prosedur detil. Di tahap proses ini,
kebutuhan dituangkan menjadi software yang layak dari segi kualitas, sebelum
Dalam skripsi ini, algoritma yang digunakan untuk mewarnai gambar grayscale
adalah Algoritma Image Matching, seperti terlihat pada Gambar 2.1. Mewarnai gambar
grayscale dapat dilakukan dengan berbagai cara, salah satu di antaranya adalah dengan
Sumber: http://www.FreeFoto.com/
Gambar 2.1 Contoh Pentransferan Warna dengan Algoritma Image Matching
dapat dilakukan dengan mencocokkan tingkat kecerahan dan informasi tekstur di antara
kedua gambar. Hal ini dapat dilakukan dengan beberapa langkah sebagai berikut (Welsh,
2002, pp277-280).
Dua gambar yang telah diinput oleh user, yaitu sebuah gambar berwarna dan
sebuah gambar grayscale, harus diubah ke lαβ color space terlebih dahulu. Proses
(luminance) yang dapat mempermudah proses pencocokan pixel gambar, dan juga
komponen α dan β yang dapat ditransfer dari gambar warna ke gambar grayscale
RGB color space, maka proses yang perlu dilakukan adalah mengubah RGB color space
menjadi lαβ color space. Proses konversi dari RGB ke lαβ ini dibagi menjadi dua
a. Mengkonversi RGB (Red, Green, Blue) ke LMS (Long Middle Short wavelengths).
Konversi RGB ke lαβ melalui tahap konversi RGB ke LMS karena RGB merupakan
transformasi dari LMS. LMS yaitu long wavelength (L), middle wavelength (M), dan
short wavelength (S), merupakan salah satu cara untuk merepresentasikan warna
⎡ 1 ⎤
⎢ 0 0 ⎥
⎡l⎤ ⎢ 3 ⎥ ⎡1 1 1 ⎤⎡L⎤
⎢α ⎥ = ⎢ 1 ⎢1 1 − 2⎥ ⎢ M ⎥
⎢ ⎥ ⎢ 0 0 ⎥ ⎢ ⎥⎢ ⎥ (2.2)
6 ⎥
⎢⎣ β ⎥⎦ ⎢ 1 ⎥ ⎢⎣1 − 1 0 ⎥⎦ ⎢⎣ S ⎥⎦
⎢ 0 0 ⎥
⎣ 2⎦
Setiap pixel pada gambar grayscale harus dicocokkan dengan pixel pada gambar
warna, untuk mentransfer nilai kromatik (komponen α dan β ) dari gambar warna ke
Tingkat kecerahan kedua gambar seringkali berbeda jauh. Oleh karena itu, perlu
kecerahan gambar warna agar sesuai dengan histogram tingkat kecerahan gambar
spesifikasi histogram.
pixel gambar warna dengan pixel gambar grayscale. Proses ini meliputi dua tahap,
sebagai berikut.
a. Memasukkan jumlah sampel gambar warna serta ukuran panjang dan lebar masing-
masing sampel pixel yang diinputkan oleh user, untuk diikutkan dalam perhitungan
statistika.
ini dilakukan dengan menghitung rata-rata dan simpangan baku di sekeliling pixel
grayscale yang telah diinputkan oleh user. Proses pencocokan pixel dilakukan dengan
cara menghitung rata-rata dan simpangan baku tingkat kecerahan pixel di sekelilingnya.
Dengan menganggap rata-rata (μ) dan simpangan baku (σ) tersebut sebagai koordinat,
10
maka pixel gambar warna yang paling cocok adalah pixel yang memiliki jarak terpendek
(d) dengan pixel pada gambar grayscale. Rumus yang digunakan adalah:
(μ1, σ1)
Tahap perhitungan statistika dan pencocokan pixel biasa disebut dengan texture
synthesis dengan sampling local models, yaitu mencari tekstur yang sama pada dua
gambar yang berbeda dengan menghitung selisih (perbedaan distribusi) sekeliling kedua
pixel yang dibandingkan. Selisih ini bernilai kecil jika kedua pixel yang dibandingkan
mirip, dan bernilai besar jika keduanya berbeda jauh. Sedangkan yang digunakan dalam
proses pencocokan pixel adalah selisih (perbedaan distribusi) yang bernilai kecil.
cocok. Nilai kromatik α dan β dipindahkan ke pixel target pada gambar grayscale,
mempunyai warna dalam lαβ color space harus diubah kembali ke RGB color space
untuk ditampilkan. Tahap ini meliputi dua proses (Reinhard, 2001, pp34-41), sebagai
berikut.
11
⎡ 3 ⎤
⎢1 1 1 0 0 ⎥
⎡L⎤ ⎢ 3 ⎥ ⎡l ⎤
⎢ M ⎥ = ⎢1 1 0 6 ⎢α ⎥
⎢ ⎥ ⎢ 0 0 ⎥ ⎢ ⎥ (2.4)
6 ⎥
⎣⎢ S ⎦⎥ ⎢ 2 ⎥⎥ ⎣⎢ β ⎦⎥
⎢1 − 2 0 0 0
⎢⎣ 2 ⎥⎦
disebut color space. Ada dua jenis color space yang sering digunakan dalam aplikasi
Linear Color Spaces menyatakan bahwa suatu warna itu terdiri dari tiga warna
utama cahaya atau tiga macam panjang gelombang, yaitu LMS (Long, Middle, Short).
mengubah komposisi ketiga warna utama tadi. Dengan menggunakan algoritma ini,
terdapat beberapa standar color spaces yang menerapkan cara-cara yang berbeda untuk
CIE XYZ merupakan salah satu standar yang cukup terkenal, tetapi sudah kuno.
Kelemahan color space ini adalah sulitnya untuk mengatur brightness (Loy, 2002,
pp1-28).
nilai X, Y, Z. Ketiga nilai ini selalu bernilai positif, dan diubah menjadi nilai RGB
Sebagian besar spektrum yang terlihat oleh mata manusia, dapat direpresentasikan
dengan menggabungkan warna cahaya merah, hijau, dan biru (RGB) dalam intensitas
dan perbandingan yang beragam. Namun, tidak semua warna yang terlihat manusia
dapat direpresentasikan dengan kombinasi ketiga nilai warna ini (Loy, 2002, pp1-
28).
Perpotongan ketiga warna tersebut menghasilkan warna cyan, magenta, kuning, dan
putih. Karena warna RGB dapat dikombinasikan untuk menghasilkan warna putih,
CMYK Color Space dibuat berdasarkan kualitas penyerapan cahaya dari tinta yang
dicetak pada kertas. Ketika seberkas cahaya putih mengenai tinta, beberapa
manusia.
Berdasarkan teori, kombinasi warna cyan (C), magenta (M), dan kuning (Y) yang
murni, akan menyerap semua cahaya dan menghasilkan warna hitam. Karena itulah,
menyajikan warna tertentu, tidak terlalu sulit bagi manusia untuk membayangkannya.
Saat ini, ada beberapa standar yang menggunakan non-linear color spaces untuk
HSV color space merupakan bentuk transformasi non linier dari RGB color space,
yaitu:
⎛ 3 ⎞
S = 1 − ⎜⎜ ⎟⎟ * a , di mana a adalah nilai minimum dari RGB (2.7)
⎝ (R + G + B ) ⎠
⎛ 0,5 * (R − G ) + (R − B ) ⎞
0.5
H = cos ⎜⎜
−1
⎟
⎟
⎝ (R − G ) + (R − B ) * (G − B ) ⎠
2
CIE LAB terdiri dari komponen L (luminance atau tingkat kecerahan) dan dua
komponen warna, yaitu komponen A (hijau sampai merah) dan komponen B (biru
sampai kuning).
Koordinat dari warna CIE LAB diperoleh dari perhitungan koordinat warna non-
1/ 3
⎛Y ⎞ Y
L * = 116 * ⎜ ⎟ - 16. jika > 0.008856
⎝ Yn ⎠ Yn
Y
Atau jika tidak: L * = 903.3 *
Yn
X Y
a* = 500 * (f ( )–f( ))
Xn Yn
Y Z
b* = 200 * (f ( )–f( )) (2.8)
Yn Zn
16
atau jika tidak: f (t ) = 7.787 * t +
116
Keterangan: Xn, Yn, dan Zn adalah nilai X, Y, Z untuk tingkat kecerahan yang
X Y Z
digunakan untuk contoh X, Y, Z. Nilai (konstanta) dari , , adalah lebih
Xn Yn Zn
Gambar Bitmap sering disebut juga dengan gambar raster. Gambar Bitmap
adalah gambar yang terbentuk dari pixel, dengan setiap pixelnya mempunyai warna
tertentu. Jika gambar bitmap ini diperbesar, misalnya menjadi 4 kalinya, maka gambar
akan menjadi kabur karena pixelnya juga bertambah besar menjadi 4 kalinya (kualitas
gambar menurun). Format gambar bitmap sering dipakai dalam foto dan gambar. Dua
istilah yang perlu dipahami ketika bekerja dengan gambar bitmap adalah resolusi dan
kedalaman warna.
16
Setiap kotak kecil (pixel) mempunyai nilai (kecerahan atau warna) dan lokasi
masing-masing (Kay dan Levine, 1995, pp1-5). Setiap pixel yang ditampilkan pada layar
monitor, dipetakan sebagai salah satu atau lebih bit dalam memori komputer. Karena itu,
gambar yang ditampilkan dengan cara ini disebut sebagai bitmap yang artinya peta bit.
Cara ini sering digunakan karena lebih mudah digunakan, tanpa batas, dan dapat berlaku
secara rinci dengan pola-pola yang kompleks atau gambar fotorealistik, yang tidak dapat
dengan mudah direpresentasikan sebagai model matematika (garis, kurva, dan bidang).
Gambar yang bertipe bitmap tersusun dari pixel-pixel. Pixel disebut juga dengan
dot. Pixel berbentuk bujur sangkar dengan ukuran relatif kecil yang merupakan
Banyaknya pixel tiap satuan luas tergantung pada resolusi yang digunakan.
Keanekaragaman warna pixel tergantung pada bit depth (kedalaman warna) yang
dipakai. Semakin banyak jumlah pixel tiap satu satuan luas, semakin baik kualitas
gambar yang dihasilkan dan tentu akan semakin besar ukuran filenya.
Struktur file BMP terdiri dari empat bagian seperti pada diagram di bawah ini.
Bagian pertama adalah header, diikuti dengan bagian informasi, palet warna, dan data
pixel.
17
Header file
Info Header
Optional Pallet
Image Data
Sumber: http://astronomy.swin.edu.au/~pbourke/dataformats/BMP/
Gambar 2.4 Struktur File BMP
Berikut ini akan dibahas secara singkat masing-masing bagian struktur yang
terdapat pada sebuah file BMP (Kay dan Levine, 1995, pp1-5).
Fungsi utama dari header pada file BMP adalah sebagai tanda/ciri yang
mengidentifikasi format file tersebut. Header pada file BMP mempunyai beberapa field
yang jarang digunakan. Hal ini dapat dilihat pada Tabel 2.1.
byte. Beberapa field penting yang terdapat pada informasi BMP, yaitu panjang dan lebar,
jumlah bit per pixel, dan jenis kompresi, seperti terlihat pada Tabel 2.2.
Gambar yang menggunakan 1, 4, atau 8 bits per pixel pasti mempunyai palet
warna. Pada umumnya palet berisi 2, 16, atau 256 macam warna, tetapi dapat lebih
sedikit jika gambar yang bersangkutan tidak menggunakan semua warna yang tersedia.
Untuk gambar 24 bit, tidak digunakan palet warna, melainkan langsung ditampilkan
nilai RGB (Red, Green, Blue). Masing-masing warna dalam palet memiliki ukuran
Data pixel terletak setelah palet warna jika ada. Jika tidak, data pixel terletak
setelah informasi BMP. Untuk mengetahui awal (offset) letak data pixel, digunakan
BfOffBits pada Header BMP. Baris pixel untuk beberapa file BMP dengan jumlah bit
Setiap pixel berukuran 1 bit, dan dikemas dalam ukuran 1 byte yang berisi 8 data
Dalam gambar yang tidak terkompresi, setiap byte berisi 2 data pixel. Masing-
masing data pixel mengacu pada palet warna yang berisi 16 warna.
Setiap pixel dalam baris mempunyai sebuah nilai sebesar 1 byte, yaitu indeks pada
Setiap pixel mempunyai sebuah nilai integer sebesar 2 byte. Jika gambar tidak
terkompresi, maka setiap warna disajikan dalam nilai 5 bit, dimana bit paling kiri
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Red Blue Green
Setiap pixel berukuran 3 byte, terdiri dari urutan warna biru, hijau, merah.
Setiap pixel mempunyai nilai integer sebesar 4 byte, terdiri dari urutan warna biru,
Histogram merupakan alat yang berguna untuk melihat profil intensitas dari
suatu citra. Histogram memberikan gambaran tentang komposisi citra, informasi tentang
intensitas pixel ditempatkan pada sumbu x, dan banyak setiap intensitas pixel
Suatu citra yang gelap akan memiliki distribusi pixel di sebelah kiri lebih banyak.
Sedangkan citra yang cerah memiliki distribusi pixel di sebelah kanan lebih banyak.
Pada citra yang ideal, distribusi pixel akan merata pada setiap nilai intensitas histogram.
untuk setiap intensitas pixel-nya (Gose, 1996, pp275-282). Dengan demikian, dihasilkan
citra baru yang memiliki histogram yang lebih terdistribusi, yaitu frekuensi setiap
Gambar 2.8, proses ini hanya akan mendistribusikan ulang distribusi intensitas pixel
citra yang bersangkutan. Jika histogram citra memiliki banyak bukit dan lembah, maka
setelah proses perataan histogram, histogram tersebut akan tetap memiliki banyak bukit
21
dan lembah, tetapi bukit dan lembah tersebut akan bergeser. Karena itu, perataan
(a) (b)
Perataan histogram dapat dilakukan melalui ketiga tahap di bawah ini (Crane,
1997, pp47-49).
a. Membuat histogram
Langkah pertama ini dilakukan dengan menghitung jumlah (frekuensi) setiap nilai
pixel dalam citra. Pembuatan histogram ini diawali dengan persiapan sebuah array
yang berisi nol. Sebuah citra yang memiliki jumlah warna sebanyak 8 bit
dilanjutkan dengan mengisi array tersebut dengan jumlah masing-masing nilai pixel
pada citra.
Langkah kedua ini membutuhkan sebuah array baru untuk menyimpan jumlah
komulatif dari setiap nilai pixel. Pada array ini, elemen 1 berisi jumlah elemen 0 dan
elemen 255 berisi jumlah elemen 0, elemen 1, dan seterusnya sampai dengan elemen
255. Array ini kemudian dinormalisasi dengan mengalikan setiap elemen dengan
22
pixel maksimal dibagi dengan jumlah keseluruhan pixel. Hasil yang diperoleh dari
nilai pixel. Misalkan sebuah gambar 8 bit dengan resolusi 512x512, berarti setiap
Citra lama diperbaharui dengan mengganti nilai pixel lama dengan hasil pembulatan
kadang, histogram yang tidak merata itu tidak sesuai dengan keinginan. Misalnya, ketika
diperlukan citra yang lebih cerah atau pun citra yang lebih gelap, atau ketika diperlukan
citra yang lebih kontras. Semua modifikasi ini dapat dilakukan melalui spesifikasi
histogram.
kecerahan suatu citra yang diinputkan, sehingga tingkat kecerahan citra tersebut menjadi
sesuai dengan tingkat kecerahan histogram yang juga diinputkan oleh user (Crane, 1997,
pp49-54).
b. Melakukan perataan histogram terhadap histogram yang juga diinput oleh user.
c. Melakukan kebalikan dari transformasi perataan histogram terhadap citra yang telah
diratakan. Proses ini dilakukan dengan mengganti setiap nilai hasil perataan
23
histogram citra dengan nilai terdekat yang diperoleh dari hasil perataan histogram
yang diinputkan.
Dalam Statistika, salah satu konsep paling dasar adalah penarikan sampel
(sampling). Sampel diambil dari suatu kelompok yang lebih besar, yang disebut
populasi. Populasi sering disebut sebagai himpunan keseluruhan objek yang diselidiki,
dari suatu populasi disebut parameter. Sedangkan suatu harga yang dihitung dari sampel
dinamakan statistika.
Operasi statistika yang sering dipakai dalam aplikasi yang melibatkan gambar,
gambar tersebut (Gose, 1996, pp271-273). Jika terdapat suatu gambar dengan ukuran M
x N pixel dan nilai pixel g, maka rata-rata nilai pixel gambar tersebut dapat diketahui
1 M N
μ= ∑ ∑ g ( x, y ) (2.9)
MN x=1 y =1
Kontras suatu gambar dapat diketahui melalui besarnya variasi nilai kelabu pixel
gambar tersebut (Gose, 1996, pp271-273). Salah satu cara untuk mengetahui besarnya
variasi ini adalah dengan menghitung akar dari jumlah kuadrat selisih nilai kelabu pixel
yang bersangkutan dengan rata-ratanya. Bilangan ini biasa dikenal dengan istilah
simpangan baku.
1 M N
∑ ∑ ( g ( x, y ) − μ )
2
σ= (2.10)
MN − 1 x=1 y =1
Keterangan:
dalam membuat dan membandingkan alternatif desain. Ada tiga prinsip yang terdapat
a. Kenali perbedaan
DFD adalah alat bantu dalam melakukan analisis sistem. DFD terdiri dari
berikut.
26
a. Proses
memiliki satu atau lebih data masukan dan memiliki satu atau lebih
data keluaran.
b. Data store
Data store adalah tempat menyimpan data, di mana berisi data yang
c Eksternal entitas
Diagram aliran data dapat dibagi menjadi tiga tingkatan, sebagai berikut.
dalam sistem.
3) Diagram rinci, merupakan penjelasan dari setiap proses secara mendetil, yang
terdapat dalam diagram nol, yang tidak dapat dipecah lagi ke dalam proses-