BAB IV : IMPLEMENTASI DAN ANALISA SISTEM
4.2. Implementasi Proses…
a. Implementasi algoritma ekstraksi ciri warna
Ciri warna diperoleh dari perhitungan rata-rata Red ( ), rata-rata Green
( ̅), rata-rata Blue ( ), kadar Red, kadar Green dan kadar Blue sehingga menghasilkan matrik 1x6. Algoritma ekstraksi ciri warna adalah sebagai berikut :
Implementasi algoritma ekstraksi ciriwarna dR = batik(:,:,1); dG = batik(:,:,2); dB = batik(:,:,3); meanR = mean(mean(dR)); meanG = mean(mean(dG)); meanB = mean(mean(dB));
kadarR = meanR/(meanR + meanG + meanB); kadarG = meanG/(meanR+meanG+meanB); kadarB = meanB/(meanR+meanG+meanB);
feature(y,:) =[meanR,meanG,meanB,kadarR,kadarG,kadarB];
Setiap komponen warna di ambil kemudian di cari rata- ratanya menggunakan
fungsi yang telah tersedia dalam matlab yaitu mean. Untuk mendapatkan masing
-masing kadar warna dengan membagi hasil rata warna terhadap jumlah
rata-rata ketiga warna. Contoh ekstraksi ciri warna dapat di lihat pada tabel 4.2
b. Implementasi algoritma informasi tepi
Pada ciri informasi tepidiperoleh matrik berukuran 1x16 yang merupakan
penjumlahan matrik secara vertikal dan horisontal dari matrik mean 8 vektor.
Implementasi algoritma ekstraksi ciriinformasi tepi dapat dilihat sebagai berikut :
for a =1:25
for b = 1:25
if(tepiGambar(a,b) == putih) sum1 = sum1+1; end
end
for c = 26:50
if(tepiGambar(a,c)== putih) sum2 = sum2+1; end
end
for d = 51:75
if(tepiGambar(a,d) == putih) sum3 = sum3+1; end
end
for e = 76 :100
if(tepiGambar(a,e)== putih) sum4 = sum4+1; end
for f = 101 : 125
if(tepiGambar(a,f)==putih) sum5 = sum5+1; end
end
for g = 126 : 150
if(tepiGambar(a,g) == putih) sum6 = sum6+1; end
end
for h = 151 : 175
if(tepiGambar(a,h) == putih) sum7 = sum7+1; end
end
for i = 176 : 200
if(tepiGambar(a,i) == putih) sum8 = sum8+1; end
end
end
mean1 = sum1/625; mean2 = sum2/625; mean3 = sum3/625; mean4 = sum4/625; mean5 = sum5/625; mean6 = sum6/625; mean7 = sum7/625; mean8 = sum8/625;
Ciri berupa 8 vektor horisontal dan 8 vektor vertikal di buat dengan cara
menelusuri per piksel dalam satu kolom yang berhenti pada setiap kelipatan 25
(piksel ke-25, 50, 75, 100, 125, 150, 175, dan 200) untuk membaginya menjadi 8
vektor vertikal yang sama besar. Hal yang sama juga dilakukan untuk vektor
horisontal. Tiap menemukan sebuah titik piksel 1 maka menambahkan 1 pada
variabel penghitung. Hal ini dilakukan untuk semua citra batik. Contoh hasil
ekstraksi ciri informasi tepi dapat di lihat pada tabel 4.3
c. Implementasi gabungan ciri warna dan informasi tepi
Gabungan ciri warna dan informasi tepi menghasilkan matrik 1 x 22 yang
merupakan hasil penjumlahan matrik 1 x 6 pada ciri warna dan matrik 1 x 16 pada
ciriinformasi tepi. Implementasi algoritma ekstraksi ciriwarna dan informasi tepi
dR = batik(:,:,1); dG = batik(:,:,2); dB = batik(:,:,3); meanR = mean(mean(dR)); meanG = mean(mean(dG)); meanB = mean(mean(dB));
kadarR = meanR/(meanR + meanG + meanB); kadarG = meanG/(meanR+meanG+meanB); kadarB = meanB/(meanR+meanG+meanB); meanRGB = (meanR+meanG+meanB)/3;
BW =rgb2gray(batik);
tepiGambar = edge(BW,'canny');
for a =1:25 for b = 1:25
if(tepiGambar(a,b) == putih) sum1 = sum1+1; end
end
for c = 26:50
if(tepiGambar(a,c)== putih) sum2 = sum2+1; end
end
for d = 51:75
if(tepiGambar(a,d) == putih) sum3 = sum3+1; end
end
for e = 76 :100
if(tepiGambar(a,e)== putih) sum4 = sum4+1; end
end
for f = 101 : 125
if(tepiGambar(a,f)==putih) sum5 = sum5+1; end
end
for g = 126 : 150
if(tepiGambar(a,g) == putih) sum6 = sum6+1; end
end
for h = 151 : 175
if(tepiGambar(a,h) == putih) sum7 = sum7+1; end
end
for i = 176 : 200
if(tepiGambar(a,i) == putih) sum8 = sum8+1; end
end
end
mean1 = sum1/625; mean2 = sum2/625; mean3 = sum3/625; mean4 = sum4/625; mean5 = sum5/625; mean6 = sum6/625; mean7 = sum7/625; mean8 = sum8/625;
Proses ekstraksi pada cirigabungan warna dan informasi tepi hampir sama dengan
ekstraksi warna dan ekstraksi informasi tepi, hanya saja kedua proses tersebut di
gabungkan sehingga memperoleh matrik 1x22. Contoh hasil ekstraksi gabungan
ciriwarna dan informasidapat di lihat pada tabel 4.4
d. Implementasi algoritma K-means
Hasil ekstraksi ciri kemudian di kelompokan untuk k=2,3,4,5,6 dan 7.
Implementasi algoritma K-meansclustering
[maxRow,maxCol] = size(feature); % p = randperm(size(feature,1)); for i = 1:k c(i,:)= feature(p(i),:); end temp = zeros(maxRow,1); while 1, aa = ListMatrik(feature,c);
[z,g]=min(aa,[],2); %mencari nilai minimum
if g==temp,
break; % menghentikan iterasi
else
temp=g; % mengcopy feature ke dalam variabel sementara
end for i=1:k f=find(g==i); if f c(i,:)=mean(feature(find(g==i),:),1); end end end hasil=g; end
Pada proses clustering, centroid awal ditentukan secara random kemudian
menghitung jarak centroid terhadap data dan mengelompokan berdasarkan jarak
minimum. Dari kelompok tersebut dicari kembali rata-ratanya, kemudian dihitung
jaraknya terhadap data, dikelompokan lagi berdasarkan jarak minimum dan di
kelompok yang berubah anggotanya atau konvergen. Contoh hasil clustering pada
k=2 untuk 10 kali percobaan yang dapat di lihat dalam tabel 4.5.
e. Implementasi algoritma dissimilarity
Perhitungan nilai dissimilarity dilakukan setelah proses clustering
selesai.
Implementasi algoritma dissimilarity
function [dissimilarity] = hitungDiss(hasilcluster,k) jum=0;
pr=perms(1:k);
[rowp colp]= size(pr);
[rowh colh] = size(hasilcluster);
for (colm = 1: colh-1) hasilSem=0; for (brs=1:rowh) if hasilcluster(brs,1) ~= hasilcluster(brs,(colm+1)) hasilSem(brs,1)=1; else hasilSem(brs,1)=0; end end kolomhsl =hasilcluster(:,colm+1); for (per = 1: rowp-1)
for(jj = 1 : rowh) for(ii = 1: colp)
if kolomhsl(jj) == pr(per,ii) item(jj,:)=pr(per+1,ii); end end end for(pjg=1:rowh) if hasilcluster(pjg,colm)~= item(pjg,1) hasilSem(pjg,per+1)=1; else hasilSem(pjg,per+1)=0; end end kolomhsl=item; end jum=sum(hasilSem);
[rowj colj] = size(jum); for(indek =1:colj)
if jum(indek)==min(jum) xx=indek; end end nilai(:,colm)=hasilSem(:,xx); end [rown coln]=size(nilai);
dissimilarity =(sum((sum(nilai))/rown))/coln;
end
Program di atas digunakan untuk menghitung nilai disimilaritas. Hasil
clustering pada kolom pertama dijadikan acuan sebagai pembanding dengan hasil
pengelompokan berikutnya. Nilai dissimilaritas diperoleh dengan rata-rata jumlah
perbandingan.
Dalam setiap ciri dilakukan 10 kali percobaan, untuk setiap percobaan
di cari nilai dissimilaritas terkecil yang di tandai dengan warna kuning pada tabel.
Nilai dissimilaritas terkecil menunjukan bahwa kelompok tersebut merupakan
kelompok ideal karena mempunyai nilai simmilaritas besar, yang berarti bahwa
sebagian besar data dalam kelompok tersebut adalah tetap atau tidak berpindah,
misalkan dalam percobaan dengan ciri warna pada percobaan 1, diperoleh hasil
seperti dalam tabel 4.1.
Tabel 4.1 Contoh hasil dissimilaritas pada percobaan 1
k Perc 1 2 0.0836 3 0.4249 4 0.1511 5 0.2498 6 0.2889 7 0.1698
Pada percobaan tersebut terdapat nilai dissimilaritas untuk
masing-masing k=2 sampai 7. Dari nilai tersebut di cari nilai dissimilaritas paling kecil
yaitu 0.0836 pada k=2 sehingga pada percobaan pertama, k =2 merupakan k ideal,
begitu juga untuk percobaan 2 sampai percobaan 10, kemudian di hitung jumlah k
yang memiliki nilai dissimilaritas paling kecil dengan jumlah terbanyak yang
Tabel 4.2 Contoh hasil ekstraksi ciri warna
M at rik ekstraksi w arna Dat a rat a-rat a
Red rat a-rat a Green rat a-rat a Blue kadar Red kadar Green kadar Blue Batik1 Batik2 Batik3 91.1666 82.8614 99.9966 62.4302 56.3780 73.2272 43.5056 40.1346 54.8650 0.4625 0.4619 0.4384 0.3167 0.3143 0.3210 0.2207 0.2237 0.2405
Tabel 4.3 Contoh hasil ekstraksi ciri untuk informasi tepi
M at rik ekst raksi infor masi t epi
dat a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Bat ik1 1x16 1,241 1,22 1,0464 1,1424 1,328 1,1104 1,1632 1,22240 1,04 1,26080 1,292 1,196800 1,246 1,078 1,2736 1,0384 Bat ik2 1x16 1,170 1,19 1,0992 1,09760 1,273 1,296 1,1230 1,25600 1,1 1,227 1,164 1,3936 1,345 1,129 1,1312 0,9680 Bat ik3 1x16 1,220 1,220 1,17280 1,3504 1,459 1,200 1,212 0,942 1,27 1,124 1,283 1,3776 1,217 1,251 1,192 1,0144
Tabel 4.4 Contoh hasil ekstraksi ciri untuk warna dan informasi tepi
M at rik ekst raksi w arna dan infor masi t epi
dat a Bat ik1 1x24 91.166 62.430 43.505 0.4625 0.3167 1.2416 0.2207 1.2240 1.0464 1.1424 1.3280 1.163 1.222 1.0448 1.2608 1.2928 1.1968 1.2464 1.0784 1.2736 1.2736 1.2736 Bat ik2 1x24 99.996 73.227 54.864 0.4384 0.3210 82.8614 56.3780 40.1346 0.4619 0.3143 0.2237 1.1904 1.0992 1.0976 1.2736 1.2960 1.1232 1.2560 1.3936 1.3456 1.1296 1.1312 Bat ik 3 1x24 99.996 73.2272 54.8650 0.4384 0.3210 0.2405 1.2208 1.2112 1.1728 1.3504 1.4592 1.2784 1.1248 1.2832 1.3776 1.2176 1.2512 1.1920 1.1920 1.1920 1.4592 1.3504
Tabel 4.5 Contoh hasil pengelompokan
Dat a Perc 1 Perc 2 Perc 3 Perc 4 Perc 5 Perc 6 Perc 7 Perc 8 Perc 9 Perc 10
Bat ik 1 1 2 2 2 2 1 1 2 1 1
Bat ik 2 1 2 2 2 2 1 1 2 1 1
Bat ik 3 1 2 2 2 2 1 1 2 1 1
Bat ik 4 1 2 2 2 2 1 1 2 1 1