• Tidak ada hasil yang ditemukan

BAB V KESIMPULAN DAN SARAN

5.2. Saran

Beberapa saran yang dapat diuraikan dalam pengenalan motif batik Yogyakarta yang didapati pada penelitian ini, yaitu:

1. Penelitian tentang pengenalan motif batik Yogyakarta ini masih sebatas pada pengenalan 20 motif batik Yogyakarta, sehingga diperlukan studi lanjut untuk menangani beberapa motif batik Yogyakarta dan terlebih lagi untuk menangani batik luar Yogyakarta.

2. Pengambilan data citra motif batik Yogyakarta yang kurang maksimal menjadi salah satu penyebab nilai akurasi tidak tinggi. Dalam pengolahan data motif batik tidak ada proses image enhancement, yaitu proses perbaikkan peningkatan warna kontras suatu image. Warna citra motif batik yang diambil cenderung gelap, sehingga nilai yang dihasilkan dalam proses pengolahan feature sebagian besar

mendekati antara motif batik yang satu dan yang lainnya. Oleh karena itu, proses image enhancement dan proses cropping yang pas sangat penting dalam proses pengambilan data citra motif batik.

3. Hasil akurasi yang tidak tinggi (sekitar 30%) juga karena feature yang digunakan masih kurang tepat dalam menangani pengenalan motif batik Yogyakarta ini. Seluruh kemungkinan feature harus dicoba untuk menghasilkan akurasi LDA yang terbaik.

DAFTAR PUSTAKA

Abdullah. (2007). Pengembangan Sistem Identifikasi Buah-Buahan Menggunakan Ciri Bentuk. Mean dan Standar Deviasi Warna. Jurnal Teknologi industry Vol. XI: 237-244.

Hamzahan, A., Santosa, G., dan Widiarto, W. (2002), Klasifikasi Objek dalam Visi Komputer dengan Analisis Diskriminan, 1 – 3.

Hariani, Meika P. (2007), Pengenalan Wajah Manusia Menggunakan Transformasi Wavelet dan LDA (Linear Discriminant Analysis),1.

Indira, Merly., dkk. (2008). Perbandingan Metode Pendeteksi tepi Studi Kasus: Citra USG Janin, 2 - 3.

Ginting, Elias Dianta. (2009). Deteksi Tepi Menggunakan metode Canny dengan Matlab untuk Membedakan Uang Asli dan Uang Palsu, 1 – 5.

Johnson, R. A. and Wichern, D. W. (1998), Applied Multivariate Statistical Analysis, Prentice Hall, Fourth Edition.

Li, C., Cao, Q., dan Guo, F. 2009. A Method for Color Classification of FruitsBased on Machine Vision. Shanghai: Shanghai Jiao Tong University.

Lim, Resmana. (2002), Pengenalan Karakter Tulisan Tangan Menggunakan Ekstrasi Fitur PCA dan LDA, 1 – 2.

Mei Chan, L., Tan, R., dan Thio, G. 2007. Design of Visual-based Color Classification System, School of Engineering, UCSI.

RiyNto Sigit, dkk. (2002), Aplikasi Neural Network pada Pengenalan Pola Tanda Tangan, Institut Teknologi Sepuluh November, Surabaya, Indonesia.

Santosa, Budi. (2007), Data Mining Teknik Pemanfaatan Data untuk Keperluan Bisnis, Graha Ilmu, Yogyakarta, 57 – 66.

Surahman, Adhi, (2006). Penyembunyian Teks pada Citra Dua Warna Menggunakan Steganografi, Politeknik Elektronika Negeri, Surabaya, Indonesia.

Wastu, Phalita Nari. (2009), Pengenalan Aksara Jawa Menggunakan Metode Hidden Markov Models.

Witten, Frank. (2005), Data Mining: Practical machine learning Tools and Techinigues.

Wongtapan, C., Theeramunkong, T., and Sinthupinyo, S. 2001. Off-line Isolated Handwritten Thai OCR Using Islandbased Projection with N-gram Models and HMM. IEE.

http://people.revoledu.com/kardi/tutorial/LDA/LinearDiscriminantAnalysis(LDA) Tutorial.html. Diakses pada tanggal: 31 Mei 2010.

LAMPIRAN I

1. Listing program hal_fase_pengenalan.m

function varargout = hal_fase_pengenalan(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @hal_fase_pengenalan_OpeningFcn, ... 'gui_OutputFcn', @hal_fase_pengenalan_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function hal_fase_pengenalan_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidata(hObject, handles);

function varargout = hal_fase_pengenalan_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function button_browse_Callback(hObject, eventdata, handles) set(handles.textFeature,'string',''); set(handles.text6,'string',''); set(handles.text7,'string',''); set(handles.text10,'string',''); set(handles.text11,'string',''); set(handles.text8,'string',''); set(handles.text12,'string',''); set(handles.text13,'string',''); set(handles.textDikenal,'string','');

[filename, pathname] = uigetfile({'*.jpg'}, 'File Selector'); charfilename = char(filename);

if isequal(filename,0)|isequal(pathname,0) errordlg('File not found.','Warning');

end;

image_file = get(handles.edit_browse,'String'); % Get the string inputs in the inEdit

current_data1=imread(char(image_file)); %read the image

if ~isequal(filename, 0)

handles.data1 = imread(fullfile(pathname, filename)); guidata(hObject, handles); handles.current_data1=handles.data1; axes(handles.gambar); imshow(handles.current_data1); else return; end

function edit_browse_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit_browse_Callback(hObject, eventdata, handles)

function pushbutton_proses_Callback(hObject, eventdata, handles) set(handles.textFeature,'string',''); set(handles.text6,'string',''); set(handles.text7,'string',''); set(handles.text8,'string',''); set(handles.text10,'string',''); set(handles.text11,'string',''); set(handles.text12,'string',''); set(handles.text13,'string',''); set(handles.textDikenal,'string','');

image_file=get(handles.edit_browse,'String'); %Get the string inputs in the inEdit

nama_file=char(image_file); display(nama_file);

if ~isempty(image_file)

set(handles.textFeature,'string','Sedang membentuk feature...');

createFeatureTest(nama_file); test2;

set(handles.text6,'string','Mencocokan dengan model...'); LDA_test;

2. Listing program hal_ pengujian.m

function varargout = hal_pengujian(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @hal_pengujian_OpeningFcn, ... 'gui_OutputFcn', @hal_pengujian_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function hal_pengujian_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidata(hObject, handles);

function varargout = hal_pengujian_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function popupmenuFeature_Callback(hObject, eventdata, handles) set(handles.text23,'string',''); set(handles.text40,'string',''); set(handles.textFeature,'string',''); set(handles.textProses,'string',''); set(handles.textProses2,'string',''); set(handles.textProses3,'string',''); set(handles.textProses4,'string',''); set(handles.textJumData,'string',''); set(handles.textDikenal,'string',''); set(handles.textTakDikenal,'string',''); set(handles.textAkurasi,'string','');

function popupmenuFeature_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

function pushbuttonUjiLDA_Callback(hObject, eventdata, handles) set(handles.text40,'string',''); set(handles.textFeature,'string',''); set(handles.textProses,'string',''); set(handles.textProses2,'string',''); set(handles.textProses3,'string',''); set(handles.textProses4,'string',''); set(handles.textJumData,'string',''); set(handles.textDikenal,'string',''); set(handles.textTakDikenal,'string',''); set(handles.textAkurasi,'string','');

selected_cmd = get(handles.popupmenuFeature,'Value');

set(handles.text23,'string','Sedang membentuk feature, mohon tunggu...');

pause (1);

switch selected_cmd;

case 1 % user selected feature 1x64

tic createFeature1x64; toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature rata-rata edge berhasil dibuat.');

readSemuaDirektori_1x64;

set(handles.textProses,'string','Sedang memproses fase pengujian...');

pause (1);

TrainingLDA_1x64; jumlahTotalConfusion; pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

case 2 % user selected feature 1x8 Horizontal (H)

tic createFeature1x8_H; toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature rata-rata edge Horizontal (H) berhasil dibuat.');

readSemuaDirektori_1x8H;

set(handles.textProses,'string','Sedang memproses fase pengujian...');

pause (1);

TrainingLDA_Horizontal; jumlahTotalConfusion; pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

case 3 % user selected feature 1x8 Vertikal (V)

tic createFeature1x8_V; toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature rata-rata edge Vertikal (V) berhasil dibuat.');

pause (1);

readSemuaDirektori_1x8V;

set(handles.textProses,'string','Sedang memproses fase pengujian...');

pause (1);

TrainingLDA_Vertikal; jumlahTotalConfusion; pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

case 4 % user selected feature 1x8H_1x8V

tic createFeature1x8_V_H(); toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature rata-rata vertikal dan horizontal berhasil dibuat.');

pause (1);

readSemuaDirektori_1x8VH;

set(handles.textProses,'string','Sedang memproses fasepengujian...');

pause (1); TrainingLDA_VH;

jumlahTotalConfusion; pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

case 5 % user selected feature 1x64_1x8H_1x8V

tic createFeature1x64_H_V(); toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature gabungan rata-rata edge dan rata-rata-rata-rata vertikal horizontal berhasil dibuat.'); pause (1);

readSemuaDirektori_1x64_1x8VH;

set(handles.textProses,'string','Sedang memproses fase pengujian...');

pause (1);

TrainingLDA_1x64_VH; jumlahTotalConfusion; pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

case 6 % user selected feature Warna_1x8H_1x8V_1x64

tic createFeatureWarna_H_V(); toc waktu = toc; array=[num2str(waktu) 'detik']; pause (1);

set(handles.text40,'string',array); pause (1);

set(handles.textFeature,'string','Feature warna,rata-rata edge,dan rata-rata vertikal horizontal berhasil dibuat.');

pause (1);

readSemuaDirektori_warna_1x64_1x8VH;

set(handles.textProses,'string','Sedang memproses fase pengujian...');

pause (1);

TrainingLDA_warna1x64_VH; jumlahTotalConfusion;

pause (1);

set(handles.textProses3,'string','Seluruh training selesai...');

set(handles.textProses4,'string','Proses fase pengujian selesai.');

end

3. Listing program createFeature1x64.m

function createFeature1x64()

dirData={'data_1'; 'data_2'; 'data_3'; 'data_4'; 'data_5'; ... 'data_6'; 'data_7'; 'data_8'; 'data_9'; 'data_10'; ... 'data_11'; 'data_12'; 'data_13'; 'data_14'; 'data_15'; ... 'data_16'; 'data_17'; 'data_18'; 'data_19'; 'data_20';};

for m=1:length(dirData)

%masuk ke direktori dan membaca file cd(dirData{m});

fileJpg = dir('*.jpg'); %ambil file *.jpg jum_jpg = length(fileJpg); for n=1:length(fileJpg) batik = imread(fileJpg(n).name); info=[]; gray=rgb2gray(batik);

motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny tinggi=size(motif,1);

lebar=size(motif,2);

%penghitung kepadatan

sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0; sum16=0;

sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0; sum24=0;

sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0; sum32=0;

sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0; sum40=0;

sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0; sum48=0;

sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0; sum56=0;

sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0; sum64=0; obyek = 1; for i=1:25 for j=1:25

menemukan obyek end end for i=1:25 for j=26:50

if (motif(i,j)==obyek) sum2=sum2+1; end end

end for i=1:25 for j=51:75

if (motif(i,j)==obyek) sum3=sum3+1; end end

end for i=1:25 for j=76:100

if (motif(i,j)==obyek) sum4=sum4+1; end end

end for i=1:25

for j=101:125

if (motif(i,j)==obyek) sum5=sum5+1; end end

end for i=1:25

for j=126:150

if (motif(i,j)==obyek) sum6=sum6+1; end end

end for i=1:25

for j=151:175

if (motif(i,j)==obyek) sum7=sum7+1; end end

end for i=1:25

for j=176:200

if (motif(i,j)==obyek) 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;

for i=26:50 for j=1:25

if (motif(i,j)==obyek) sum9=sum9+1; end %tambahkan 1 tiap menemukan obyek end end for i=26:50 for j=26:50

if (motif(i,j)==obyek) sum10=sum10+1; end end end for i=26:50 for j=51:75

if (motif(i,j)==obyek) sum11=sum11+1; end end

end

for i=26:50 for j=76:100

if (motif(i,j)==obyek) sum12=sum12+1; end end

end

for i=26:50 for j=101:125

if (motif(i,j)==obyek) sum13=sum13+1; end end

end

for i=26:50 for j=126:150

if (motif(i,j)==obyek) sum14=sum14+1; end end

end

for i=26:50 for j=151:175

if (motif(i,j)==obyek) sum15=sum15+1; end end

end

for i=26:50 for j=176:200

if (motif(i,j)==obyek) sum16=sum16+1; end end

end

mean9=sum9/625; mean10=sum10/625; mean11=sum11/625; mean12=sum12/625;

mean13=sum13/625; mean14=sum14/625; mean15=sum15/625; mean16=sum16/625;

for i=51:75 for j=1:25

if (motif(i,j)==obyek) sum17=sum17+1; end %tambahkan 1 tiap menemukan obyek end end ... for i=51:75 for j=176:200

end end

mean17=sum17/625; mean18=sum18/625; mean19=sum19/625; mean20=sum20/625;

mean21=sum21/625; mean22=sum22/625; mean23=sum23/625; mean24=sum24/625;

for i=76:100 for j=1:25

if (motif(i,j)==obyek) sum25=sum25+1; end %tambahkan 1 tiap menemukan obyek end end ... for i=76:100 for j=176:200

if (motif(i,j)==obyek) sum32=sum32+1; end end

end

mean25=sum25/625; mean26=sum26/625; mean27=sum27/625; mean28=sum28/625;

mean29=sum29/625; mean30=sum30/625; mean31=sum31/625; mean32=sum32/625;

for i=101:125 for j=1:25

if (motif(i,j)==obyek) sum33=sum33+1; end %tambahkan 1 tiap menemukan obyek end end ... for i=101:125 for j=176:200

if (motif(i,j)==obyek) sum40=sum40+1; end end

end

mean33=sum33/625; mean34=sum34/625; mean35=sum35/625; mean36=sum36/625;

mean37=sum37/625; mean38=sum38/625; mean39=sum39/625; mean40=sum40/625;

for i=126:150 for j=1:25

if (motif(i,j)==obyek) sum41=sum41+1; end end

end ...

for i=126:150 for j=176:200

if (motif(i,j)==obyek) sum48=sum48+1; end end

end

mean41=sum41/625; mean42=sum42/625; mean43=sum43/625; mean44=sum44/625;

mean45=sum45/625; mean46=sum46/625; mean47=sum47/625; mean48=sum48/625;

for i=151:175 for j=1:25

if (motif(i,j)==obyek) sum49=sum49+1; end end end ... for i=151:175 for j=176:200

if (motif(i,j)==obyek) sum56=sum56+1; end end

end

mean49=sum49/625; mean50=sum50/625; mean51=sum51/625; mean52=sum52/625;

mean53=sum53/625; mean54=sum54/625; mean55=sum55/625; mean56=sum56/625;

for i=176:200 for j=1:25

if (motif(i,j)==obyek) sum57=sum57+1; end end end ... for i=176:200 for j=176:200

if (motif(i,j)==obyek) sum64=sum64+1; end end

end

mean57=sum57/625; mean58=sum58/625; mean59=sum59/625; mean60=sum60/625;

mean61=sum61/625; mean62=sum62/625; mean63=sum63/625; mean64=sum64/625;

%hasil rata-rata dimasukkan dalam variabel info

info = [info, mean1, mean2, mean3, mean4, mean5, mean6, mean7, mean8, mean9, mean10,...

mean11, mean12, mean13, mean14, mean15, mean16, mean17, mean18, mean19, mean20,...

mean21, mean22, mean23, mean24, mean25, mean26, mean27, mean28, mean29, mean30,...

mean31, mean32, mean33, mean34, mean35, mean36, mean37, mean38, mean39, mean40,...

mean41, mean42, mean43, mean44, mean45, mean46, mean47, mean48, mean49, mean50,...

mean51, mean52, mean53, mean54, mean55, mean56, mean57, mean58, mean59, mean60,...

mean61, mean62, mean63, mean64];

%hasil feature ke dalam .nw

nama_file =[num2str(m) '_' num2str(n) '.a']; fid1=fopen(nama_file,'w'); fwrite(fid1, [num2str(info)]); fclose(fid1); end cd ..; end

4. Listing program createFeature_1x64_H_V.m

function createFeature1x64_H_V(jum)

dirData={'data_1'; 'data_2'; 'data_3'; 'data_4'; 'data_5'; ... 'data_6'; 'data_7'; 'data_8'; 'data_9'; 'data_10'; ... 'data_11'; 'data_12'; 'data_13'; 'data_14'; 'data_15'; ... 'data_16'; 'data_17'; 'data_18'; 'data_19'; 'data_20';};

for m=1:length(dirData)

%masuk ke direktori dan membaca file cd(dirData{m});

fileJpg = dir('*.jpg'); %ambil file *.jpg jum_jpg = length(fileJpg); for n=1:length(fileJpg) batik = imread(fileJpg(n).name); info=[]; gray=rgb2gray(batik);

motif = edge(gray, 'canny'); %deteksi tepi menggunakan canny tinggi=size(motif,1);

lebar=size(motif,2);

%penghitung kepadatan

sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0; sum16=0;

sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0; sum24=0;

sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0; sum32=0;

sum40=0;

sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0; sum48=0;

sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0; sum56=0;

sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0; sum64=0; obyek = 1; for i=1:25 for j=1:25

if (motif(j,i)==obyek) sum1=sum1+1; end %tambahkan 1 tiap menemukan obyek end end for i=1:25 for j=26:50

if (motif(j,i)==obyek) sum2=sum2+1; end end

end for i=1:25 for j=51:75

if (motif(j,i)==obyek) sum3=sum3+1; end end

end for i=1:25 for j=76:100

if (motif(j,i)==obyek) sum4=sum4+1; end end

end for i=1:25

for j=101:125

if (motif(j,i)==obyek) sum5=sum5+1; end end

end for i=1:25

for j=126:150

if (motif(j,i)==obyek) sum6=sum6+1; end end

end for i=1:25

for j=151:175

if (motif(j,i)==obyek) sum7=sum7+1; end end

end for i=1:25

for j=176:200

if (motif(j,i)==obyek) sum8=sum8+1; 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; meanTotV1=(mean1+mean2+mean3+mean4+mean5+mean6+mean7+mean8)/8;

for i=26:50 for j=1:25

if (motif(j,i)==obyek) sum9=sum9+1; end end end ... for i=26:50 for j=176:200

if (motif(j,i)==obyek) sum16=sum16+1; end end

end

mean9=sum9/625; mean10=sum10/625; mean11=sum11/625; mean12=sum12/625;

mean13=sum13/625; mean14=sum14/625; mean15=sum15/625; mean16=sum16/625; meanTotV2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8; for i=51:75 for j=1:25

if (motif(j,i)==obyek) sum17=sum17+1; end end end ... for i=51:75 for j=176:200

if (motif(j,i)==obyek) sum24=sum24+1; end end

end

mean17=sum17/625; mean18=sum18/625; mean19=sum19/625; mean20=sum20/625;

mean21=sum21/625; mean22=sum22/625; mean23=sum23/625; mean24=sum24/625; meanTotV3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8; for i=76:100 for j=1:25

if (motif(j,i)==obyek) sum25=sum25+1; end end end ... for i=76:100 for j=176:200

end end

mean25=sum25/625; mean26=sum26/625; mean27=sum27/625; mean28=sum28/625;

mean29=sum29/625; mean30=sum30/625; mean31=sum31/625; mean32=sum32/625; meanTotV4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8; for i=101:125 for j=1:25

if (motif(j,i)==obyek) sum33=sum33+1; end end end ... for i=101:125 for j=176:200

if (motif(j,i)==obyek) sum40=sum40+1; end end

end

mean33=sum33/625; mean34=sum34/625; mean35=sum35/625; mean36=sum36/625;

mean37=sum37/625; mean38=sum38/625; mean39=sum39/625; mean40=sum40/625; meanTotV5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8; for i=126:150 for j=1:25

if (motif(j,i)==obyek) sum41=sum41+1; end end end ... for i=126:150 for j=176:200

if (motif(j,i)==obyek) sum48=sum48+1; end end

end

mean41=sum41/625; mean42=sum42/625; mean43=sum43/625; mean44=sum44/625;

mean45=sum45/625; mean46=sum46/625; mean47=sum47/625; mean48=sum48/625; meanTotV6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8; for i=151:175 for j=1:25

if (motif(j,i)==obyek) sum49=sum49+1; end end

end

...

for i=151:175 for j=176:200

if (motif(j,i)==obyek) sum56=sum56+1; end end

end

mean49=sum49/625; mean50=sum50/625; mean51=sum51/625; mean52=sum52/625;

mean53=sum53/625; mean54=sum54/625; mean55=sum55/625; mean56=sum56/625; meanTotV7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8; for i=176:200 for j=1:25

if (motif(j,i)==obyek) sum57=sum57+1; end end end ... for i=176:200 for j=176:200

if (motif(j,i)==obyek) sum64=sum64+1; end end

end

mean57=sum57/625; mean58=sum58/625; mean59=sum59/625; mean60=sum60/625;

mean61=sum61/625; mean62=sum62/625; mean63=sum63/625; mean64=sum64/625;

meanTotV8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;

%rata-rata untuk 1x8 horizontal meanTotH1=(mean1+mean9+mean17+mean25+mean33+mean41+mean49+mean57)/8; meanTotH2=(mean2+mean10+mean18+mean26+mean34+mean42+mean50+mean58)/8; meanTotH3=(mean3+mean11+mean19+mean27+mean35+mean43+mean51+mean59)/8; meanTotH4=(mean4+mean12+mean20+mean28+mean36+mean44+mean52+mean60)/8; meanTotH5=(mean5+mean13+mean21+mean29+mean37+mean45+mean53+mean61)/8; meanTotH6=(mean6+mean14+mean22+mean30+mean38+mean46+mean54+mean62)/8; meanTotH7=(mean7+mean15+mean23+mean31+mean39+mean47+mean55+mean63)/8; meanTotH8=(mean8+mean16+mean24+mean32+mean40+mean48+mean56+mean64)/8;

info = [info, mean1, mean2, mean3, mean4, mean5, mean6, mean7, mean8, mean9, mean10,...

mean11, mean12, mean13, mean14, mean15, mean16, mean17, mean18, mean19, mean20,...

mean21, mean22, mean23, mean24, mean25, mean26, mean27, mean28, mean29, mean30,...

mean31, mean32, mean33, mean34, mean35, mean36, mean37, mean38, mean39, mean40,...

mean41, mean42, mean43, mean44, mean45, mean46, mean47, mean48, mean49, mean50,...

mean51, mean52, mean53, mean54, mean55, mean56, mean57, mean58, mean59, mean60,...

mean61, mean62, mean63, mean64, meanTotV1, meanTotV2, meanTotV3, meanTotV4, meanTotV5, meanTotV6,...

meanTotV7, meanTotV8, meanTotH1, meanTotH2, meanTotH3, meanTotH4, meanTotH5, meanTotH6, meanTotH7, meanTotH8];

%hasil feature ke dalam .nw

nama_file =[num2str(m) '_' num2str(n) '.avh']; fid1=fopen(nama_file,'w'); fwrite(fid1, [num2str(info)]); fclose(fid1); end cd ..; end

5. Listing program createFeature_1x8H.m

function createFeature1x8_H()

dirData={'data_1'; 'data_2'; 'data_3'; 'data_4'; 'data_5'; ... 'data_6'; 'data_7'; 'data_8'; 'data_9'; 'data_10'; ... 'data_11'; 'data_12'; 'data_13'; 'data_14'; 'data_15'; ... 'data_16'; 'data_17'; 'data_18'; 'data_19'; 'data_20';};

for m=1:length(dirData)

%masuk ke direktori dan membaca file cd(dirData{m});

fileJpg = dir('*.jpg'); %ambil file *.jpg jum_jpg = length(fileJpg);

for n=1:length(fileJpg)

batik = imread(fileJpg(n).name); %baca citra

info=[];

gray=rgb2gray(batik); motif=edge(gray,'canny');

tinggi=size(motif,1); %hitung tinggi citra lebar=size(motif,2); %hitung lebar citra

%penghitung kepadatan

sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0; sum16=0;

sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0; sum24=0;

sum32=0;

sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0; sum40=0;

sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0; sum48=0;

sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0; sum56=0;

sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0; sum64=0; obyek = 1; for i=1:25 for j=1:25

if (motif(i,j)==obyek) sum1=sum1+1; end %tambahkan 1 tiap menemukan obyek end end for i=1:25 for j=26:50

if (motif(i,j)==obyek) sum2=sum2+1; end end

end for i=1:25 for j=51:75

if (motif(i,j)==obyek) sum3=sum3+1; end end

end for i=1:25 for j=76:100

if (motif(i,j)==obyek) sum4=sum4+1; end end

end for i=1:25

for j=101:125

if (motif(i,j)==obyek) sum5=sum5+1; end end

end for i=1:25

for j=126:150

if (motif(i,j)==obyek) sum6=sum6+1; end end

end for i=1:25

for j=151:175

if (motif(i,j)==obyek) sum7=sum7+1; end end

end for i=1:25

for j=176:200

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; meanTot1=(mean1+mean2+mean3+mean4+mean5+mean6+mean7+mean8)/8;

for i=26:50 for j=1:25

if (motif(i,j)==obyek) sum9=sum9+1; end end end ... for i=26:50 for j=176:200

if (motif(i,j)==obyek) sum16=sum16+1; end end

end

mean9=sum9/625; mean10=sum10/625; mean11=sum11/625; mean12=sum12/625;

mean13=sum13/625; mean14=sum14/625; mean15=sum15/625; mean16=sum16/625; meanTot2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8; for i=51:75 for j=1:25

if (motif(i,j)==obyek) sum17=sum17+1; end end end ... for i=51:75 for j=176:200

if (motif(i,j)==obyek) sum24=sum24+1; end end

end

mean17=sum17/625; mean18=sum18/625; mean19=sum19/625; mean20=sum20/625;

mean21=sum21/625; mean22=sum22/625; mean23=sum23/625; mean24=sum24/625; meanTot3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8; for i=76:100 for j=1:25

if (motif(i,j)==obyek) sum25=sum25+1; end end end ... for i=76:100

for j=176:200

if (motif(i,j)==obyek) sum32=sum32+1; end end

end

mean25=sum25/625; mean26=sum26/625; mean27=sum27/625; mean28=sum28/625;

mean29=sum29/625; mean30=sum30/625; mean31=sum31/625; mean32=sum32/625; meanTot4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8; for i=101:125 for j=1:25

if (motif(i,j)==obyek) sum33=sum33+1; end end end ... for i=101:125 for j=176:200

if (motif(i,j)==obyek) sum40=sum40+1; end end

end

mean33=sum33/625; mean34=sum34/625; mean35=sum35/625; mean36=sum36/625;

mean37=sum37/625; mean38=sum38/625; mean39=sum39/625; mean40=sum40/625; meanTot5=(mean33+mean34+mean35+mean36+mean37+mean38+mean39+mean40)/8; for i=126:150 for j=1:25

if (motif(i,j)==obyek) sum41=sum41+1; end end end ... for i=126:150 for j=176:200

if (motif(i,j)==obyek) sum48=sum48+1; end end

end

mean41=sum41/625; mean42=sum42/625; mean43=sum43/625; mean44=sum44/625;

mean45=sum45/625; mean46=sum46/625; mean47=sum47/625; mean48=sum48/625; meanTot6=(mean41+mean42+mean43+mean44+mean45+mean46+mean47+mean48)/8; for i=151:175 for j=1:25

if (motif(i,j)==obyek) sum49=sum49+1; end end

end ... for i=151:175 for j=176:200

if (motif(i,j)==obyek) sum56=sum56+1; end end

end

mean49=sum49/625; mean50=sum50/625; mean51=sum51/625; mean52=sum52/625;

mean53=sum53/625; mean54=sum54/625; mean55=sum55/625; mean56=sum56/625; meanTot7=(mean49+mean50+mean51+mean52+mean53+mean54+mean55+mean56)/8; for i=176:200 for j=1:25

if (motif(i,j)==obyek) sum57=sum57+1; end end end ... for i=176:200 for j=176:200

if (motif(i,j)==obyek) sum64=sum64+1; end end

end

mean57=sum57/625; mean58=sum58/625; mean59=sum59/625; mean60=sum60/625;

mean61=sum61/625; mean62=sum62/625; mean63=sum63/625; mean64=sum64/625;

meanTot8=(mean57+mean58+mean59+mean60+mean61+mean62+mean63+mean64)/8;

%hasil rata-rata dimasukkan dalam variabel nfo

info = [info, meanTot1, meanTot2, meanTot3, meanTot4, meanTot5, meanTot6, meanTot7, meanTot8];

%hasil feature ke dalam .nw

nama_file =[num2str(m) '_' num2str(n) '.h']; fid1=fopen(nama_file,'w'); fwrite(fid1, [num2str(info)]); fclose(fid1); end cd ..; end

6. Listing program createFeature_1x8_V.m

function createFeature1x8_V()

dirData={'data_1'; 'data_2'; 'data_3'; 'data_4'; 'data_5'; ... 'data_6'; 'data_7'; 'data_8'; 'data_9'; 'data_10'; ... 'data_11'; 'data_12'; 'data_13'; 'data_14'; 'data_15'; ... 'data_16'; 'data_17'; 'data_18'; 'data_19'; 'data_20';};

for m=1:length(dirData)

%masuk ke direktori dan membaca file cd(dirData{m});

fileJpg = dir('*.jpg'); %ambil file *.jpg jum_jpg = length(fileJpg);

for n=1:length(fileJpg)

batik = imread(fileJpg(n).name); %baca citra

info=[]; % matriks info kepadatan gray=rgb2gray(batik); motif=edge(gray,'canny'); tinggi=size(motif,1); lebar=size(motif,2); %penghitung kepadatan

sum1=0; sum2=0; sum3=0; sum4=0; sum5=0; sum6=0; sum7=0; sum8=0; sum9=0; sum10=0; sum11=0; sum12=0; sum13=0; sum14=0; sum15=0; sum16=0;

sum17=0; sum18=0; sum19=0; sum20=0; sum21=0; sum22=0; sum23=0; sum24=0;

sum25=0; sum26=0; sum27=0; sum28=0; sum29=0; sum30=0; sum31=0; sum32=0;

sum33=0; sum34=0; sum35=0; sum36=0; sum37=0; sum38=0; sum39=0; sum40=0;

sum41=0; sum42=0; sum43=0; sum44=0; sum45=0; sum46=0; sum47=0; sum48=0;

sum49=0; sum50=0; sum51=0; sum52=0; sum53=0; sum54=0; sum55=0; sum56=0;

sum57=0; sum58=0; sum59=0; sum60=0; sum61=0; sum62=0; sum63=0; sum64=0;

meanTot1=0; meanTot2=0; meanTot3=0; meanTot4=0; meanTot5=0; meanTot6=0; meanTot7=0; meanTot8=0;

obyek = 1; for i=1:25 for j=1:25

if (motif(j,i)==obyek) sum1=sum1+1; end %tambahkan 1 tiap menemukan obyek end end for i=1:25 for j=26:50

if (motif(j,i)==obyek) sum2=sum2+1; end end

end for i=1:25 for j=51:75

end end for i=1:25 for j=76:100

if (motif(j,i)==obyek) sum4=sum4+1; end end

end for i=1:25

for j=101:125

if (motif(j,i)==obyek) sum5=sum5+1; end end

end for i=1:25

for j=126:150

if (motif(j,i)==obyek) sum6=sum6+1; end end

end for i=1:25

for j=151:175

if (motif(j,i)==obyek) sum7=sum7+1; end end

end for i=1:25

for j=176:200

if (motif(j,i)==obyek) 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; meanTot1=(mean1+mean2+mean3+mean4+mean5+mean6+mean7+mean8)/8;

for i=26:50 for j=1:25

if (motif(j,i)==obyek) sum9=sum9+1; end end end ... for i=26:50 for j=176:200

if (motif(j,i)==obyek) sum16=sum16+1; end end

end

mean9=sum9/625; mean10=sum10/625; mean11=sum11/625; mean12=sum12/625;

mean13=sum13/625; mean14=sum14/625; mean15=sum15/625; mean16=sum16/625;

meanTot2=(mean9+mean10+mean11+mean12+mean13+mean14+mean15+mean16)/8;

for i=51:75 for j=1:25

if (motif(j,i)==obyek) sum17=sum17+1; end end end ... for i=51:75 for j=176:200

if (motif(j,i)==obyek) sum24=sum24+1; end end

end

mean17=sum17/625; mean18=sum18/625; mean19=sum19/625; mean20=sum20/625;

mean21=sum21/625; mean22=sum22/625; mean23=sum23/625; mean24=sum24/625; meanTot3=(mean17+mean18+mean19+mean20+mean21+mean22+mean23+mean24)/8; for i=76:100 for j=1:25

if (motif(j,i)==obyek) sum25=sum25+1; end end end ... for i=76:100 for j=176:200

if (motif(j,i)==obyek) sum32=sum32+1; end end

end

mean25=sum25/625; mean26=sum26/625; mean27=sum27/625; mean28=sum28/625;

mean29=sum29/625; mean30=sum30/625; mean31=sum31/625; mean32=sum32/625; meanTot4=(mean25+mean26+mean27+mean28+mean29+mean30+mean31+mean32)/8; for i=101:125 for j=1:25

if (motif(j,i)==obyek) sum33=sum33+1; end end end ... for i=101:125 for j=176:200

if (motif(j,i)==obyek) sum40=sum40+1; end

Dokumen terkait