Pengolahan Citra Digital (Digital Image
Processing) merupakan bidang ilmu yang mempelajari
tentang bagaimana suatu citra itu dibentuk, diolah, dan dianalisis sehingga
menghasilkan informasi yang dapat dipahami oleh manusia.
Sebelum mempelajari lebih lanjut
mengenai pengolahan citra digital, kita perlu mengetahui definisi dari citra
itu terlebih dahulu.
Citra merupakan fungsi dari intensitas
cahaya yang direpresentasikan dalam bidang dua dimensi.
Berdasarkan bentuk sinyal penyusunnya,
citra dapat digolongkan menjadi dua jenis yaitu citra analog dan citra digital.
Citra analog adalah citra yang dibentuk dari sinyal analog yang bersifat
kontinyu, sedangkan citra digital adalah citra yang dibentuk dari sinyal
digital yang bersifat diskrit.
Citra analog dihasilkan dari alat
akuisisi citra analog, contohnya adalah mata manusia dan kamera analog.
Gambaran yang tertangkap oleh mata manusia dan foto atau film yang tertangkap
oleh kamera analog merupakan contoh dari citra analog. Citra tersebut memiliki
kualitas dengan tingkat kerincian (resolusi) yang sangat baik tetapi memiliki
kelemahan di antaranya adalah tidak dapat disimpan, diolah, dan diduplikasi di
dalam komputer.
Citra digital merupakan representasi dari fungsi
intensitas cahaya dalam bentuk diskrit pada bidang dua dimensi. Citra tersusun
oleh sekumpulan piksel (picture element) yang
memiliki koordinat (x,y) dan amplitudo f(x,y). Koordinat (x,y) menunjukkan
letak/posisi piksel dalam suatu citra, sedangkan amplitudo f(x,y) menunjukkan
nilai intensitas warna citra. Representasi citra digital beserta piksel
penyusunnya ditunjukkan pada Gambar 1 berikut ini.
Gambar 1. Citra dan piksel penyusunnya
Pada umumnya, berdasarkan kombinasi warna pada piksel,
citra dibagi menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra
biner. Citra pada Gambar 1 termasuk dalam jenis citra RGB truecolor 24-bit. Citra
tersebut tersusun oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan
kanal biru.
Masing-masing kanal warna memiliki nilai
intensitas piksel dengan kedalaman bit sebesar 8-bit yang artinya memiliki
variasi warna sebanyak 2^8 derajat warna (0 s.d 255).
Pada kanal merah, warna merah sempurna
direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Pada
kanal hijau, warna hijau sempurna direpresentasikan dengan nilai 255 dan hitam
sempurna dengan nilai 0. Begitu juga pada kanal biru, warna biru sempurna
direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.
Perintah MATLAB untuk menampilkan citra
digital dan masing-masing kanal penyusunnya adalah sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
clc; clear; close all; warning off
all;
I = imread('lena_color_256.tif');
Red = I(:,:,1);
Green = I(:,:,2);
Blue = I(:,:,3);
I_Red = cat(3,Red,Green*0,Blue*0);
I_Green =
cat(3,Red*0,Green,Blue*0);
I_Blue =
cat(3,Red*0,Green*0,Blue);
figure, imshow(I);
figure, imshow(I_Red);
figure, imshow(I_Green);
figure, imshow(I_Blue);
|
Representasi citra RGB dan masing-masing
kanal warna penyusunnya ditunjukkan pada Gambar 2.
Gambar 2. Representasi citra RGB dan kanal warna
penyusunnya
Setiap piksel pada citra RGB, memiliki
intensitas warna yang merupakan kombinasi dari tiga nilai intensitas pada kanal
R, G, dan B. Sebagai contoh, suatu piksel yang memiliki nilai intensitas warna
sebesar 255 pada kanal merah, 255 pada kanal hijau, dan 0 pada kanal biru akan
menghasilkan warna kuning. Pada contoh lain, suatu piksel yang memiliki nilai
intensitas warna sebesar 255 pada kanal merah, 102 pada kanal hijau, dan 0 pada
kanal biru akan menghasilkan warna orange. Banyaknya kombinasi warna piksel yang
mungkin pada citra RGB truecolor 24-bit adalah sebanyak 256 x 256 x 256 =
16.777.216. Representasi nilai intensitas piksel dengan kombinasi warna R, G,
dan B ditunjukkan pada Gambar 3.
Gambar 3. Representasi piksel dengan kombinasi warna
R, G, dan B
Jenis citra yang kedua adalah citra
grayscale. Citra grayscale merupakan citra yang nilai intensitas pikselnya
didasarkan pada derajat keabuan. Pada citra grayscale 8-bit, derajat warna
hitam sampai dengan putih dibagi ke dalam 256 derajat keabuan di mana warna
hitam sempurna direpresentasikan dengan nilai 0 dan putih sempurna dengan nilai
255. Citra RGB dapat dikonversi menjadi citra grayscale sehingga dihasilkan
hanya satu kanal warna. Persamaan yang umumnya digunakan untuk mengkonversi
citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah
Grayscale = 0.2989*R + 0.5870*G + 0.1140*B
di mana
Grayscale adalah nilai intensitas citra grayscale,
R adalah nilai intensitas piksel pada kanal merah,
G adalah nilai intensitas piksel pada kanal hijau, dan
B adalah nilai intensitas piksel pada kanal biru.
Grayscale adalah nilai intensitas citra grayscale,
R adalah nilai intensitas piksel pada kanal merah,
G adalah nilai intensitas piksel pada kanal hijau, dan
B adalah nilai intensitas piksel pada kanal biru.
Perintah MATLAB untuk mengkonversi citra
RGB menjadi grayscale adalah:
1
2
|
I_Gray = rgb2gray(I);
figure, imshow(I_Gray);
|
Citra hasil konversi RGB menjadi
grayscale ditunjukkan pada Gambar 4.
Gambar 4. Citra hasil konversi RGB menjadi grayscale
Jenis citra yang ketiga adalah citra
biner. Citra biner adalah citra yang pikselnya memiliki kedalaman bit sebesar 1
bit sehingga hanya memiliki dua nilai intensitas warna yaitu 0 (hitam) dan 1
(putih). Citra grayscale dapat dikonversi menjadi citra biner melalui proses
thresholding. Dalam proses thresholding, dibutuhkan suatu nilai threshold
sebagai nilai pembatas konversi. Nilai intensitas piksel yang lebih besar atau
sama dengan nilai threshold akan dikonversi menjadi 1. Sedangkan nilai
intensitas piksel yang kurang dari nilai threshold akan dikonversi menjadi 0.
Misalnya nilai threshold yang digunakan adalah 128, maka piksel yang mempunyai
intensitas kurang dari 128 akan diubah menjadi 0 (hitam) dan yang lebih dari
atau sama dengan 128 akan diubah menjadi 1 (putih).
Perintah MATLAB untuk mengkonversi citra
grayscale menjadi citra biner adalah:
1
2
|
I_bw = im2bw(I_Gray);
figure, imshow(I_bw);
|
Citra hasil konversi grayscale menjadi
biner ditunjukkan pada Gambar 5.
Gambar 5. Citra hasil konversi grayscale menjadi biner
Thresholding pada umumnya digunakan dalam proses segmentasi citra.
Proses tersebut dilakukan untuk memisahkan antara foreground (objek yang
dikehendaki) dengan background (objek lain yang tidak dikehendaki). Pada hasil
segmentasi, foreground direpresentasikan oleh warna putih (1) dan background
direpresentasikan oleh warna hitam (0). Pada kasus segmentasi pada satu citra
saja, kita dapat menentukan nilai threshold dengan metode trial and error.
Namun pada kasus segmentasi pada citra dengan jumlah yang banyak, dibutuhkan
suatu metode untuk menentukan nilai threshold secara otomatis. Nilai threshold
dapat diperoleh secara otomatis dengan menggunakan metode Otsu (1979).
Perintah MATLAB untuk melakukan
thresholding dengan metode Otsu adalah:
1
2
3
|
thresh = graythresh(I_Gray);
I_bw_otsu = im2bw(I_Gray,thresh);
figure, imshow(I_bw_otsu);
|
Citra hasil thresholding menggunakan
metode Otsu ditunjukkan pada Gambar 6.
Gambar 6. Citra hasil thresholding menggunakan metode
Otsu
Komentar
Posting Komentar