Pengenalan Dasar Citra Digital
Pengenalan Dasar Citra Digital
Pengenalan Dasar
Citra
12
2.1 Representasi Citra Digital
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau
picture element).Setiap piksel digambarkan sebagai satu kotak kecil.Setiap
piksel mempunyai koordinat posisi.Sistem koordinat yang dipakai untuk
menyatakan citra digital ditunjukkan pada Gambar 2.1.
N-1
x
y
M-1
13
piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok
kanan-bawah mempunyai koordinat (N-1, M-1).
Catatan
Dalam praktik, penggunaan koordinat pada sistem tertentu
mempunyai sedikit perbedaan. Misalnya, pada OctavedanMATLAB,
piksel pojok kanan-atas tidak mempunyai koordinat (0, 0)
melainkan (1, 1). Selain itu, setiap piksel pada OctavedanMATLAB
diakses melalui notasi (baris, kolom). Mengingat buku ini
menggunakan contoh dengan Octave dan MATLAB, maka notasi
yang digunakan disesuaikan dengan Octave dan MATLAB. Sebagai
contoh, koordinat piksel akan ditulis dengan (y, x) dan koordinat
pojok kanan-atas akan dinyatakan dengan (1, 1).
f(2,1) bernilai 6
Pada citra berskala keabuan, nilai seperti 6 atau 237 dinamakan sebagai intensitas.
14
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
89
89
89
89
89
6
6
89
89
89
89
6
237
237
237
237
237
6
6
237
237
237
237
6
6 6 89 237 237 237
237 237
6
6 89 237 237
237 237 237
6
6 89 237
237 237 237
6
6 89 237
237 237 237
6
6 89 237
237 237
6
6 89 237 237
6
6
6 89 237 237 237
6
6 89 237 237 237 237
237
6
6 89 237 237 237
237 237
6
6 89 237 237
237 237 237
6
6 89 237
237 237 237 237
6
6 89
237
237
237
237
237
237
237
237
237
237
237
237
f(2,1) = 6
1
10
11
12
1
2
3
4
5
6
89 237 237
89 237 237
89 237 237
7
8
9
10
11
89 237 237
12
237
f(4,7) = 237
Gambar 2.3 Notasi piksel dalam citra
15
16
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
17
jumlah gradasi juga bisa dinyatakan dalam jumlah digit biner atau bit 0 dan 1
sebagai sandi digital per piksel.
Piksel
Jangkauan Penggunaan
0-1
Citra
biner:
dokumen
faksimili
8
0-255
Umum:
foto
dan
hasil
pemindai
12
0-4095
14
0-16383
Kualitas
profesional:
foto
0-65535
Kualitas
tertinggi:
citra
Jangkauan Penggunaan
Warna
Piksel
24
0-1
RGB umum
36
0-4095
42
0-16383
32
0-255
18
(a) 8 bit
(b) 5 bit
(c) 4 bit
(d) 3 bit
(e) 2 bit
(f) 1 bit
mendasari gagasan pemampatan data citra, mengingat citra dengan jumlah bit
lebih rendah tentu akan membutuhkan tempat dan transmisi yang lebih hemat.
2.3 Kualitas Citra
Di samping cacah intensitas kecerahan, jumlah piksel yang digunakan untuk
menyusun suatu citra mempengaruhi kualitas citra. Istilah resolusi citra biasa
dinyatakan jumlah piksel pada arah lebar dan tinggi. Resolusi piksel biasa
dinyatakan dengan notasi m x n, dengan m menyatakan tinggi dan n menyatakan
19
lebar dalam jumlah piksel. Contoh pada Gambar 2.5 menunjukkan bahwa kalau
gambar apel hanya dinyatakan dalam 8 x 8 piksel, citra yang terbentuk sangat
berbeda dengan aslinya. Seandainya jumlah piksel yang digunakan lebih banyak,
tentu akan lebih mendekati dengan gambar aslinya. Contoh pada Gambar 2.6
memperlihatkan efek resolusi piksel untuk menampilkan gambar yang sama.
20
Resolusi spasial ditentukan oleh jumlah piksel per satuan panjang. Istilah
seperti dpi (dot per inch) menyatakan jumlah piksel per inci. Misalnya, citra 300
dpi menyatakan bahwa citra akan dicetak dengan jumlah piksel sebanyak 300
sepanjang satu inci. Berdasarkan hal itu, maka citra dengan resolusi ruang spasial
sebesar 300 dpi dicetak di kertas dengan ukuran lebih kecil daripada yang
mempunyai resolusi ruang sebesar 150 dpi, meskipun kedua gambar memiliki
resolusi piksel yang sama.
2.4 Membaca Citra
Untuk kepentingan memudahkan dalam memahami hasil proses pengolahan
citra, Anda perlu mengenal perintah yang berguna untuk membaca citra yang
tersimpan dalam bentuk file. Octave menyediakan fungsi bernama imread.
Bentuk pemanggilannya:
Img = imread(nama_file_citra)
Dalam hal ini, nama_file_citramenyatakan namafile citra yang hendak dibaca dan
Img menyatakan larik (array) yang menampung data citra yang dibaca.Perlu
diketahui, format-format gambar yang bisa dibaca oleh imread ditunjukkan pada
Tabel 2.3.
Ekstensi
Keterangan
.tif, .tiff
Tagged
Gambar
TIFF
Image
File
Format
dan
terakhir
oleh
Adobe.
JPEG
.jpg, .jpeg
Joint
Photographics
Expert
agar
bisa
Format
21
Ekstensi
Keterangan
Gambar
1:16.
GIF
.gif
Graphics
Interface
merupakan
Format
format
yang
.bmp
Windows
Bitmap
merupakan
.png
ping.
Asal
mulanya
GIF
penerapan
Mendukung
karena
adanya
lisensi
GIF.
pemampatan
data
Catatan
.xwd
XWindow Dump
22
>>Img = imread(C:\Image\mandrill.png);
>>
Catatan
>>Ukuran = size(Img)
Ukuran =
512
512
>>
Dengan cara seperti itu, terlihat bahwa Imgberisi512 baris dan 512 kolom piksel.
Untuk mendapatkan jumlah baris dan jumlah kolom secara tersendiri, perlu
diberikan perintah seperti berikut:
23
Angka 1 dan 2 pada ukuran menyatakan indeks. Dengan cara seperti itu,
jum_baris berisi jumlah baris padalarikImg dan jum_kolom berisi jumlah
kolom pada larikImg.
Sebagai alternatif, dapat ditulis perintah seperti berikut:
Dengan cara seperti itu, jum_barisberisi jumlah baris pada larikImg dan
jum_kolom berisi jumlah kolom pada larikImg.
2.6 Menampilkan Citra
Citra dapat ditampilkan dengan mudah melalui fungsi imshow. Contoh
berikut digunakan untuk menampilkan citra yang terdapat di Img:
>>imshow(Img);
>>
Hasilnya berupa jendela yang menampilkan citra pada Img, seperti terlihat pada
Gambar 2.8.
24
Apabila dikehendaki untuk menampilkan dua citra di dua jendela masingmasing, fungsi figure perlu dipanggil terlebih dulu sebelum memanggil imshow.
Contoh:
Hasilnya,
gambar
sungai
ditampilkan
di
jendela
dan
gambar
25
26
Perintah close all digunakan untuk menutup semua jendela. Adapun pada
subplot, argumen pertama menyatakan jumlah baris citra dan argumen kedua
menyatakan jumlah kolom citra dalam jendela. Argumen ketiga menyatakan
indeks citra dalam jendela yang bernilai antara 1 sampai dengan jumlah baris x
jumlah kolom.
2.7 Mengenal Jenis Citra
Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra. Ketiga
jenis citra tersebut yaitu citra berwarna, citra berskala keabuan, dan citra biner.
2.7.1 Citra Berwarna
Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang
menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B (biru).
Setiap komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai
dengan 255). Dengan demikian, kemungkinan warna yang bisa disajikan
27
mencapai 255 x 255 x 255 atau 16.581.375 warna. Tabel 2.4 menunjukkan contoh
warna dan nilai R,G, dan B.
Merah
255
Hijau
255
Biru
255
Hitam
Putih
255
255
255
255
255
Kuning
Gambar 2.12 menunjukkan pemetaan warna dalam ruang tiga dimensi. Adapun
Gambar 2.13 menunjukkan keadaan suatu citra dan representasi warnanya.
255
Cyan
Biru
Magenta
Putih
255
0
Hitam
Hijau
255
Merah
Kuning
R
Gambar 2.12 Warna RGB dalam ruang berdimensi tiga
28
Catatan
Perlu diketahui, sebuah warna tidak hanya dinyatakan dengan
komposisi R, G, dan B tunggal. Pada Tabel 2.4 terlihat bahwa
warna merah mempunyai R=255, G=0, dan B=0. Namun,
komposisi R=254, G=1, B=1 juga berwarna merah.
>>size(Kota)
ans =
747
500
29
>>
1
2
M-1
3
Komponen B
2
1
1
N-1
Komponen G
Komponen R
>> R = Kota(:,:,1);
>> G = Kota(:,:,2);
>> B = Kota(:,:,3);
30
>>figure(1);
>>imshow(Kota);
31
antara 0 sampai dengan 255.Nilai 0 menyatakan hitam dan nilai 255 menyatakan
putih. Contoh citra berskala keabuan telah dibahas pada Subbab 2.5.
2.7.3 Citra Biner
Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah
nilai dari dua buah kemungkinan (yaitu nilai 0 dan 1). Nilai 0 menyatakan warna
hitam dan nilai 1 menyatakan warna putih. Citra jenis ini banyak dipakai dalam
pemrosesan citra, misalnya untuk kepentingan memperoleh tepi bentuk suatu
objek.Sebagai contoh, perhatikan Gambar 2.16. Bagian kiri menyatakan citra
beraras keabuan, sedangkan bagian kanan adalah hasil konversi ke citra biner.
>>Img = imread('c:\Image\daun_bin.png');
>>imshow(Img);
>>
32
+ + , +
= 1
(2.1)
33
R = 50
G = 70
B = 61
Jika a, b, dan c pada Persamaan 2.1 dibuat sama, akan diperoleh hasil seperti
berikut:
I = (50 + 70 + 60) / 3 = 60
Salah satu contoh rumus yang biasa dipakai untuk mengubah ke skala
keabuan yaitu:
= 0,2989 + 0,5870 + 0,1141
(2.2)
Contoh berikut menunjukkan cara melakukan konversi dari citra berwarna ke citra
biner.
>>Img = imread('C:\Image\innsbruckcity.png');
>> Abu=uint8(0.2989 * double(Img(:,:,1)) + ...
0.5870*double(Img(:,:,2)) + ...
0.1141 * double(Img(:,:,3)));
>>imshow(Abu);
Catatan
34
(2.3)
Program : kebiner.m
35
Img = imread('c:\Image\daun_gray.png');
[tinggi, lebar] = size(Img);
ambang = 210; % Nilai ini bisa diubah-ubah
biner = zeros(tinggi, lebar);
for baris=1 : tinggi
for kolom=1 : lebar
if Img(baris, kolom) >= ambang
Biner(baris, kolom) = 0;
else
Biner(baris, kolom) = 1;
end
end
end
imshow(Biner);
Akhir Program
Sebelum mencoba program di atas, akan dibahas dulu kode yang mendasari
program. Tanda % mengawali komentar.Semua tulisan dimulai dari tanda tersebut
hingga akhir baris tidak dianggap sebagai perintah, melainkan sebagai penjelas
bagi pembaca program. Kode
Img= imread('c:\Image\daun_gray.png');
size(Img);
digunakan untuk menentukan nilai ambang bagi penentuan konversi suatu piksel
menjadi 0 atau 1. Nilai ambang berkisar antara 0 sampai dengan 255.
Pernyataan
for baris=1 : tinggi
for kolom=1 : lebar
36
ifImg(baris, kolom) >= ambang
Biner(baris, kolom) = 0;
else
Biner(baris, kolom) = 1;
end
end
end
menangani penentuan nilai 0 atau 1 pada citra biner untuk semua piksel dalam
citra (ditangani dengan dua buah for). Penentuan dilakukan melalui pernyataan if.
Dalam hal ini,
Img(baris, kolom)
menyatakan nilai intensitas piksel pada (baris, kolom).
Setelah
for baris=1 : tinggi
berakhir, maka Biner berisi citra biner. Selanjutnya, citra ditampilkan melalui
imshow(Biner);
Untuk menjalankan program di depan, berikan perintah
>>kebiner;
Hasilnya seperti berikut.
37
38
Ambang = 210
Ambang = 160
Ambang = 130
Ambang = 110
Ambang = 100
Ambang = 70
Fungsi
39
im2bw(I, level)
im2bw(RGB, level)
rgb2gray(RGB)
Pada beberapa contoh yang akan dibahas pada bab-bab selanjutnya, dua fungsi
pada Tabel 2.5 akan digunakan dengan
>>Img= imread('C:\Image\daun_gray.png');
>> BW = im2bw(Img, 0.6);
>>imshow(BW);
40
41
>>Img = imread('C:\Image\daun_gray.png');
>>X = 255 Img;
>>imwrite(X, negatif_daun.png);
42
Perlu diketahui,
X = 255 Img;
Latihan
1. Jelaskan mengenai koordinat citra.
2. Apa yang dimaksud dengan kuantisasi citra?
3. Jelaskan hubungan jumlah bit dalam kuantisasi citra dengan kompresi
data.
4. Jelaskan makna kualitas citra.
5. Jelaskan pengertian :
a) citra berwarna
43