[digital image processing

]

June 8, 2012

OBJECT DETECTION BASED ON HSV COLOR SPACE AND OTSU METHOD

Dalam beberapa artikel telah kita bahas tentang teori-teori pengolahan citra digital seperti teori color space dan otsu method (segmentasi). Nah, dalam artikel selingan ini saya mencoba memadukan mereka untuk kasus nyata yang bisa kita manfaatkan dalam deteksi objek dalam sebuah citra digital. Jadi dalam artikel ini tidak akan dibahas tentang teori-teori yang terkait. Anda bisa mencari tahu melalui artikel yang sudah saya tulis atau lewat Mbah Goog... ☺ Seperti diketahui bahwa terdapat berbagai color space yang bisa dimanfaatkan untuk pengolahan citra seperti HSV, HSI, Lab. Berdasarkan paper-paper yang saya baca, ketiga ruang warna ini dominan sekali digunakan. Untuk itu saya coba bahas salah satu pemanfaatan ruang warna tersebut lalu dipadukan dengan metode thresholding ala Otsu. # kasus pertama adalah mendeteksi objek marking pejalan kaki pada marking pengatur lalu lintas berikut ini.

[janshendry@gmail.com]

Page 1

[digital image processing]

June 8, 2012

Program yang dibuat terdiri atas 2 yakni program utama dan program konversi RGB ke HSV. Program Utama
clear all; close all; clc; %% Memanfaatkan komponen RGB untuk segmentasi citra filename='image1.jpg'; I=imread(filename); subplot(1,2,1), imshow(I); title('Citra Original'); %% %% Memanfaatkan HSV untuk segmentasi citra % konversi rgb ke hsv [h,s,v]=trans_RGB2HSV(I); % metode otsu level=.9; I2=im2bw(v,level); Ibw = bwareaopen(I2,370); subplot(1,2,2), imshow(Ibw); title('Hasil Deteksi'); %% Jans Hendry

-

Program RGB to HSV Simpan program ini dengan nama trans_RGB2HSV.m karena merupakan sebuah fungsi.

function [h,s,v]=trans_RGB2HSV(I) I2=im2double(I); R=I2(:,:,1); G=I2(:,:,2); B=I2(:,:,3); minRGB=min(min(R,G),B); v=max(max(R,G),B); s=v-minRGB; h=zeros(size(v)); z = ~s; s = s + z; k = find(R == v); h(k) = (G(k) - B(k))./s(k); k = find(G == v); h(k) = 2 + (B(k) - R(k))./s(k); k = find(B == v); h(k) = 4 + (R(k) - G(k))./s(k);

[janshendry@gmail.com]

Page 2

[digital image processing]

June 8, 2012

h = h/6; k = find(h < 0); h(k) = h(k) + 1; h=(~z).*h; k = find(v); s(k) = (~z(k)).*s(k)./v(k); s(~v) = 0;

hasil eksekusi program di atas adalah

# kasus kedua adalah mendeteksi angka 9 pada marking jalanan berikut:

[janshendry@gmail.com]

Page 3

[digital image processing]

June 8, 2012

Program yang digunakan juga ada 2, yakni program utama dan konversi ruang warna dari RGB ke HSV. Khusus untuk program ke dua tersebut sama persis dengan di atas. Khusus untuk program pertama adalah
clear all; close all; clc; %% Memanfaatkan komponen RGB untuk segmentasi citra filename='image2.jpg'; I=imread(filename); subplot(1,2,1), imshow(I); title('Citra Original'); %% Memanfaatkan HSV untuk segmentasi citra % konversi rgb ke hsv [h,s,v]=trans_RGB2HSV(I); % thresholding level=.9; I2=im2bw(v,level); Ibw = bwareaopen(I2,370); % Ibw =imfill(Ibw,'holes'); subplot(1,2,2), imshow(Ibw); title('Hasil Deteksi'); se=strel('line',15,0); dilatedI=imdilate(Ibw,se); figure, imshow(dilatedI); CC=bwconncomp(dilatedI); S=regionprops(CC,{'Centroid','Area','BoundingBox'}); for m=1:numel(S) luas(m)=S(m).Area; end [Val,Idx]=max(luas); G=S(Idx).BoundingBox; box=[G(1) G(2) G(3) G(4)]; Icrop=imcrop(I,box); figure, imshow(Icrop); % otsu method level=graythresh(Icrop); Ibw2=im2bw(Icrop,level); Ibw2=~Ibw2; Ibw2=bwareaopen(Ibw2,200); figure, imshow(Ibw2); CC=bwconncomp(Ibw2); S=regionprops(Ibw2,{'Centroid','Area','BoundingBox'}); for m=1:numel(S) luas(m)=S(m).Area; end [Val,Idx]=max(luas); G=S(Idx).BoundingBox;

[janshendry@gmail.com]

Page 4

[digital image processing]

June 8, 2012

box=[G(1) G(2) G(3) G(4)]; Icrop=imcrop(Icrop,box); figure, imshow(Icrop); Icrop2=imcrop(Ibw2,box); Icrop2=~Icrop2; figure, imshow(Icrop2); %% Jans Hendry

Hasil eksekusi dari program di atas adalah

Bisa anda lihat bahwa kita hanya menggunakan 2 teori pengolahan citra di sini dan bisa mendapatkan hasil yang diinginkan. Semoga artikel ini bisa membantu. Silahkan copy tapi semoga anda bisa mengingat meletakkan copy right nya. Thanks... ☺

[janshendry@gmail.com]

Page 5

Sign up to vote on this title
UsefulNot useful