Pengolahan Video untuk Mendeteksi Warna
Deteksi warna dapat dilakukan dengan cara melakukan transformasi ruang warna citra. Berikut ini merupakan contoh aplikasi 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)
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:
File source code lengkap beserta video pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on December 18, 2016, in Pengolahan Video and tagged aplikasi matlab deteksi warna, aplikasi matlab pengolahan video, cara membuat program matlab pengolahan video, citra hsv, citra RGB, contoh aplikasi matlab sederhana, contoh koding matlab sederhana, contoh program matlab pengolahan video, deteksi warna, ekstraksi citra, ekstraksi frame, ekstraksi video, pengolahan citra, Pengolahan Video, pengolahan video matlab, ruang warna citra, segmentasi warna, sistem deteksi warna, transformasi ruang warna citra, video processing, warna citra. Bookmark the permalink. 4 Comments.
hyy kak bisa bantu saya yaa cara mengurangin noise dari sura mengunaka wavelet haar program matlab
bisa nina, sebisa mungkin saya bantu
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 ,.
Zufi bisa mengimplementasikan materi mengenai proses cropping citra di halaman berikut
https://pemrogramanmatlab.com/2015/08/23/cara-melakukan-cropping-citra-pada-gui-matlab/
Dengan materi pengolahan video yang tertera di atas