Implementasi rata-rata vektor vertikal

41

2. Implementasi rata-rata vektor vertikal

Dibawah ini merupakan implementasi untuk mendapatkan ciri rata-rata vektor vertikal: Membagi dalam vektor veertikal obyek=1; sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; for i=1:n for k=1:piksel1 if hsli,k==obyek sum1=sum1+1; end end end for i=1:n for k=piksel1+1:piksel2 if hsli,k==obyek sum2=sum2+1; end end end for i=1:n for k=piksel2+1:piksel3 if hsli,k==obyek sum3=sum3+1; end end end for i=1:n for k=piksel3+1:piksel4 if hsli,k==obyek sum4=sum4+1; end end end for i=1:n for k=piksel4+11:piksel5 if hsli,k==obyek sum5=sum5+1; end end end for i=1:n for k=piksel5+1:piksel6 if hsli,k==obyek sum6=sum6+1; end end end for i=1:n 42 for k=piksel6+1:piksel7 if hsli,k==obyek sum7=sum7+1; end end end for i=1:n for k=piksel7+1:piksel8 if hsli,k==obyek sum8=sum8+1; end end h1 =sum1pembagi; h2 =sum2pembagi; h3 =sum3pembagi; h4 =sum4pembagi; h5 =sum5pembagi; h6 =sum6pembagi; h7 =sum7pembagi;h8 =sum8pembagi; end Untuk menyimpan nilai setiap vektor vertikal menggunakan variabel h1 sampai h8. Nilai vektor didapat dari jumlah piksel yang bernilai 1 di setiap vektor di bagi pembagi, yaitu 5000 didapat dari ukuran setiap vektor 25 x 200 piksel. Gambar 4. 7 Proses membagi citra kedalam vektor vertikal 43 Hasil rata-rata dari setiap vektor vertikal disimpan dalam matriks yang berukuran 1x8 seperti dibawah ini: Gambar 4. 8 Tabel Ekstrak Ciri Vektor Vertikal

4.1.4 Implementasi Ekstraksi Ciri Warna dan Rata-rata Vektor

Dibawah ini merupakan implementasi untuk mendapatkan ciri warna dan rata-rata vektor horizontal atau vertikal: Membaca Citra citra=imreadgambar; Memisahkan RGB dan mencari rata2 RGB serta Kadar RGB meanR=0; meanG=0; meanB=0; meanRGB=0; dR=citra:,:,1; dG=citra:,:,2; dB=citra:,:,3; meanR=meanmeandR; meanG=meanmeandG; meanB=meanmeandB; meanRGB=meanR+meanG+meanB3; Mengubah Citra RGB Menjadi Grayscale grey= rgb2graycitra; imshow grey; Melakukan deteksi tepi hsl= edgegrey, Canny ; Membagi dalam vektor obyek=1; sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; 44 for i=1:piksel1 for k=1:m if hsli,k==obyek sum1=sum1+1; end end end for i=piksel1+1:piksel2 for k=1:m if hsli,k==obyek sum2=sum2+1; end end end for i=piksel2+1:piksel3 for k=1:m if hsli,k==obyek sum3=sum3+1; end end end for i=piksel3+1:piksel4 for k=1:m if hsli,k==obyek sum4=sum4+1; end end end for i=piksel4+11:piksel5 for k=1:m if hsli,k==obyek sum5=sum5+1; end end end for i=piksel5+1:piksel6 for k=1:m if hsli,k==obyek sum6=sum6+1; end end end for i=piksel6+1:piksel7 for k=1:m if hsli,k==obyek sum7=sum7+1; end end end for i=piksel7+1:piksel8 for k=1:m if hsli,k==obyek sum8=sum8+1; end end for i=1:n 45 for k=1:piksel1 if hsli,k==obyek sum1=sum1+1; end end end for i=1:n for k=piksel1+1:piksel2 if hsli,k==obyek sum2=sum2+1; end end end for i=1:n for k=piksel2+1:piksel3 if hsli,k==obyek sum3=sum3+1; end end end for i=1:n for k=piksel3+1:piksel4 if hsli,k==obyek sum4=sum4+1; end end end for i=1:n for k=piksel4+11:piksel5 if hsli,k==obyek sum5=sum5+1; end end end for i=1:n for k=piksel5+1:piksel6 if hsli,k==obyek sum6=sum6+1; end end end for i=1:n for k=piksel6+1:piksel7 if hsli,k==obyek sum7=sum7+1; end end end for i=1:n for k=piksel7+1:piksel8 if hsli,k==obyek sum8=sum8+1; end end h1 =sum1pembagi; h2 =sum2pembagi; 46 h3 =sum3pembagi; h4 =sum4pembagi; h5 =sum5pembagi; h6 =sum6pembagi; h7 =sum7pembagi; h8 =sum8pembagi; end Hasil dari setiap ekstraksi ciri warna dan rata-rata vektor horizontal atau vertikal disimpan dalam vektor yang berukuran 1x12, seperti dibawah ini: Gambar 4. 9 Tabel Ekstrak Ciri Warna Vektor Horizontal Gambar 4. 10 Tabel Ekstrak Ciri Warna Vektor Vertikal Dari kolom ke-1 sampai kolom ke-12 merupakan nilai setiap ciri warna dan rata-rata vektor, dan kolom terakhir atau ke-13 menandakan kelas 47

4.1.5 Implementasi Klasifikasi menggunakan Naive Bayes

Dibawah ini merupakan implementasi untuk proses klasifikasi menggunakan algoritma Naive Bayes: load data.mat , data ; load data.mat , lv_size ; Data dimasukkan di dalam cell Cell menunjukkan class nCitraPerClass=str2doublegethandles.edJmlCitraPerKelas, St ring ; kelas=str2doublegethandles.edJmlDaerah, String ; jmlData=nCitraPerClasskelas; kfold=handles.kfold; nTest=floornCitraPerClasskfold [~,nData]=sizedata; dataTemp=[]; matriks kosong class=1; for i=1:jmlData looping untuk memisahkan data per kelas dalam masing2 cell if datai,nData==class dataTemp=[dataTemp;datai,:]; end if modi,nCitraPerClass == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end Data dalam setiap kelas dimasukan kedalam cell. Jumlah cell sesuai dengan jumlah kelas atau daerah yaitu terdapat 10 cell. Pembagian citra dalam setiap cell bertujuan untuk memudahkan membagi setiap 10 citra didalam satu kelas. Dibawah ini merupakan data citra yang telah dimasukan kedalam setiap cell: Gambar 4. 11 Data di dalam cell 48 idx1=1; batasan untuk ambil data testing idx2=nTest; batasan untuk ambil data testing sesuai dgn k- fold nBenar=0; menampung jumlah benar utk akurasi nSalah=0; menampung jumlah salah utk akurasi for z=1:nCitraPerClassnTest looping trainng testing Mencari std dan mean for i=1:class dataCell{i}=zscoredataCell{i}:,1:12; dataTest{i}=dataCell{i}idx1:idx2,:; mengambil data testing trainingTemp=dataCelli; mengambil data dari cell utk training semuanya trainingTemp{:}idx1:idx2,:=[]; ttaining=trainingTemp{:}; data dr trainingtemp dimasukan kdalam training rerataTraini,1:nData-1=meanttaining:,1:nData- 1; rerataTraini,nData=i; stdTraini,1:nData-1=stdttaining:,1:nData-1; stdTraini,nData=i; end Data citra dari hasil ekstraksi ciri yang telah dimasukan kedalam masing-masing cell digunakan untuk menentukan pengambilan data testing sesuai dengan k-fold. Data citra dari setiap cell juga digunakan sebagai data training dan digunakan untuk perhitungan mean dan stándar deviasi, seperti dibawah ini: Gambar 4. 12 Tabel Mean Ekstrak Ciri Warna Vektor Horizontal 49 Gambar 4. 13 Tabel Stándar Deviasi Ekstrak Ciri Warna Vektor Horizontal Nilai diatas merupakan nilai mean dan stándar deviasi dari setiap atribut dari ekstraksi ciri warna dan rata-rata vektor horizontal atau vertikal. Setiap satu baris nya merupakan nilai mean dan stándar deviasi dari satu kelas. naïve Bayes for i=1:class for j=1:nTest rerataTesting=dataTest{i}j,1:nData-1; stdTraining=stdTrain:,1:nData-1; rerataTraining=rerataTrain:,1:nData-1; [ idxLabel,hasilProbabilitas ] = bayesKustdTraining,rerataTraining,rerataTesting if idxLabel == i jika idxlabel hsil prob sama dengan kelas yg sdang di proses , mka nilai benar akan dijumlahkan nBenar=nBenar+1; end end end proses menentukan index dta testing idx1=idx1+nTest; idx2=idx2+nTest; end 50 Implementasi algoritma naïve Bayes [m,n]=sizestdTraining; bayesian=zerossizestdTraining1,1:end; for i=1:m for j=1:n bays1=1sqrt2pistdTrainingi,j; bays2=exp-rerataTesting1,j - rerataTrainingi,j22stdTrainingi,j2; bayesiani,j=bays1bays2; end end menghitung likelihood [idxLabel,hasilProbabilitas]=cariProbabilitasbayesian; function [idxLabel,hasilProbabilitas]=cariProbabilitasbayesian [mBayesian,nBayesian]=sizebayesian; likehood=zerosmBayesian,1; likehoodTempt=1; for k=1:mBayesian for l=1:nBayesian if bayesiank,l ~= 0 ~isnanbayesiank,l membatasi untuk supaya nilai 0 dan nan likehoodTempt=likehoodTemptbayesiank,l; end end likehoodk=likehoodTempt; likehoodTempt=1; end [mLikehood,~]=sizelikehood; probabilitas=zerossizelikehood; for k=1:mLikehood probabilitask=likehoodksumlikehood; end [hasilProbabilitas,idxLabel]=maxprobabilitas; end end Data testing diambil dari setiap kelas sesuai dengan pembagian k-fold seperti pada gambar dibawah ini: Gambar 4. 14 Data Testing Dalam Setiap Cell 51 Gambar 4. 15 Data Testing Dalam Satu Kelas Data testing dimasukan dalam proses perhitungan mengunakan Naive Bayes. Kemudian di cocokan dengan data training, untuk mengetahui kelas dari citra kain data testing. Gambar 4. 16 Hasil Probabilitas Gambar 4. 17 Hasil IdxLabel 52 Idxlabel merupakan label kelas pada setiap data testing. Jika Idxlabel dan hasil probabilitas sama dengan kelas yang sedang diproses, maka hasil benar. Seperti pada matriks diatas, idxlabel bernilai 1, brarti benar berada pada kelas 1.

4.1.6 Implementasi Akurasi

Dibawah ini merupakan implementasi dari proses akurasi: akurasi=nBenarjmlData100; mencari nilai akurasi sethandles.txtAcc, String ,num2strakurasi; Hasil akurasi klasifikasi citra menggunakan Naive Bayes dengan 5-fold, dan ekstraksi ciri warna dan vektor horizontal adalah sebagai berikut: Gambar 4. 18 Hasil Akurasi menggunakan 5-fold 4.1.7 Implementasi Klasifikasi Dari Data User Dibawah ini merupakan implementasi klasifikasi menggunakan data masukan dari user: piksel=25; nCitraPerClass=str2doublegethandles.edJmlCitraPerKelas, St ring ; [namaCitra, asalCitra] = uigetfile{ .jpg }, Pilih Citra ; [~,nDt]=sizedataTest; dataTest:,nDt+1=0; [~,nData]=sizedata; 53 dataTemp=[]; class=1; for i=1:lv_size:,1 if datai,nData==class dataTemp=[dataTemp;datai,:]; end if modi,nCitraPerClass == 0 dataCell{class}=dataTemp; class=class+1; dataTemp=[]; end end class=class-1; rerataTrain=zerosclass,class; stdTrain=zerosclass,class; for i=1:class rerataTraini,1:nData-1=meandataCell{i}:,1:nData- 1; rerataTraini,nData=i; stdTraini,1:nData-1=stddataCell{i}:,1:nData-1; stdTraini,nData=i; end testing=dataTest:,1:nDt; stdTraining=stdTrain:,1:nData-1; rerataTraining=rerataTrain:,1:nData-1; [idxLabel,hasilProbabilitas]= bayesKustdTraining,rerataTraining,testing; sethandles.txtKemiripan, String ,num2strhasilProbabilitas 100; Hasil dari implementasi klasifikasi dengan data citra dari user adalah seperti dibawah ini: Gambar 4. 19 Hasil Probabilitas Data Dari User 54 Gambar 4. 20 Hasil Klasifikasi Dari Data User Dari hasil diatas terlihat bahwa data masukan dari user di cocokkan dengan data citra yang telah diklasifikasi. Dan hasil dapat diketahui pula hasil probabilitas tertingginya dalam bentuk persen. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55

4.1.8 Implementasi Antar Muka

Dibawah ini merupakan Implementasi tampilan halaman klasifikasi kain tradisional nusantara dengan menggunakan algoritma Naive Bayes Classifier: Gambar 4. 21 Implementasi Antar Muka Klasifikasi Kain Tradisional Nusantara Dengan Menggunakan Naive Bayes Classifer Pada saat proses ekstraksi ciri telah selesai, maka akan muncul peringatan seperti pada gambar dibawah ini: Gambar 4. 22 Peringatan Ekstraksi Ciri Telah Selesai 56 BAB V PENGUJIAN DAN ANALISA SISTEM Pada bab ini akan dibahas mengenai hasil dari setiap proses ekstrak ciri, klasifikasi dan akurasi dari 2 data citra kain yang berbeda serta menganalisa keluaran dari masing-masing proses.

5.1 Data Ada dua jenis data citra yang digunakan dalam klasifikasi ini yaitu: