deteksi kematangan buah tomat

28
Mendeteksi Kematangan Buah Tomat Menggunakan Fitur Warna Pada Citra Achmad Basuki Politeknik Elektronika Negeri Surabaya 2013

Upload: trinhxuyen

Post on 27-Jan-2017

267 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Deteksi Kematangan Buah Tomat

Mendeteksi Kematangan Buah Tomat Menggunakan Fitur Warna Pada CitraAchmad BasukiPoliteknik Elektronika Negeri Surabaya2013

Page 2: Deteksi Kematangan Buah Tomat

Data: 120 gambar

40 gambar tomat yang masih mentah (berwarna hijau)

40 gambar tomat yang sudah matang (berwarna merah)

40 gambar tomat yang setengah matang (berwarna jingga)

Page 3: Deteksi Kematangan Buah Tomat

Mengetahui Fitur Warna

Fitur warna pada gambar bisa dihasilkan menggunakan histogram warna.

Harus dicoba terlebih dahulu histogram warna yang mana yang bisa mengenali warna hijau, merah dan jingga

Fitur warna yang dihasilkan harus mampu mengabaikan latar belakang.

Page 4: Deteksi Kematangan Buah Tomat

Histogram R-G-B

clearn=[1 41 81];

for i=1:3m=n(i);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);r=x(:,:,1);g=x(:,:,2);b=x(:,:,3);hr=imhist(r);hg=imhist(g);hb=imhist(b);h=[hr' hg' hb'];h=h/max(h);subplot(3,2,2*i-1), imshow(x)subplot(3,2,2*i), bar(h), grid, axis([0 768 0 1])

end

Page 5: Deteksi Kematangan Buah Tomat

Histogram Warna R-G-B

0 200 400 6000

0.5

1

0 200 400 6000

0.5

1

0 200 400 6000

0.5

1

Perhatikan ketiga histogram di atas:- Sangat sulit membedakan mana yang hijau, merah dan jingga- Histogram R-G-B tidak maksimal bila digunakan

Page 6: Deteksi Kematangan Buah Tomat

Histogram Index

clear;n=[1 41 81];

for i=1:3m=n(i);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);xd=double(x);y=floor(xd/64);u=y(:,:,3)+4*y(:,:,2)+16*y(:,:,1);nx=size(u);w=reshape(u,nx(1)*nx(2),1);h=hist(w,64);h=h/max(h);subplot(3,2,2*i-1), imshow(x)subplot(3,2,2*i), bar(h), grid, axis([0 64 0 1])

end

Page 7: Deteksi Kematangan Buah Tomat

Histogram Index

Perhatikan ketiga histogram di atas:- Histogram index sudah menunjukkan perbedaan warna hijau,

merah dan jingga- Pemilihan jumlah index warna sangat berpengaruh

Page 8: Deteksi Kematangan Buah Tomat

Histogram Referensi

clearn=[1 41 81];wref=[255 0 0; 128 0 0; 0 255 0; 0 128 0; 0 0 255;

0 0 128; 255 255 0; 255 0 255; 0 255 255; 0 0 0; 255 255 255];

nref=10;

for i=1:3m=n(i);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);xd=double(x);nx=size(x);h=zeros(nref,1);for k1=1:n(1)

for k2=1:n(2)r=xd(k1,k2,1);g=xd(k1,k2,2);b=xd(k1,k2,3);

Page 9: Deteksi Kematangan Buah Tomat

Histogram Referensi

dmin=50000;kmin=0;for k3=1:nref

d2=(r-wref(k3,1))^2+(g-wref(k3,2))^2+(b-wref(k3,3))^2;

d=sqrt(d2);if(d<dmin)

dmin=d;kmin=k3;

endendh(kmin)=h(kmin)+1;

endendh=h/max(h);subplot(3,2,2*i-1), imshow(x)subplot(3,2,2*i), bar(h), grid, axis([0 nref 0 1])

end

Page 10: Deteksi Kematangan Buah Tomat

Histogram Referensi

Perhatikan ketiga histogram di atas:- Histogram referensi masih belum bisa menunjukkan perbedaan

warna hijau, merah dan jingga- Pemilihan jumlah warna referensi sangat berpengaruh

1 2 3 4 5 6 7 8 9 100

0.5

1

1 2 3 4 5 6 7 8 9 100

0.5

1

1 2 3 4 5 6 7 8 9 100

0.5

1

Page 11: Deteksi Kematangan Buah Tomat

Histogram Hue Index

clearn=[2 41 81];

for i=1:3m=n(i);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);subplot(3,2,2*i-1), imshow(x)subplot(3,2,2*i), bar(h), grid, axis([0 30 0 1])

end

Page 12: Deteksi Kematangan Buah Tomat

Histogram Referensi

Perhatikan ketiga histogram di atas:- Histogram Hue index dengan 30 warna bisa menunjukkan

perbedaan warna hijau, merah dan jingga

0 10 20 300

0.5

1

0 10 20 300

0.5

1

0 10 20 300

0.5

1

Page 13: Deteksi Kematangan Buah Tomat

Mendeteksi kematangan buah tomat menggunakan Histogram

Hue Index

Page 14: Deteksi Kematangan Buah Tomat

Menampilkan histogram dari masing-masing 4 gambar yang berbeda untuk setiap kematangan

clearn=[2 11 26 31; 41 51 61 71; 81 93 102 111];

for i=1:3for j=1:4m=n(i,j);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);subplot(4,6,6*(j-1)+2*i-1), imshow(x)subplot(4,6,6*(j-1)+2*i), bar(h), grid, axis([0 30 0 1])end

end

Page 15: Deteksi Kematangan Buah Tomat

Menampilkan histogram dari masing-masing 4 gambar yang berbeda untuk setiap kematangan

- Ada fitur-fitur umum yang ada pada semua citra yang mungkin disebabkan oleh latar belakang. Fitur semacam ini tidak baik untuk digunakan sebagai fitur citra.

- Ada fitur-fitur khusus yang ada pada setiap kelompok citra (hijau, merah, jingga), fitur inilah yang harus ditemukan.

Page 16: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Umum

Fitur umum ini biasanya ditimbulkan karena latar belakang yang seragam

Fitur ini tidak baik digunakan dalam proses deteksi atau identifikasi

Fitur umum ini ditunjukkan oleh kemunculan yang sama pada setiap histogram

Untuk mendapatkan fitur umum bisa digunakan proses interseksi atau dituliskan dengan:

Semua fitur harus dikurangi dengan fitur umum untuk mendapatkan fitur obyek yang sebenarnya.

,

Page 17: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Umumclearn=[2 11 26 31;41 51 61 71; 81 93 102 111];k=0;figure(1)for i=1:3

for j=1:4m=n(i,j);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);k=k+1; hs(k,:)=h;subplot(4,6,6*(j-1)+2*i-1), imshow(x)subplot(4,6,6*(j-1)+2*i), bar(h), grid, axis([0 30 0 1])end

endhumum=min(hs);figure(2), bar(humum), grid, axis([0 30 0 1]);

Page 18: Deteksi Kematangan Buah Tomat

Fitur Umum

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

Page 19: Deteksi Kematangan Buah Tomat

Simpan Fitur Umum

Fitur Umum ini disimpan ke dalam file agar bisa digunakan pada proses berikutnya tanpa menghitung ulang.

>> save humum

Page 20: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Setelah Dikurangi Fitur Umum

clearload humum;n=[2 11 26 31;41 51 61 71; 81 93 102 111];

k=0;for i=1:3

for j=1:4m=n(i,j);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);h=h-humum;subplot(4,6,6*(j-1)+2*i-1), imshow(x)subplot(4,6,6*(j-1)+2*i), bar(h), grid, axis([0 30 0 1])end

end

Page 21: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Setelah Dikurangi Fitur Umum

Perbedaan fitur dari setiap kelompok warna akan lebih terlihat setelah proses ini.

Page 22: Deteksi Kematangan Buah Tomat

Mencari Fitur Khusus Pada Setiap Kelompok Warna

Fitur khusus adalah fitur yang selalu muncul pada semua gambar yang ada dalam sebuah kelompok warna.

Prosesnya sama dengan mencari fitur umum hanya saja pada setiap kelompok warna yaitu dengan menghitung interseksi atau nilai minimum pada setiap indeks warna.

Fitur ini disimpan dalam file agar dalam proses identifikasi tidak perlu dihitung ulang.

>> save hk

,

Page 23: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Setelah Dikurangi Fitur Umum

clearload humum;n=[2 11 26 31;41 51 61 71; 81 93 102 111];

k=0;figure(1)for i=1:3

hs=zeros(4,30);for j=1:4m=n(i,j);namafile=strcat(int2str(m),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);h=h-humum;h=h/max(h);hs(j,:)=h;

Page 24: Deteksi Kematangan Buah Tomat

Mendapatkan Fitur Setelah Dikurangi Fitur Umum

subplot(4,6,6*(j-1)+2*i-1), imshow(x)subplot(4,6,6*(j-1)+2*i), bar(h), grid, axis([0 30 0 1])endhv=min(hs);hv=hv/max(hv);hk(i,:)=hv;

end

figure(2)for i=1:3

subplot(3,1,i), bar(hk(i,:)), grid, axis([0 30 0 1])end

Page 25: Deteksi Kematangan Buah Tomat

Fitur Pada Setiap Kelompok Warna

0 5 10 15 20 25 300

0.5

1

0 5 10 15 20 25 300

0.5

1

0 5 10 15 20 25 300

0.5

1

HIJAU

MERAH

JINGGA

Page 26: Deteksi Kematangan Buah Tomat

Proses Deteksi

Page 27: Deteksi Kematangan Buah Tomat

PROSES DETEKSI KEMATANGAN BUAH TOMAT

clearload humum;load hk;n=input('Nomor gambar = ');namafile=strcat(int2str(n),'.bmp');x=imread(namafile);y=rgb2hsv(x);yhue=y(:,:,1);nx=size(yhue);yh=reshape(yhue,nx(1)*nx(2),1);h=hist(yh,30);h=h/max(h);h=h-humum;h=h/max(h);dmin=50000;kmin=0;for i=1:3

d=sqrt(sum((h-hk(i,:)).^2));

Page 28: Deteksi Kematangan Buah Tomat

PROSES DETEKSI KEMATANGAN BUAH TOMAT

if(d<dmin)dmin=d;kmin=i;

endend

imshow(x)if(kmin==1)

title('HIJAU');endif(kmin==2)

title('MERAH');endif(kmin==3)

title('CAMPUR');end