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 &amp;amp; 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 &amp;amp; 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

File source code lengkap beserta citra pada pemrograman matlab untuk segmentasi warna di atas dapat diperoleh melalui halaman berikut ini: Source Code

Tutorial deteksi warna berdasarkan komponen hue dan saturation pada citra HSV dapat dilihat pada video berikut ini:

Posted on November 9, 2016, in Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 25 Comments.

  1. assalamualaikum mas Adi, ak mau tanya… metode segementasi yg bagus yg tahan terhadap pengaruh pencahayaan apa ya????

    ak pake ruang warna ycbcr, tp kata dosen ku sruh pake metode karna ycbcr bukan metode..

  2. selain metode ycbcr metode apa lagi ya ka selain pake ruang warna,,,?
    untuk deteksi deteksi warna kulit

  3. Untuk yang mengubah warna obyek menjadi merah kok saya run error di H(mask) = H(mask)+4; ya?

  4. Assalamualaikum ini metoda apa ya?

  5. kak, mau tanya, untuk mengambil hasil dari masking (variabel mask), rencananya saya akan mengubah citra ke dalam biner. itu bagaimana caranya ya kak? karna saya coba menggunakan BW = imbinarize(mask, 0.4); itu error kak. Mohon pencerahannya kak

  6. Muhamad fadilah

    Assalamualaikum mas,saya mau nanya mengenai identifikasi jenis wayang kulit . cuman saya disini masih bingung apakah harus di segmentasi terlebih dahulu atau tidak ya mas, lalu untuk metode ekstraksi ciri dan identifikasi sebaiknya apa ya mas? mohon bantuannya mas untuk tugas akhir saya mas. terima kasih sebelumnya

    • Waalaikumsalam
      Bisa dilakukan segmentasi terlebih dahulu
      Proses ekstraksi ciri bisa dilakukan melalui analisis bentuk dan warna
      Utk identifikasi bisa menggunakan algoritma jaringan syaraf tiruan, pca, deep learning, dll

    • Muhamad fadilah

      ow begitu ya mas,klau saya pilih metode untuk segmentasinya thresholding warna hsv,bentuk deteksi tepi canny misalnya dan identifikasi jst apakah sudah pas belum ya mas?atau ada saran lain mas? terima kasih

    • Bisa dicoba diimplementasikan

  7. Muhamad fadilah

    oke makasih mas

  8. tahu range nilai hue untuk warna biru adalah 100 s.d 250.dari mana ya?

  9. assalamualaikum mas, saya sdg melakukan penelitian ttg pengetesan algoritma clustering. saya menggunakan segmentasi citra warna ruang HSV, lalu selanjutnya citra hsv tsb akan diimplementasikan dengan k-means dan pso berbasis clustering. saya mau tanya, sehabis saya transformasi citra rgb ke hsv apakah perlu dilakukan thresholding terhadap komponen hue baru dilanjutkan dengan algoritma clustering apa bisa langsung ya mas diimplementasikan ke algoritma clustering tanpa thresholding ya mas? mohon bantuannya, terima kasih

  10. assalamualaikum ,mas saya mau nanya sedikit, saya sdang melakukan penilitian identifikasi lipstick palsu dan asli dengan warna rgb, yang dibutuhkan hanya nilai rgb dan histogram. apakah penentuan asli dan palsu nya itu menggunakan segmentasi biner dan grayscale ?

  11. Assalamu’alaikum kak mau tanyak, kalau Sudah pakek transformasi ruang warna hsv apa harus pake metode lain lagi ya untuk pendeteksian kematangan buah Manggis, kalau pakek cocoknya metode apa yg ringan untuk digunakan ya kak?

  12. kak mau tanya, kalau mau identifikasi varietas ikan koi selain menggunakan glcm mebggunakan apa ya kak? karna yg glcm sudah ada tetapi dengan 4 fitur (contras, corelation, energy, homogenity).. terima kasih kak..

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: