Segmentasi Warna Citra Digital


Segmentasi citra merupakan suatu proses yang bertujuan untuk memisahkan antara region foreground dengan region background. Pemisahan tersebut didasarkan pada perbedaan karakteristik masing-masing region yang mencolok.

Pada contoh pemrograman ini, dilakukan segmentasi citra berdasarkan pada perbedaan warna antara foreground dengan background. Dalam citra digital, warna yang merupakan spektrum cahaya tampak (merah, jingga, kuning, hijau, biru, ungu) direpresentasikan oleh nilai Hue. Oleh sebab itu, proses segmentasi citra pada pemrograman ini dilakukan pada ruang warna HSV (Hue, Saturation, Value).

Langkah-langkah pemrograman matlab untuk melakukan segmentasi warna adalah sebagai berikut:
1. Membaca dan menampilkan citra asli. Citra yang digunakan adalah citra bird.jpg di mana foreground atau objek yang dimaksud adalah berupa burung.

clc; clear; close all; warning off all;

% Membaca citra asli
RGB = imread('bird.jpg');
figure, imshow(RGB);

diperoleh tampilan

2. Melakukan transformasi ruang warna citra yang semula RGB (Red, Green, Blue) menjadi HSV (Hue, Saturation, Value).

% Melakukan transformasi ruang warna citra yang semula RGB menjadi HSV
HSV = rgb2hsv(RGB);
figure, imshow(HSV);

citra HSV yang dihasilkan yaitu

3. Melakukan segmentasi warna biru terhadap komponen Hue. Pada contoh ini range nilai hue untuk warna biru adalah 100 s.d 250.

% Melakukan segmentasi terhadap warna biru (nilai Hue 100-250)
H = HSV(:,:,1);
range = [100 250]/360; 
mask = (H>range(1)) & (H<range(2));
figure, imshow(mask)

sehingga diperoleh citra biner hasil segmentasi

4. Mengubah warna background menjadi grayscale

% 1. Mengubah warna background menjadi grayscale
H = HSV(:,:,1);
S = HSV(:,:,2);
V = HSV(:,:,3);

S = S.*mask;
HSV1 = cat(3,H,S,V);

RGB1 = hsv2rgb(HSV1);
figure, imshow(RGB1);

citra yang dihasilkan

5. Mengubah warna objek menjadi merah

% 2. Mengubah warna objek menjadi merah
H = HSV(:,:,1);
S = HSV(:,:,2);
V = HSV(:,:,3);

H(mask) = H(mask)+.4;
HSV2 = cat(3,H,S,V);

RGB2 = hsv2rgb(HSV2);
figure, imshow(RGB2);

citra yang dihasilkan

6. Mengubah warna objek menjadi merah & warna background menjadi grayscale

% 3. Mengubah warna objek menjadi merah & warna background menjadi grayscale
H = HSV(:,:,1);
S = HSV(:,:,2);
V = HSV(:,:,3);

H(mask) = H(mask)+.4;
S = S.*mask;
HSV3 = cat(3,H,S,V);

RGB3 = hsv2rgb(HSV3);
figure, imshow(RGB3);

citra yang diperoleh

7. Mengubah warna objek menjadi ungu & warna background menjadi hijau

% 4. Mengubah warna objek menjadi ungu & warna background menjadi hijau
H = HSV(:,:,1);
S = HSV(:,:,2);
V = HSV(:,:,3);

H(mask) = H(mask)+.33;
H(~mask) = H(~mask)+.2;
HSV4 = cat(3,H,S,V);

RGB4 = hsv2rgb(HSV4);
figure, imshow(RGB4);

dihasilkan citra

Source code dan citra pada pemrograman matlab untuk segmentasi warna di atas dapat diunduh melalui laman berikut ini: Source Code

Posted on November 9, 2016, in Pengolahan Citra and tagged , , , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: