Pengolahan Video untuk Mendeteksi Warna


Deteksi warna dapat dilakukan dengan cara melakukan transformasi ruang warna citra. Berikut ini merupakan contoh pemrograman matlab mengenai deteksi warna merah pada ruang warna HSV yang terdiri dari Hue (H), Saturation (S), dan Value (V). Langkah-langkah pemrogramannya adalah sebagai berikut:
1. Membaca video asli
2. Mengekstrak setiap frame pada video asli
3. Melakukan transformasi ruang warna yang semula berada pada ruang warna RGB menjadi ruang warna HSV
4. Melakukan segmentasi warna merah pada ruang warna HSV berdasarkan nilai H (0.8 s.d 1), S (0.5 s.d 1) dan V (0.1 s.d 1)
5. Menjalankan seluruh frame hasil pengolahan secara sekuensial dalam bentuk video

Pada contoh ini digunakan video dengan spesifikasi:

Property Nilai
Title August Rush 2007.mp4
Durasi 5 detik
Panjang frame 640
Lebar frame 480
Frame rate 23 frame/ detik
Jumlah frame 119

Tampilan video yang digunakan yaitu

Sedangkan tampilan source code untuk pengolahan video adalah

clc;clear;close all;warning off all;

vid = VideoReader('August Rush 2007.mp4');

vidWidth = vid.Width;
vidHeight = vid.Height;
vidFrameRate = vid.FrameRate;

mov = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
    'colormap',[]);

k = 1;
while hasFrame(vid)
    RGB = readFrame(vid);
    HSV = rgb2hsv(RGB);
    
    H = HSV(:,:,1);
    S = HSV(:,:,2);
    V = HSV(:,:,3);
    
    mask = (H>0.8 & S>0.5 & V>0.1);
    mask = bwareaopen(mask,200);
    [row,col] = find(mask==1);
    bbox = [min(col) min(row) max(col)-min(col) max(row)-min(row)];
    out = insertShape(RGB,'rectangle',bbox,'color','yellow','LineWidth',5);
    mov(k).cdata = out;
    k = k+1;
end

hf = figure;
set(hf,'position',[150 150 vidWidth vidHeight]);

movie(hf,mov,1,vidFrameRate);

Langkah-langkah pengolahan untuk setiap frame yaitu:
1. Membaca frame citra

2. Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB menjadi ruang warna HSV

3. Tampilan masing-masing kanal H, S, dan V adalah sebagai berikut
Kanal Hue (H)

Kanal Saturation (S)

Kanal Value (V)

4. Melakukan segmentasi warna merah pada citra HSV berdasarkan nilai H (0.8 s.d 1), S (0.5 s.d 1) dan V (0.1 s.d 1) sehingga diperoleh citra biner

5. Menghilangkan object  yang memiliki luas kurang dari 200 piksel. Proses ini dilakukan dengan tujuan untuk menghilangkan noise

6. Citra biner hasil penghilangan noise di atas dijadikan sebagai masking untuk memvisualisasikan bounding box pada frame citra asli

Sedangkan hasil pengolahan frame yang diperoleh ditunjukkan pada tabel berikut ini

Urutan frame Frame asli Frame hasil pengolahan
1

25
50
75
100

Tampilan video hasil pengolahan adalah:

Video dan source code pada pemrograman di atas dapat diunduh pada laman berikut ini: Source Code

Advertisements

Posted on December 18, 2016, in Pengolahan Video and tagged , , , , , , . Bookmark the permalink. 4 Comments.

  1. hyy kak bisa bantu saya yaa cara mengurangin noise dari sura mengunaka wavelet haar program matlab

  2. kak , kira” kalau pengolahan video untuk mendeteksi warna ini , dikombinasi dengan ROI tuh gimana ya ? jadi ROI ada video terus mendeteksi warna yang ada pada video yang telah ditentukan ROInya , dan memberikan hasil warnanya ., ty ,.

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: