Anda di halaman 1dari 33

BAB 2

Pengenalan Dasar
Citra

Setelah bab ini berakhir, diharapkan pembaca memahami


hal-hal berikut beserta contoh penerapannya.
Representasi citra digital
Kuantisasi citra
Kualitas citra
Cara membaca citra
Cara mendapatkan ukuran citra
Cara menampilkan citra
Pemahaman jenis citra
Konversi jenis citra

Pengolahan Citra, Teori dan Aplikasi

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

Posisi sebuah piksel

y
M-1

Gambar 2.1Sistem koordinat citra berukuran MxN


(M baris dan N kolom)
Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV
standar itu, sebuah piksel mempunyai koordinat berupa
(x, y)
Dalam hal ini,

x menyatakan posisi kolom;

y menyatakan posisi baris;

Mengenal Dasar Citra

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).

Dengan menggunakan notasi pada Octave dan MATLAB, citra dinyatakan


dengan
f(y, x)
Sebagai contoh, citra yang berukuran 12x12 yang terdapat pada Gambar 2.2(a)
memiliki susunan data seperti terlihat pada Gambar 2.2(b). Adapun Gambar 2.3
menunjukkan contoh penotasian f(y,x). Berdasarkan gambar tersebut maka:

f(2,1) bernilai 6

f(4,7) bernilai 237

Pada citra berskala keabuan, nilai seperti 6 atau 237 dinamakan sebagai intensitas.

Pengolahan Citra, Teori dan Aplikasi

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

(a) Citra berukuran 12 x 12

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

(b) Data penyusun citra 12 x 12

Gambar 2.2Citra dan nilai penyusun piksel

f(2,1) = 6
1

10

11

12

1
2
3
4
5
6

89 237 237 237 237

89 237 237 237

89 237 237 237 237

89 237 237

89 237 237 237 237

89 237 237

89 237 237 237 237

89 237 237

89 237 237 237

89 237 237 237

7
8
9
10
11

89 237 237 237 237

89 237 237 237 237 237

89 237 237

89 237 237 237

89 237 237 237 237

12

89 237 237 237 237 237

89 237 237 237

89 237 237 237 237


89 237 237 237
89 237 237
6 89

237

f(4,7) = 237
Gambar 2.3 Notasi piksel dalam citra

Mengenal Dasar Citra

15

2.2 Kuantisasi Citra


Citra digital sesungguhnya dibentuk melalui pendekatan yang dinamakan
kuantisasi. Kuantisasi adalah prosedur yang dipakai untuk membuat suatu isyarat
yang bersifat kontinu ke dalam bentuk diskret. Untuk mempermudah pemahaman
konsep ini, lihatlah Gambar 2.4.Gambar 2.4 (a) menyatakan isyarat analog
menurut perjalanan waktu t, sedangkan Gambar 2.4 (b) menyatakan isyarat
diskret.

(a) Isyarat analog


(b) Isyarat diskret
Gambar 2.4 Perbandingan isyarat analog dan isyarat diskret
Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi
dalam sejumlah nilai bulat. Gambar 2.5(a) menunjukkan contoh citra biner dua
nilai intensitas berupa 0 (hitam) dan 1 (putih). Selanjutnya, gambar tersebut
ditumpangkan pada grid 8x8 seperti yang diperlihatkan pada Gambar 2.5 (b).
Bagian gambar yang jatuh pada kotak kecil dengan luas lebih kecil dibanding
warna putih latar belakang, seluruh isi kotak dibuat putih. Sebaliknya, jika
mayoritas hitam, isi kotak seluruhnya dibuat hitam. Hasil pengubahan ke citra
digital tampak pada Gambar 2.5(c). Adapun Gambar 2.5(d) memperlihatkan
bilangan yang mewakili warna hitam (0) dan putih (1). Dengan demikian, citra
digital akan lebih baik (lebih sesuai aslinya) apabila ukuran piksel diperkecil atau
jumlah piksel diperbanyak.

Pengolahan Citra, Teori dan Aplikasi

16

(a) Citra yang akan dinyatakan


dalam isyarat digital

(b) Citra ditumpangkan pada grid

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

(c) Hasil kuantisasi

(d) Representasi dalam bentuk


Gambar 2.5 Digitalisasi citraangka
biner 8x8 piksel

untuk memperlihatkan bentuk piksel ideal


Bagaimana halnya kalau gambar mengandung unsur warna (tidak sekadar
hitam dan putih)? Prinsipnya sama saja, tetapi sebagai pengecualian, warna hitam
diberikan tiga unsur warna dasar, yaitu merah (R = red), hijau (G = green), dan
biru (B = blue). Seperti halnya pada citra monokrom (hitam-putih) standar,
dengan variasi intensitas dari 0 hingga 255, pada citra berwarna terdapat
16.777.216 variasi warna apabila setiap komponen R, G, dan B mengandung 256
aras intensitas. Namun, kepekaan mata manusia untuk membedakan macam
warna sangat terbatas, yakni jauh di bawah enam belas juta lebih tersebut.
Untuk beberapa keperluan tertentu, jumlah gradasi intensitas saling berbeda.
Tabel 2.1 memberikan lima contoh untuk citra beraras keabuan dan Tabel 2.2
menunjukkan empat contoh penggunaan citra berwarna (RGB). Perhatikan bahwa

Mengenal Dasar Citra

17

jumlah gradasi juga bisa dinyatakan dalam jumlah digit biner atau bit 0 dan 1
sebagai sandi digital per piksel.

Tabel 2.1Jangkauan nilai pada citra keabuan


Komponen Bit per
warna

Piksel

Jangkauan Penggunaan

0-1

Citra

biner:

dokumen

faksimili
8

0-255

Umum:

foto

dan

hasil

pemindai
12

0-4095

Kualitas tinggi: foto dan


hasil pemindai

14

0-16383

Kualitas

profesional:

foto

dan hasil pemindai


16

0-65535

Kualitas

tertinggi:

citra

kedokteran dan astronomi

Tabel 2.2Jangkauan nilai pada citra berwarna


Komponen Bit per

Jangkauan Penggunaan

Warna

Piksel

24

0-1

RGB umum

36

0-4095

RGB kualitas tinggi

42

0-16383

RGB kualitas profesional

32

0-255

CMYK (cetakan digital)

Dalam pengolahan citra, kuantisasi aras intensitas menentukan kecermatan


hasilnya. Dalam praktik, jumlah aras intensitas piksel dapatdinyatakan
dengankurang dari 8 bit. Contoh pada Gambar 2.6 menunjukkan citra yang
dikuantisasi dengan menggunakan 8, 5, 4, 3, 2, dan 1 bit.

Pengolahan Citra, Teori dan Aplikasi

18

(a) 8 bit

(b) 5 bit

(c) 4 bit

(d) 3 bit

(e) 2 bit

(f) 1 bit

Gambar 2.6Kuantisasi citra dengan menggunakan berbagai bit


Pada kuantisasi dengan 1 bit, jumlah level sebanyak 2 (21).Oleh karena itu,
warna yang muncul berupa hitam dan putih saja. Perlu diketahui, penurunan
jumlah aras pada tingkat tertentu membuat mata manusia masih bisa menerima
citra dengan baik. Sebagai contoh, citra dengan 4 bit (Gambar 2.6(c)) dan citra
dengan 8 bit (Gambar 2.6(a))

praktis terlihat sama. Hal seperti itulah yang

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

Mengenal Dasar Citra

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.

(a) Citra berukuran 512 x 512


piksel

(c) Citra berukuran 128 x 128 piksel

(b) Citra berukuran 256 x 256


piksel

(d) Citra berukuran 64 x 64 piksel

Gambar 2.7 Efek resolusi berdasar jumlah piksel pada citra


ketika gambar disajikan dengan ukuran yang sama
Terlihat bahwa pada resolusi tertentu citra menjadi kabur kalau dinyatakan dengan
jumlah piksel yang makin sedikit.

Pengolahan Citra, Teori dan Aplikasi

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.

Tabel 2.3Daftar formatfile gambar yang bisa dibaca oleh imread


Format

Ekstensi

Keterangan

.tif, .tiff

Tagged

Gambar
TIFF

Image

File

Format

merupakan format citra yang


mula-mula dibuat boleh Aldus.
Kemudian, dikembangkan oleh
Microsoft

dan

terakhir

oleh

Adobe.
JPEG

.jpg, .jpeg

Joint

Photographics

Expert

Group adalah format citra yang


dirancang

agar

bisa

memampatkan data dengan rasio

Mengenal Dasar Citra

Format

21

Ekstensi

Keterangan

Gambar
1:16.
GIF

.gif

Graphics

Interface

merupakan

Format

format

yang

memungkinkan pemampatan data


hingga 50%. Cocok untuk citra
yang memiliki area yang cukup
besar dengan warna yang sama.
BMP

.bmp

Windows

Bitmap

merupakan

format bitmap pada Windows.


PNG

.png

Portable Network Graphics biasa


dibaca

ping.

Asal

mulanya

dikembangkan sebagai pengganti


format

GIF

penerapan
Mendukung

karena

adanya

lisensi

GIF.

pemampatan

data

tanpa menghilangkan informasi


aslinya.
XWD

Catatan

.xwd

XWindow Dump

Daftar file citra pada Tabel 2.3 berlaku untuk


MATLAB.

Saat buku ini ditulis, Octave hanya mampu


membaca file citra berformat PNG. Format lain
hanya bisa dibaca dengan melibatkan utilitas lain
seperti ImageMagick. Itulah sebabnya, seluruh
contoh file citra dalam buku ini menggunakan
format PNG.

Pengolahan Citra, Teori dan Aplikasi

22

Contoh berikut digunakan untuk membaca filecitra bernama mandrill.png


yang terdapat pada folder C:\Image.

>>Img = imread(C:\Image\mandrill.png);
>>

Catatan

Dengan cara seperti itu, data citra pada file mandrill.png


disimpan diImg. Dalam hal ini, Img berupa larikyang
mengandung M baris dan N baris. Mengingat file tersebut
berisi data citra berskala keabuan, maka nilai pada setiap
elemen dalam matriks menyatakan intensitas piksel. Nilai
intensitas itu berupa bilangan bulat antara 0 sampai dengan
255.

Berbagai jenis citra (antara lain yang berskala keabuan) akan


segera dibahas.

imread juga mendukung pembacaan citra 16 bit. Namun,


pembahasan di buku ini menggunakan semua file citra
berukuran 8 bit (tipe uint8).

2.5 Mengetahui Ukuran Citra


Secara umum, ukuran matriks Imgadalah M x N. Untuk mengetahui nilai M
dan N yang sesungguhnya, dapatdigunakan fungsi pada Octave yang bernama
size. Contoh untuk mengetahui dimensi pada matriks Img:

>>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:

Mengenal Dasar Citra

23

>> jum_baris = Ukuran(1);


>> jum_kolom = Ukuran(2);
>>

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:

>> [jum_baris, jum_kolom] = size(Img);

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.

Pengolahan Citra, Teori dan Aplikasi

24

Gambar 2.8Contoh penampilan gambar pada Img

Apabila dikehendaki untuk menampilkan dua citra di dua jendela masingmasing, fungsi figure perlu dipanggil terlebih dulu sebelum memanggil imshow.
Contoh:

>> Sungai = imread('C:\Image\innsbruck.png');


>> Bangunan = imread('C:\Image\altstadt.png');
>>figure(1); imshow(Sungai);
>>figure(2); imshow(Bangunan);

Hasilnya,

gambar

sungai

ditampilkan

di

jendela

dan

gambar

bangunandiletakkan di jendela 2.Gambar 2.9 memperlihatkan keadaan pada kedua


jendela, yaitu kebetulan sebagian jendela 2 menutup jendela 1.

Mengenal Dasar Citra

25

Gambar 2.9Menampilkan dua citradi jendela masing-masing

Octave menyediakan fasilitas yang memungkinkan dua buah citra diletakkan


dalam satu jendela. Berdasarkan larik Sungai dan Bangunan di depan, dapat
dicoba untuk memberikan perintah berikut:

>> close all;


>>subplot(1,2,1); imshow(Sungai);
>>subplot(1,2,2); imshow(Bangunan);

Hasilnya dapat dilihat pada Gambar 2.10.

Pengolahan Citra, Teori dan Aplikasi

26

Gambar 2.10Contoh pemakaian subplot

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

Mengenal Dasar Citra

27

mencapai 255 x 255 x 255 atau 16.581.375 warna. Tabel 2.4 menunjukkan contoh
warna dan nilai R,G, dan B.

Tabel 2.4 Warna dan nilai penyusun warna


Warna

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

Pengolahan Citra, Teori dan Aplikasi

28

Gambar 2.13 Citra berwarna dan representasi warnanya.


Setiap piksel dinyatakan dengan nilai R, G, dan B

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.

Citra berwarna pun dibaca melalui imread. Contoh:

>> Kota = imread('C:\Image\innsbruckcity.png');

Nah, sekarang dapatdicoba untuk mengenakan size pada Kota:

>>size(Kota)
ans =

747

500

Mengenal Dasar Citra

29

>>

Hasilnya menunjukkan bahwaKotaberupa larikberdimensi tiga, dengan dimensi


ketiga berisi tiga buah nilai.Hal inilah yang membedakan dengan citra berskala
keabuan.Secara umum, larik hasil pembacaan citra berwarna dapat digambarkan
seperti berikut.

1
2

M-1
3

Komponen B

2
1
1

N-1

Komponen G
Komponen R

Gambar 2.14Hasil pembacaan citra berwarna


Dimensi ketiga menyatakan komponen R, G, B. Indeks pertama menyatakan
komponen R, indeks kedua menyatakan komponen G, dan indeks ketiga
menyatakan komponen B.
Berikut adalah cara untuk mendapatkan komponen R, G, dan B pada
larikKota di depan:

>> R = Kota(:,:,1);
>> G = Kota(:,:,2);
>> B = Kota(:,:,3);

Pengolahan Citra, Teori dan Aplikasi

30

Untuk menampilkan gambar berwarna, imshow bisa digunakan seperti kalau


mau menampilkan gambar berskala keabuan. Contoh:

>>figure(1);
>>imshow(Kota);

Hasilnya seperti berikut.

Gambar 2.15 Citra berwarna


2.7.2 Citra Berskala Keabuan
Sesuai dengan nama yang melekat, citra jenis ini menangani gradasi warna
hitam dan putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis
gambar ini, warna dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar

Mengenal Dasar Citra

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.

(a) Citra daun berskala keabuan

(b) Citra biner

Gambar 2.16 Citra di kanan menyatakan bentuk citra di kiri


dengan mengabaikan komposisi warna
Contoh berikut menunjukkan cara membaca dan menampilkan citra biner.

>>Img = imread('c:\Image\daun_bin.png');
>>imshow(Img);
>>

Hasilnya seperti berikut.

Pengolahan Citra, Teori dan Aplikasi

32

Gambar 2.17Tampilan citra biner

2.8 Mengonversi Jenis Citra


Dalam praktik, seringkali diperlukan utuk mengonversi citra berwarna ke
dalam bentuk citra berskala keabuan mengingat banyak pemrosesan citra yang
bekerja pada skala keabuan. Namun, terkadang citra berskala keabuan pun perlu
dikonversikan ke citra biner, mengingat beberapa operasi dalam pemrosesan citra
berjalan pada citra biner.
Bagaimana cara mengubah citra berwarna ke dalam citra berskala keabuan?
Secara umum citra berwarna dapat dikonversikan ke citra berskala keabuan
melalui rumus:
=

+ + , +

= 1

(2.1)

dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen


hijau, dan B menyatakan nilai komponen biru. Misalnya, sebuah piksel
mempunyai komponen R, G, B sebagai berikut:

Mengenal Dasar Citra

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

Tanda menyatakan bahwa perintah pada baris


tersebut masih mempunyai lanjutan pada baris
berikutnya.

Tanda : berarti semua nilai.

double dipakai untuk melakukan konversi dari


tipe bilangan bulat 8 bit (uint8) ke tipe double
(yang memungkinkan pemrosesan bilangan real
berpresisi ganda).

uint8 berguna untuk mengonversi dari tipe


double ke uint8 (tipe bilangan bulat 8 bit).

Hasilnya ditunjukkan pada Gambar 2.18.

Pengolahan Citra, Teori dan Aplikasi

34

Gambar 2.18Hasil konversi citra berwarna


ke citra berskala keabuan
Bagaimana halnya kalau dikehendaki untuk mengonversikan citra berskala
keabuan ke citra biner? Strategi yang dipakai yaitu dengan menerapkan suatu nilai
yang dikenal sebagai nilai ambang (threshold). Nilai tersebut dipakai untuk
menentukan suatu intensitas akan dikonversikan menjadi 0 atau menjadi 1. Secara
matematis, konversi dinyatakan dengan rumus:
0,
1,

(2.3)

Contoh berikut menunjukkan cara melakukan konversi dari citra berskala


keabuan ke dalam citra biner.

Program : kebiner.m

% KEBINER Digunakan untuk mengonversi file

Mengenal Dasar Citra

35

daun_gray.png ke citra biner

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');

merupakan perintah untuk membaca citra daun_gray.png. Hasilnya disimpan


diImg. Lalu,
[tinggi, lebar] =

size(Img);

berguna untuk mendapatkan lebar dan tinggi citra.


Pernyataan
ambang = 210;

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

Pengolahan Citra, Teori dan Aplikasi

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.

Mengenal Dasar Citra

37

Gambar 2.19Hasil konversi daun_gray.png ke bentuk biner


Gambar 2.20 memperlihatkan berbagai bentuk hasil konversi citra dengan
menggunakan berbagai nilai ambang.

Pengolahan Citra, Teori dan Aplikasi

38

Ambang = 210

Ambang = 160

Ambang = 130

Ambang = 110

Ambang = 100

Ambang = 70

Gambar 2.20 Hasil konversi ke citra biner


dengan berbagai nilai ambang
Contoh-contoh yang telah dibahas memberikan gambaran tentang cara
mewujudkan sendiri konversi antarjenis citra. Hal tersebut tentu saja penting
untuk dipahami agar memudahkan di dalam mewujudkan sendiri penulisan
program seandainya menggunakan bahasa pemrograman yang lain.Namun,
sebagai penambah wawasan, sesungguhnya Octave menyediakan beberapa fungsi
untuk kepentingan konversi citra. Tabel 2.5 memperlihatkan dua fungsi penting
yang terkait dengan konversi citra.

Mengenal Dasar Citra

Fungsi

39

Tabel 2.5Fungsi yang disediakan Octave


untuk kepentingan konversi ke aras keabuan
Kegunaan

im2bw(I, level)

Berguna untuk mengonversikan citra berskala

im2bw(RGB, level)

keabuan (I) ataupun berwarna (RGB) ke


dalam citra biner dengan menggunakan level
sebagai ambang konversi. Di MATLAB, jika
argumen kedua (yaitu level) tidak disertakan,
nilai 0,5 secara bawaan digunakan sebagai
ambang konversi. Pada Octave, argumen
kedua harus disertakan. Nilai balik fungsi ini
berupa citra biner

rgb2gray(RGB)

Berguna untuk mengonversi citra berwarna


(RGB) ke citra berskala keabuan. Nilai balik
fungsi ini berupa citra berskala keabuan

Pada beberapa contoh yang akan dibahas pada bab-bab selanjutnya, dua fungsi
pada Tabel 2.5 akan digunakan dengan

tujuan untuk menyederhanakan

permasalahan dalam menuliskan kode.


Agar terbiasa dengan kedua fungsi tersebut, berikut disajikan contoh
penggunaannya. Contoh pertama:

>>Img= imread('C:\Image\daun_gray.png');
>> BW = im2bw(Img, 0.6);
>>imshow(BW);

Hasilnya seperti berikut.

Pengolahan Citra, Teori dan Aplikasi

40

Gambar 2.21Hasil pembentukan citra biner melalui im2bw

Adapun contoh pemakaian rgb2gray:

>> RGB = imread('C:\Image\innsbruckcity.png');


>> Abu = rgb2gray(RGB);
>>imshow(Abu);

Hasilnya seperti berikut.

Mengenal Dasar Citra

41

Gambar 2.22 Hasil pembentukan citra berskala keabuan


melalui rgb2gray
2.9 Menyimpan Citra
Untuk kepentingan menyimpan citra ke dalam file, fungsi imwrite pada
Octave dapat digunakan. Pemakaiannya:
imwrite(A, nama_file)
A dapat berupa larik dua dimensi (citra berskala keabuan) ataupunlarik berdimensi
tiga (citra RGB).
Contoh:

>>Img = imread('C:\Image\daun_gray.png');
>>X = 255 Img;
>>imwrite(X, negatif_daun.png);

Pengolahan Citra, Teori dan Aplikasi

42
Perlu diketahui,
X = 255 Img;

digunakan untuk memperoleh citra negatif dari citra daun_gray.png. Setelah


imwrite dieksekusi,akan terbentuk negatif_daun.png pada folder kerja. Hasilnya
diperlihatkan pada Gambar 2.23.

Gambar 2.23 Hasil penyimpanan citra negatif_daun.png

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

Mengenal Dasar Citra

43

b) citra berskala keabuan


c) citra biner
6. Jelaskan mekanisme untuk mengubah citra berwarna ke dalam citra
berskala keabuan.
7. Bagaimana prinsip untuk mengubah citra berskala keabuan ke citra biner?
8. Ubahlah innsbruckcity.png ke citra berskala keabuan dan kemudian
simpan dengan nama inns_gray.png.
9. Buatlah program untuk memproses citra daun_gray.png agar diperoleh
hasil seperti berikut.

10. Gunakanlah fungsi im2bw untuk mengonversikan citra innsbruckcity.png


ke dalam bentuk citra biner dengan menggunakan level sebesar 0,7, 0,5,
dan 0,3.Bagaimana kesan Anda mengenai hasil-hasil yang diperoleh?
11. Buatlah program untuk menguantisasi citra daun_gray.png dengan 2 bit.
Tampilkan hasilnya. Apakah hasilnya masih terlihat seperti aslinya? Bila
tidak, dengan menggunakan berapa bit agar gambar tersebut terlihat sesuai
dengan aslinya?

Anda mungkin juga menyukai