• Tidak ada hasil yang ditemukan

Identifikasi Seseorang Berdasarkan Citra Pembuluh Darah Menggunakan Ekstraksi Fitur Local Derivative Pattern dan Algoritma PCA.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Identifikasi Seseorang Berdasarkan Citra Pembuluh Darah Menggunakan Ekstraksi Fitur Local Derivative Pattern dan Algoritma PCA."

Copied!
63
0
0

Teks penuh

(1)

IDENTIFIKASI SESEORANG BERDASARKAN CITRA

PEMBULUH DARAH MENGGUNAKAN EKSTRAKSI FITUR

LOCAL DERIVATIVE PATTERN DAN ALGORITMA PCA

Muhamad Fikri (0822090)

Jurusan Teknik Elektro Universitas Kristen Maranatha

email:

fikri.chik@gmail.com

ABSTRAK

Semakin berkembangnya teknik biometrik menjadikan beragam pula anggota

tubuh yang dapat digunakan untuk mengenali seseorang, diantaranya pembuluh darah

pada tangan. Karena keunikan polanya, pembuluh darah dapat digunakan dalam

sistem Identifikasi. Pada Tugas Akhir ini diujikan sebuah metode untuk melakukan

identifikasi seseorang berdasarkan citra pembuluh darah menggunakan ekstraksi fitur

Local Derivative Pattern dan algoritma PCA. Citra pembuluh darah diperoleh

menggunakan kamera inframerah, selanjutnya pada setiap citra pembuluh darah

dilakukan ekstraksi Local Derivative Pattern dan dicari nilai eigenfaces yang

digunakan sebagai database. Untuk mengetahui tingkat akurasi dari perangkat lunak

yang dibuat, dilakukanlah pengujian menggunakan 30 citra uji dari individu yang ada

dalam database. Hasil pengujian menunjukkan persentase FRR sebesar 13,33%

Kata kunci : Identifikasi, Citra Pembuluh Darah, Ekstraksi fitur, Local

Derivative Pattern (LDP), Eigenface, FRR, FAR

(2)

IDENTIFICATION OF A PERSON BASED ON VEIN IMAGE

USING LOCAL DERIVATIVE PATTERN FEATURE EXTRACTION

AND PCA ALGORITHM

Muhamad Fikri(0822090)

Department of Electrical Engineering Maranatha Christian University

email:

fikri.chik@gmail.com

ABSTRACT

The development of biometric techniques make the diverse members of the

body which can also be used to identify a person, including veins of the hand.

Because of this uniqueness, veins can be used in the identification system. In this

final project tested a method for identifying of a person based on vein image using

Local Derivative Pattern feature extraction and PCA algorithm. Vein image is

obtained using an infrared camera, next to each vein image performed the extraction

of Local Derivative Pattern And sought value eigenfaces used as a database. To

determine the level of accuracy of software made, be used testing with 30 test images

of individuals that exist in the database. Test results show the percentage 13.33% of

FRR

Keywords :

Identification, Vein Image, Feature Extraction, Local Derivative

Pattern (LDP), Eigenface, FAR, FRR

(3)

DAFTAR ISI

LEMBAR PENGESAHAN

PERNYATAAN ORISINALITAS LAPORAN

PERNYATAAN PUBLIKASI LAPORAN TUGAS AKHIR

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR... iii

DAFTAR ISI... v

DAFTAR GAMBAR... vii

DAFTAR TABEL ... viii

BAB I PENDAHULUAN

1.1. Latar Belakang Masalah... 1

1.2. Identifikasi Masalah ... 1

1.3. Perumusan Masalah ... 2

1.4. Tujuan ... 2

1.5. Pembatasan Masalah ... 2

1.6. Sistematika Penulisan ... 3

BAB II LANDASAN TEORI

2.1. Biometrik ... 4

2.2

Pembuluh Darah Vena ... 5

2.3. Pengolahan Citra ... 6

2.4. Representasi Citra Digital ... 7

2.4.1 Konvensi Koordinat ... 7

2.4.2 Citra Sebagai Matrik ... 8

2.5. Ekstraksi Fitur Citra ... 9

2.6. Local Derivative Pattern (LDP)... 9

(4)

2.7. Principal Component Analysis (PCA) ... 12

2.8. Distance (Jarak) ... 14

2.9. False Acceptance Rate (FAR) dan False Rejected Rate (FRR)... 14

BAB III PERANCANGAN PERANGKAT LUNAK

3.1. Sistem Perancangan ... 16

3.2. Diagram Alir (flowchart) ... 17

3.2.1 Diagram Alir Pembentukan Database... 17

3.2.2 Diagram Alir Pengujian ... 20

3.3. Penentuan Nilai Threshold... 20

3.4. Perancangan Antarmuka Pemakai ... 23

BAB IV PENGUJIAN DAN ANALISA DATA

4.1. Pengujian... 26

4.2. Analisa Data ... 32

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan ... 34

5.2. Saran... 34

DAFTAR PUSTAKA ... 35

LAMPIRAN A LIST PROGRAM PADA MATLAB ... A

LAMPIRAN B KUMPULAN CITRA... B

(5)

DAFTAR GAMBAR

Gambar 2.1 Pembuluh Darah Vena pada Manusia ... 6

Gambar 2.2 (a) Citra burung nuri agak gelap, (b) Citra burung nuri setelah

dilakukan pengolahan citra ... 7

Gambar 2.3 Konvensi Sistem Koordinat Citra ... 8

Gambar 2.4 Contoh Untuk Menentukan Biner Dari Suatu Citra Uji ... 10

Gambar 2.5 Contoh Untuk Menentukan Biner LDP... 10

Gambar 2.6 (a) digunakan untuk menghitung 0

0

, ref 1 = *, ref 2 =

, (b)

digunakan untuk menghitung 45

0

, ref 1 = *, ref 2 =

,(c)

digunakan untuk menghitung 90

0

,ref 1 = *, ref 2 =

dan

(d) digunakan untuk menghitung 135

0

ref 1 = *, ref 2 =

.

ref 1 dan ref 2 digunakan sebagai titik point Zo ... 11

Gambar 2.7 Grafik untuk menandakan nilai biner, (a) Grafik (a-1) dan

(b-

1) menandakan nilai biner “1”, (b) Grafik (a

-2) dan (b-2)

menandakan nilai

biner “0”

... 12

Gambar 3.1 Diagram Blok Sistem Untuk Database ... 16

Gambar 3.2 Diagram Blok Sistem Untuk Proses Identifikasi... 16

Gambar 3.3 Diagram Alir Pembentukan Database Citra Referensi ... 17

Gambar 3.4 Diagram Alir Ektraksi Ciri Local Derivative Pattern (LDP) ... 18

Gambar 3.5 Diagram Alir Eigenfaces ... 19

Gambar 3.6 Diagram Alir Pengujian ... 20

Gambar 3.7 Rancangan Tampilan Perangkat Lunak... 24

Gambar 4.1 Citra Digunakan Sebagai Database ... 26

Gambar 4.2 Citra Uji Dalam Database ... 26

Gambar 4.3 Tampilan Aplikasi Untuk Seseorang Yang Teridentifikasi ... 27

Gambar 4.4 Tampilan Aplikasi Untuk Seseorang Yang Tidak Teridentifikasi .... 28

(6)

DAFTAR TABEL

Tabel 3.1 Pengujian Untuk Menentukan Nilai Threshold ... 21

Tabel 3.2 Nilai Jarak Euclidean Rata

Rata dari Tiap Individu ... 22

Tabel 3.3 Penjelasan Rancangan Tampilan Perangkat Lunak ... 24

Tabel 4.1 Pengujian Menggunakan Citra Yang Digunakan Sebagai Database .... 28

Tabel 4.2 Pengujian Menggunakan Citra Yang Ada Dalam Database ... 30

(7)

LAMPIRAN A

(8)

1.

Program Ekstraksi Local Derivative Pattern (LDP)

A = dir('C:\MATLAB\R2012a\bin\database\*.jpg'); % folder citra referensi

T=[];

for i = 1 : length(A)

namafile = fullfile('C:\MATLAB\R2012a\bin\database',A(i).name); I = imread(namafile);

vein=imresize(I,[100 100]);

M=rgb2gray(vein); % ubah citra ke bentuk grayscale w=size(M,1); %lebar citra

h=size(M,2); %tinggi citra

% ektraksi LDP for i=3:w-2

for j=3:h-2

if M(i+1,j+1)>M(i+1,j) && M(i,j)>M(i,j-1); I1= 0;

elseif M(i+1,j+1)<M(i+1,j) && M(i,j)<M(i,j-1); I1=0;

elseif M(i+1,j+1)>M(i+1,j) && M(i,j)<M(i,j-1); I1=1;

else M(i+1,j+1)<M(i+1,j) && M(i,j)>M(i,j-1); I1=1;

end

if M(i+1,j)>M(i+1,j-1) && M(i,j)>M(i,j-1); I2= 0;

elseif M(i+1,j)<M(i+1,j-1) && M(i,j)<M(i,j-1); I2=0;

elseif M(i+1,j)>M(i+1,j-1) && M(i,j)<M(i,j-1); I2=1;

else M(i+1,j)<M(i+1,j-1) && M(i,j)>M(i,j-1); I2=1;

end

if M(i+1,j-1)>M(i+1,j-2) && M(i,j)>M(i,j-1); I3=0;

elseif M(i+1,j-1)<M(i+1,j-2) && M(i,j)<M(i,j-1); I3=0;

elseif M(i+1,j-1)>M(i+1,j-2) && M(i,j)<M(i,j-1); I3=1;

else M(i+1,j-1)<M(i+1,j-2) && M(i,j)>M(i,j-1); I3=1;

end

if M(i,j)>M(i,j-1) && M(i,j-1)>M(i,j-2); I4= 0;

elseif M(i,j)<M(i,j-1) && M(i,j-1)<M(i,j-2); I4=0;

elseif M(i,j)>M(i,j-1) && M(i,j-1)<M(i,j-2); I4=1;

else M(i,j)<M(i,j-1) && M(i,j-1)>M(i,j-2); I4=1;

(9)

if M(i,j)>M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=1;

else M(i,j)<M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=1;

else M(i,j)<M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=1;

else M(i,j)<M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7=1;

End

if M(i,j+1)>M(i,j) && M(i,j)>M(i,j-1); I8=0;

elseif M(i,j+1)<M(i,j) && M(i,j)<M(i,j-1); I8=0;

elseif M(i,j+1)>M(i,j) && M(i,j)<M(i,j-1); I8=1;

else M(i,j+1)<M(i,j) && M(i,j)>M(i,j-1); I8=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10=1;

(10)

if M(i,j)>M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=1;

end

if M(i,j)>M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12= 0;

elseif M(i,j)<M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=0;

elseif M(i,j)>M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=1;

else M(i,j)<M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14=1;

end

if M(i-1,j+1)>M(i,j) && M(i,j)>M(i+1,j-1); I15= 0;

elseif M(i-1,j+1)<M(i,j) && M(i,j)<M(i+1,j-1); I15=0;

elseif M(i-1,j+1)>M(i,j) && M(i,j)<M(i+1,j-1); I15=1;

else M(i-1,j+1)<M(i,j) && M(i,j)>M(i+1,j-1); I15=1;

end

if M(i,j+1)>M(i+1,j) && M(i,j)>M(i+1,j-1); I16=0;

elseif M(i,j+1)<M(i+1,j) && M(i,j)<M(i+1,j-1); I16=0;

elseif M(i,j+1)>M(i+1,j) && M(i,j)<M(i+1,j-1); I16=1;

else M(i,j+1)<M(i+1,j) && M(i,j)>M(i+1,j-1); I16=1;

(11)

if M(i,j)>M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=1;

else M(i,j)<M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j)>M(i+2,j); I18= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j)<M(i+2,j); I18=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j)<M(i+2,j); I18=1;

else M(i,j)<M(i+1,j) && M(i+1,j)>M(i+2,j); I18=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=0;

elseif M(i,j)<M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=1;

else M(i,j)<M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=1;

end

if M(i,j)>M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20= 0;

elseif M(i,j)<M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=0;

elseif M(i,j)>M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=1;

else M(i,j)<M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20=1;

end

if M(i,j)>M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21= 0;

elseif M(i,j)<M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=0;

elseif M(i,j)>M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=1;

else M(i,j)<M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21=1;

end

if M(i-1,j)>M(i,j) && M(i,j)>M(i+1,j); I22= 0;

elseif M(i-1,j)<M(i,j) && M(i,j)<M(i+1,j); I22=0;

elseif M(i-1,j)>M(i,j) && M(i,j)<M(i+1,j); I22=1;

(12)

I22=1; end

if M(i-1,j+1)>M(i,j+1) && M(i,j)>M(i+1,j); I23= 0;

elseif M(i-1,j+1)<M(i,j+1) && M(i,j)<M(i+1,j); I23=0;

elseif M(i-1,j+1)>M(i,j+1) && M(i,j)<M(i+1,j); I23=1;

else M(i-1,j+1)<M(i,j+1) && M(i,j)>M(i+1,j); I23=1;

end

if M(i,j+1)>M(i+1,j+1) && M(i,j)>M(i+1,j); I24=0;

elseif M(i,j+1)<M(i+1,j+1) && M(i,j)<M(i+1,j); I24=0;

elseif M(i,j+1)>M(i+1,j+1) && M(i,j)<M(i+1,j); I24=1;

else M(i,j+1)<M(i+1,j+1) && M(i,j)>M(i+1,j); I24=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=1;

end

if M(i,j)>M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28= 0;

elseif M(i,j)<M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=0;

elseif M(i,j)>M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=1;

else M(i,j)<M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28=1;

(13)

if M(i-1,j-1)>M(i,j) && M(i,j)>M(i-1,j-1); I29= 0;

elseif M(i-1,j-1)<M(i,j) && M(i,j)<M(i-1,j-1); I29=0;

elseif M(i-1,j-1)>M(i,j) && M(i,j)<M(i-1,j-1); I29=1;

else M(i-1,j-1)<M(i,j) && M(i,j)>M(i-1,j-1); I29=1;

end

if M(i-1,j)>M(i,j+1) && M(i,j)>M(i+1,j+1); I30= 0;

elseif M(i-1,j)<M(i,j+1) && M(i,j)<M(i+1,j+1); I30=0;

elseif M(i-1,j)>M(i,j+1) && M(i,j)<M(i+1,j+1); I30=1;

else M(i-1,j)<M(i,j+1) && M(i,j)>M(i+1,j+1); I30=1;

end

if M(i-1,j+1)>M(i,j+2) && M(i,j)>M(i+1,j+1); I31= 0;

elseif M(i-1,j+1)<M(i,j+2) && M(i,j)<M(i+1,j+1); I31=0;

elseif M(i-1,j+1)>M(i,j+2) && M(i,j)<M(i+1,j+1); I31=1;

else M(i-1,j+1)<M(i,j+2) && M(i,j)>M(i+1,j+1); I31=1;

end

if M(i,j+1)>M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=0;

elseif M(i,j+1)<M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=0;

elseif M(i,j+1)>M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=1;

else M(i,j+1)<M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=1;

end

LDP(i,j)=I1*2^31+I2*2^30+I3*2^29+I4*2^28+I5*2^27+I6*2^26+I7*2^25+I 8*2^24+I9*2^23+I10*2^22+I11*2^21+I12*2^20+I13*2^19+I14*2^18+I15*2^ 17+I16*2^16+I17*2^15+I18*2^14+I19*2^13+I20*2^12+I21*2^11+I22*2^10+ I23*2^9+I24*2^8+I25*2^7+I26*2^6+I27*2^5+I28*2^4+I29*2^3+I30*2^2+I3 1*2^1+I32*2^0;

end end

[baris kolom] = size(LDP);

temp = reshape(LDP',baris*kolom,1); % mengubah ukuran citra 2D menjadi 1D

T = [T temp]; end

coba=T;

(14)

2.

Program Menentukan Eigenfaces

load coba.mat % memanggil citra hasil Ekstraksi LDP T=coba; % citra berukuran NxP

m = mean(T,2); % menghitung nilai rata - rata dari citra pembuluh darah

jumlah_percobaan = size(T,2); A = [];

for i = 1 : jumlah_percobaan

selisih = double(T(:,i)) - m; % menghitung selisih antara citra rata - rata dengan citra hasil ekstraksi LDP

A = [A selisih]; % menggabungkan setiap citra selisih end

C = A'*A; % menentukan nilai covariance matrik

[V D] = eig(C); % menentukan nilai eigen dan vektor eigen C_eigen_vektor = V; % mengambil nilai vektor eigen

Eigenfaces = A * C_eigen_vektor; % menentukan nilai eigenfaces

save 'C:\MATLAB\R2012a\bin\Eigenfaces' Eigenfaces;

3.

Program pengujian

load Eigenfaces.mat % memanggil nilai eigenfaces load coba.mat % memanggil citra hasil Ekstraksi LDP

T=coba;

m = mean(T,2); % menghitung nilai rata - rata dari citra pembuluh darah

jumlah_percobaan = size(T,2); A = [];

for i = 1 : jumlah_percobaan

selisih = double(T(:,i)) - m; % menghitung selisih antara citra rata - rata dengan citra hasil ekstraksi LDP

A = [A selisih]; % menggabungkan setiap citra selisih end

proyeksicitra = [];

jumlah_percobaan = size(A,2); for i = 1 : jumlah_percobaan

temp = Eigenfaces'*A(:,i); % menggabungkan setiap citra proyeksi

proyeksicitra = [proyeksicitra temp]; end

% ektraksi LDP dan mencari nilai eigenfaces dari citra uji I=imread('C:\MATLAB\R2012a\bin\database\04-IMG-02.jpg');

vein=imresize(I,[100 100]); M=rgb2gray(vein);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

if M(i+1,j+1)>M(i+1,j) && M(i,j)>M(i,j-1); I1= 0;

(15)

elseif M(i+1,j+1)>M(i+1,j) && M(i,j)<M(i,j-1); I1=1;

else M(i+1,j+1)<M(i+1,j) && M(i,j)>M(i,j-1); I1=1;

end

if M(i+1,j)>M(i+1,j-1) && M(i,j)>M(i,j-1); I2= 0;

elseif M(i+1,j)<M(i+1,j-1) && M(i,j)<M(i,j-1); I2=0;

elseif M(i+1,j)>M(i+1,j-1) && M(i,j)<M(i,j-1); I2=1;

else M(i+1,j)<M(i+1,j-1) && M(i,j)>M(i,j-1); I2=1;

end

if M(i+1,j-1)>M(i+1,j-2) && M(i,j)>M(i,j-1); I3=0;

elseif M(i+1,j-1)<M(i+1,j-2) && M(i,j)<M(i,j-1); I3=0;

elseif M(i+1,j-1)>M(i+1,j-2) && M(i,j)<M(i,j-1); I3=1;

else M(i+1,j-1)<M(i+1,j-2) && M(i,j)>M(i,j-1); I3=1;

end

if M(i,j)>M(i,j-1) && M(i,j-1)>M(i,j-2); I4= 0;

elseif M(i,j)<M(i,j-1) && M(i,j-1)<M(i,j-2); I4=0;

elseif M(i,j)>M(i,j-1) && M(i,j-1)<M(i,j-2); I4=1;

else M(i,j)<M(i,j-1) && M(i,j-1)>M(i,j-2); I4=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=1;

else M(i,j)<M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=1;

else M(i,j)<M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7= 0;

(16)

I7=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=1;

else M(i,j)<M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7=1;

end

if M(i,j+1)>M(i,j) && M(i,j)>M(i,j-1); I8=0;

elseif M(i,j+1)<M(i,j) && M(i,j)<M(i,j-1); I8=0;

elseif M(i,j+1)>M(i,j) && M(i,j)<M(i,j-1); I8=1;

else M(i,j+1)<M(i,j) && M(i,j)>M(i,j-1); I8=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=1;

end

if M(i,j)>M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12= 0;

elseif M(i,j)<M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=0;

elseif M(i,j)>M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=1;

else M(i,j)<M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13= 0;

(17)

I13=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14=1;

end

if M(i-1,j+1)>M(i,j) && M(i,j)>M(i+1,j-1); I15= 0;

elseif M(i-1,j+1)<M(i,j) && M(i,j)<M(i+1,j-1); I15=0;

elseif M(i-1,j+1)>M(i,j) && M(i,j)<M(i+1,j-1); I15=1;

else M(i-1,j+1)<M(i,j) && M(i,j)>M(i+1,j-1); I15=1;

end

if M(i,j+1)>M(i+1,j) && M(i,j)>M(i+1,j-1); I16=0;

elseif M(i,j+1)<M(i+1,j) && M(i,j)<M(i+1,j-1); I16=0;

elseif M(i,j+1)>M(i+1,j) && M(i,j)<M(i+1,j-1); I16=1;

else M(i,j+1)<M(i+1,j) && M(i,j)>M(i+1,j-1); I16=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=1;

else M(i,j)<M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j)>M(i+2,j); I18= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j)<M(i+2,j); I18=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j)<M(i+2,j); I18=1;

else M(i,j)<M(i+1,j) && M(i+1,j)>M(i+2,j); I18=1;

end

(18)

elseif M(i,j)<M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=1;

else M(i,j)<M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=1;

end

if M(i,j)>M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20= 0;

elseif M(i,j)<M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=0;

elseif M(i,j)>M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=1;

else M(i,j)<M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20=1;

end

if M(i,j)>M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21= 0;

elseif M(i,j)<M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=0;

elseif M(i,j)>M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=1;

else M(i,j)<M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21=1;

end

if M(i-1,j)>M(i,j) && M(i,j)>M(i+1,j); I22= 0;

elseif M(i-1,j)<M(i,j) && M(i,j)<M(i+1,j); I22=0;

elseif M(i-1,j)>M(i,j) && M(i,j)<M(i+1,j); I22=1;

else M(i-1,j)<M(i,j) && M(i,j)>M(i+1,j); I22=1;

end

if M(i-1,j+1)>M(i,j+1) && M(i,j)>M(i+1,j); I23= 0;

elseif M(i-1,j+1)<M(i,j+1) && M(i,j)<M(i+1,j); I23=0;

elseif M(i-1,j+1)>M(i,j+1) && M(i,j)<M(i+1,j); I23=1;

else M(i-1,j+1)<M(i,j+1) && M(i,j)>M(i+1,j); I23=1;

end

if M(i,j+1)>M(i+1,j+1) && M(i,j)>M(i+1,j); I24=0;

elseif M(i,j+1)<M(i+1,j+1) && M(i,j)<M(i+1,j); I24=0;

elseif M(i,j+1)>M(i+1,j+1) && M(i,j)<M(i+1,j); I24=1;

else M(i,j+1)<M(i+1,j+1) && M(i,j)>M(i+1,j); I24=1;

end

(19)

I25= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=1;

end

if M(i,j)>M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28= 0;

elseif M(i,j)<M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=0;

elseif M(i,j)>M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=1;

else M(i,j)<M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28=1;

end

if M(i-1,j-1)>M(i,j) && M(i,j)>M(i-1,j-1); I29= 0;

elseif M(i-1,j-1)<M(i,j) && M(i,j)<M(i-1,j-1); I29=0;

elseif M(i-1,j-1)>M(i,j) && M(i,j)<M(i-1,j-1); I29=1;

else M(i-1,j-1)<M(i,j) && M(i,j)>M(i-1,j-1); I29=1;

end

if M(i-1,j)>M(i,j+1) && M(i,j)>M(i+1,j+1); I30= 0;

elseif M(i-1,j)<M(i,j+1) && M(i,j)<M(i+1,j+1); I30=0;

elseif M(i-1,j)>M(i,j+1) && M(i,j)<M(i+1,j+1); I30=1;

else M(i-1,j)<M(i,j+1) && M(i,j)>M(i+1,j+1); I30=1;

(20)

if M(i-1,j+1)>M(i,j+2) && M(i,j)>M(i+1,j+1); I31= 0;

elseif M(i-1,j+1)<M(i,j+2) && M(i,j)<M(i+1,j+1); I31=0;

elseif M(i-1,j+1)>M(i,j+2) && M(i,j)<M(i+1,j+1); I31=1;

else M(i-1,j+1)<M(i,j+2) && M(i,j)>M(i+1,j+1); I31=1;

end

if M(i,j+1)>M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=0;

elseif M(i,j+1)<M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=0;

elseif M(i,j+1)>M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=1;

else M(i,j+1)<M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=1;

end

LDP(i,j)=I1*2^31+I2*2^30+I3*2^29+I4*2^28+I5*2^27+I6*2^26+I7*2^25+I 8*2^24+I9*2^23+I10*2^22+I11*2^21+I12*2^20+I13*2^19+I14*2^18+I15*2^ 17+I16*2^16+I17*2^15+I18*2^14+I19*2^13+I20*2^12+I21*2^11+I22*2^10+ I23*2^9+I24*2^8+I25*2^7+I26*2^6+I27*2^5+I28*2^4+I29*2^3+I30*2^2+I3 1*2^1+I32*2^0;

end end

[irow icol] = size(LDP);

citra_1D = reshape(LDP',irow*icol,1);

selisih_uji = double(citra_1D) - m; % selisih hasil ektraksi LDP dengan citra rata - rata

proyeksi_citra_uji = Eigenfaces' * selisih_uji; % vektor fitur citra uji

% menghitung euclidean distance minimum

Euc_dist = [];

for i = 1 : jumlah_percobaan q = proyeksicitra(:,i);

jarak = sqrt(sum((proyeksi_citra_uji - q).^2)); Euc_dist = [Euc_dist jarak];

end

[Euc_dist_min , indeks_pengenalan] = min(Euc_dist);

keluaran_citra = strcat(int2str(indeks_pengenalan),'.jpg') H=Euc_dist_min;

threshold=2.184158e+22; if H>threshold

B=imread('C:\MATLAB\R2012a\bin\salah.jpg') figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji')

end

if indeks_pengenalan==1 && H<=threshold

(21)

figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji')

end

if indeks_pengenalan==2 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==3 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==4 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==5 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==6 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==7 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==8 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==9 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==10 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==11 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==12 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-02.jpg'); figure;imshow(B);

(22)

if indeks_pengenalan==13 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==14 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==15 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==16 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==17 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==18 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==19 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==20 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==21 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==22 && H<threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==23 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==24 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-04.jpg'); figure;imshow(B);

(23)

end

if indeks_pengenalan==25 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==26 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\06-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==27 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\06-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==28 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\06-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==29 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\06-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==30 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\06-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==31 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\07-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==32 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\07-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==33 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\07-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

(24)

B=imread('C:\MATLAB\R2012a\bin\database\07-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==35 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\07-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==36 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\08-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==37 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\08-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==38 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\08-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==39 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\08-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==40 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\08-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==41 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\09-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

(25)

B=imread('C:\MATLAB\R2012a\bin\database\09-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==43 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\09-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==44 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\09-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==45 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\09-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==46 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\10-IMG-01.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==47 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\10-IMG-02.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==48 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\10-IMG-03.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

if indeks_pengenalan==49 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\10-IMG-04.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

(26)

B=imread('C:\MATLAB\R2012a\bin\database\10-IMG-05.jpg'); figure;imshow(B);

title('Gambar hasil pengenalan dari gambar uji') end

4. Program Pengujian Pada GUI

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) [filename,pathname]=uigetfile({'*.jpg';'*.png*';'.jpeg;*';'.tif'}, 'Choose image:');

I= imread([pathname,filename]); handles.I=I;

guidata(hObject,handles); axes(handles.axes1);

set(handles.edit1,'string',filename); imshow(I);

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

C= imresize(handles.I, [100 100]); M= rgb2gray(C);

guidata(hObject,handles) %R= imadjust(G,[],[],0.8); %M=histeq(R);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

% untuk 0 derajat

if M(i+1,j+1)>M(i+1,j) && M(i,j)>M(i,j-1); I1= 0;

elseif M(i+1,j+1)<M(i+1,j) && M(i,j)<M(i,j-1); I1=0;

elseif M(i+1,j+1)>M(i+1,j) && M(i,j)<M(i,j-1); I1=1;

else M(i+1,j+1)<M(i+1,j) && M(i,j)>M(i,j-1); I1=1;

end

if M(i+1,j)>M(i+1,j-1) && M(i,j)>M(i,j-1); I2= 0;

elseif M(i+1,j)<M(i+1,j-1) && M(i,j)<M(i,j-1); I2=0;

elseif M(i+1,j)>M(i+1,j-1) && M(i,j)<M(i,j-1); I2=1;

else M(i+1,j)<M(i+1,j-1) && M(i,j)>M(i,j-1); I2=1;

(27)

if M(i+1,j-1)>M(i+1,j-2) && M(i,j)>M(i,j-1); I3=0;

elseif M(i+1,j-1)<M(i+1,j-2) && M(i,j)<M(i,j-1); I3=0;

elseif M(i+1,j-1)>M(i+1,j-2) && M(i,j)<M(i,j-1); I3=1;

else M(i+1,j-1)<M(i+1,j-2) && M(i,j)>M(i,j-1); I3=1;

end

if M(i,j)>M(i,j-1) && M(i,j-1)>M(i,j-2); I4= 0;

elseif M(i,j)<M(i,j-1) && M(i,j-1)<M(i,j-2); I4=0;

elseif M(i,j)>M(i,j-1) && M(i,j-1)<M(i,j-2); I4=1;

else M(i,j)<M(i,j-1) && M(i,j-1)>M(i,j-2); I4=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=1;

else M(i,j)<M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=1;

else M(i,j)<M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=1;

else M(i,j)<M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7=1;

end

if M(i,j+1)>M(i,j) && M(i,j)>M(i,j-1); I8=0;

elseif M(i,j+1)<M(i,j) && M(i,j)<M(i,j-1); I8=0;

elseif M(i,j+1)>M(i,j) && M(i,j)<M(i,j-1); I8=1;

else M(i,j+1)<M(i,j) && M(i,j)>M(i,j-1); I8=1;

(28)

LDP1(i,j)=I1*2^31+I2*2^30+I3*2^29+I4*2^28+I5*2^27+I6*2^26+I7*2^25+ I8*2^24;

end end

axes(handles.axes7); imshow(LDP1,[]);

% untuk 45 derajat

C= imresize(handles.I, [100 100]); M= rgb2gray(C);

%R= imadjust(G,[],[],0.8); %M=histeq(R);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

if M(i,j)>M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=1;

end

if M(i,j)>M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12= 0;

elseif M(i,j)<M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=0;

elseif M(i,j)>M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=1;

else M(i,j)<M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12=1;

end

(29)

I13= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14=1;

end

if M(i-1,j+1)>M(i,j) && M(i,j)>M(i+1,j-1); I15= 0;

elseif M(i-1,j+1)<M(i,j) && M(i,j)<M(i+1,j-1); I15=0;

elseif M(i-1,j+1)>M(i,j) && M(i,j)<M(i+1,j-1); I15=1;

else M(i-1,j+1)<M(i,j) && M(i,j)>M(i+1,j-1); I15=1;

end

if M(i,j+1)>M(i+1,j) && M(i,j)>M(i+1,j-1); I16=0;

elseif M(i,j+1)<M(i+1,j) && M(i,j)<M(i+1,j-1); I16=0;

elseif M(i,j+1)>M(i+1,j) && M(i,j)<M(i+1,j-1); I16=1;

else M(i,j+1)<M(i+1,j) && M(i,j)>M(i+1,j-1); I16=1;

end

LDP2(i,j)=I9*2^23+I10*2^22+I11*2^21+I12*2^20+I13*2^19+I14*2^18+I15 *2^17+I16*2^16;

end end

axes(handles.axes3); imshow(LDP2,[]);

%untuk 90 derajat

C= imresize(handles.I, [100 100]); M= rgb2gray(C);

guidata(hObject,handles); %R=imadjust(G,[],[],0.8); %M=histeq(R);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

(30)

elseif M(i,j)<M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=1;

else M(i,j)<M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j)>M(i+2,j); I18= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j)<M(i+2,j); I18=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j)<M(i+2,j); I18=1;

else M(i,j)<M(i+1,j) && M(i+1,j)>M(i+2,j); I18=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=0;

elseif M(i,j)<M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=1;

else M(i,j)<M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=1;

end

if M(i,j)>M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20= 0;

elseif M(i,j)<M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=0;

elseif M(i,j)>M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=1;

else M(i,j)<M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20=1;

end

if M(i,j)>M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21= 0;

elseif M(i,j)<M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=0;

elseif M(i,j)>M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=1;

else M(i,j)<M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21=1;

end

if M(i-1,j)>M(i,j) && M(i,j)>M(i+1,j); I22= 0;

elseif M(i-1,j)<M(i,j) && M(i,j)<M(i+1,j); I22=0;

elseif M(i-1,j)>M(i,j) && M(i,j)<M(i+1,j); I22=1;

else M(i-1,j)<M(i,j) && M(i,j)>M(i+1,j); I22=1;

(31)

if M(i-1,j+1)>M(i,j+1) && M(i,j)>M(i+1,j); I23= 0;

elseif M(i-1,j+1)<M(i,j+1) && M(i,j)<M(i+1,j); I23=0;

elseif M(i-1,j+1)>M(i,j+1) && M(i,j)<M(i+1,j); I23=1;

else M(i-1,j+1)<M(i,j+1) && M(i,j)>M(i+1,j); I23=1;

end

if M(i,j+1)>M(i+1,j+1) && M(i,j)>M(i+1,j); I24=0;

elseif M(i,j+1)<M(i+1,j+1) && M(i,j)<M(i+1,j); I24=0;

elseif M(i,j+1)>M(i+1,j+1) && M(i,j)<M(i+1,j); I24=1;

else M(i,j+1)<M(i+1,j+1) && M(i,j)>M(i+1,j); I24=1;

end

LDP3(i,j)=I17*2^15+I18*2^14+I19*2^13+I20*2^12+I21*2^11+I22*2^10+I2 3*2^9+I24*2^8;

end end

axes(handles.axes4); imshow(LDP3,[]);

%untuk 135 derajat

C= imresize(handles.I, [100 100]); M= rgb2gray(C);

guidata(hObject,handles); %R= imadjust(G,[],[],0.8); %M=histeq(R);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

if M(i,j)>M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26=1;

end

(32)

I27=0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=1;

end

if M(i,j)>M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28= 0;

elseif M(i,j)<M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=0;

elseif M(i,j)>M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=1;

else M(i,j)<M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28=1;

end

if M(i-1,j-1)>M(i,j) && M(i,j)>M(i-1,j-1); I29= 0;

elseif M(i-1,j-1)<M(i,j) && M(i,j)<M(i-1,j-1); I29=0;

elseif M(i-1,j-1)>M(i,j) && M(i,j)<M(i-1,j-1); I29=1;

else M(i-1,j-1)<M(i,j) && M(i,j)>M(i-1,j-1); I29=1;

end

if M(i-1,j)>M(i,j+1) && M(i,j)>M(i+1,j+1); I30= 0;

elseif M(i-1,j)<M(i,j+1) && M(i,j)<M(i+1,j+1); I30=0;

elseif M(i-1,j)>M(i,j+1) && M(i,j)<M(i+1,j+1); I30=1;

else M(i-1,j)<M(i,j+1) && M(i,j)>M(i+1,j+1); I30=1;

end

if M(i-1,j+1)>M(i,j+2) && M(i,j)>M(i+1,j+1); I31= 0;

elseif M(i-1,j+1)<M(i,j+2) && M(i,j)<M(i+1,j+1); I31=0;

elseif M(i-1,j+1)>M(i,j+2) && M(i,j)<M(i+1,j+1); I31=1;

else M(i-1,j+1)<M(i,j+2) && M(i,j)>M(i+1,j+1); I31=1;

end

if M(i,j+1)>M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=0;

elseif M(i,j+1)<M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=0;

elseif M(i,j+1)>M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=1;

else M(i,j+1)<M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=1;

(33)

LDP4(i,j)=I25*2^7+I26*2^6+I27*2^5+I28*2^4+I29*2^3+I30*2^2+I31*2^1+ I32*2^0;

end end

axes(handles.axes5); imshow(LDP4,[]);

%total

C= imresize(handles.I, [100 100]); M= rgb2gray(C);

guidata(hObject,handles); %R= imadjust(G,[],[],0.8); %M=histeq(R);

w=size(M,1); h=size(M,2); for i=3:w-2

for j=3:h-2

if M(i+1,j+1)>M(i+1,j) && M(i,j)>M(i,j-1); I1= 0;

elseif M(i+1,j+1)<M(i+1,j) && M(i,j)<M(i,j-1); I1=0;

elseif M(i+1,j+1)>M(i+1,j) && M(i,j)<M(i,j-1); I1=1;

else M(i+1,j+1)<M(i+1,j) && M(i,j)>M(i,j-1); I1=1;

end

if M(i+1,j)>M(i+1,j-1) && M(i,j)>M(i,j-1); I2= 0;

elseif M(i+1,j)<M(i+1,j-1) && M(i,j)<M(i,j-1); I2=0;

elseif M(i+1,j)>M(i+1,j-1) && M(i,j)<M(i,j-1); I2=1;

else M(i+1,j)<M(i+1,j-1) && M(i,j)>M(i,j-1); I2=1;

end

if M(i+1,j-1)>M(i+1,j-2) && M(i,j)>M(i,j-1); I3=0;

elseif M(i+1,j-1)<M(i+1,j-2) && M(i,j)<M(i,j-1); I3=0;

elseif M(i+1,j-1)>M(i+1,j-2) && M(i,j)<M(i,j-1); I3=1;

else M(i+1,j-1)<M(i+1,j-2) && M(i,j)>M(i,j-1); I3=1;

end

if M(i,j)>M(i,j-1) && M(i,j-1)>M(i,j-2); I4= 0;

elseif M(i,j)<M(i,j-1) && M(i,j-1)<M(i,j-2); I4=0;

elseif M(i,j)>M(i,j-1) && M(i,j-1)<M(i,j-2); I4=1;

else M(i,j)<M(i,j-1) && M(i,j-1)>M(i,j-2); I4=1;

(34)

if M(i,j)>M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=1;

else M(i,j)<M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=1;

else M(i,j)<M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=1;

else M(i,j)<M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7=1;

end

if M(i,j+1)>M(i,j) && M(i,j)>M(i,j-1); I8=0;

elseif M(i,j+1)<M(i,j) && M(i,j)<M(i,j-1); I8=0;

elseif M(i,j+1)>M(i,j) && M(i,j)<M(i,j-1); I8=1;

else M(i,j+1)<M(i,j) && M(i,j)>M(i,j-1); I8=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10=1;

end

(35)

I11=0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=1;

end

if M(i,j)>M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12= 0;

elseif M(i,j)<M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=0;

elseif M(i,j)>M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=1;

else M(i,j)<M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14=1;

end

if M(i-1,j+1)>M(i,j) && M(i,j)>M(i+1,j-1); I15= 0;

elseif M(i-1,j+1)<M(i,j) && M(i,j)<M(i+1,j-1); I15=0;

elseif M(i-1,j+1)>M(i,j) && M(i,j)<M(i+1,j-1); I15=1;

else M(i-1,j+1)<M(i,j) && M(i,j)>M(i+1,j-1); I15=1;

end

if M(i,j+1)>M(i+1,j) && M(i,j)>M(i+1,j-1); I16=0;

elseif M(i,j+1)<M(i+1,j) && M(i,j)<M(i+1,j-1); I16=0;

elseif M(i,j+1)>M(i+1,j) && M(i,j)<M(i+1,j-1); I16=1;

else M(i,j+1)<M(i+1,j) && M(i,j)>M(i+1,j-1); I16=1;

(36)

if M(i,j)>M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=1;

else M(i,j)<M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j)>M(i+2,j); I18= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j)<M(i+2,j); I18=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j)<M(i+2,j); I18=1;

else M(i,j)<M(i+1,j) && M(i+1,j)>M(i+2,j); I18=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=0;

elseif M(i,j)<M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=1;

else M(i,j)<M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=1;

end

if M(i,j)>M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20= 0;

elseif M(i,j)<M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=0;

elseif M(i,j)>M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=1;

else M(i,j)<M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20=1;

end

if M(i,j)>M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21= 0;

elseif M(i,j)<M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=0;

elseif M(i,j)>M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=1;

else M(i,j)<M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21=1;

end

if M(i-1,j)>M(i,j) && M(i,j)>M(i+1,j); I22= 0;

elseif M(i-1,j)<M(i,j) && M(i,j)<M(i+1,j); I22=0;

elseif M(i-1,j)>M(i,j) && M(i,j)<M(i+1,j); I22=1;

(37)

end

if M(i-1,j+1)>M(i,j+1) && M(i,j)>M(i+1,j); I23= 0;

elseif M(i-1,j+1)<M(i,j+1) && M(i,j)<M(i+1,j); I23=0;

elseif M(i-1,j+1)>M(i,j+1) && M(i,j)<M(i+1,j); I23=1;

else M(i-1,j+1)<M(i,j+1) && M(i,j)>M(i+1,j); I23=1;

end

if M(i,j+1)>M(i+1,j+1) && M(i,j)>M(i+1,j); I24=0;

elseif M(i,j+1)<M(i+1,j+1) && M(i,j)<M(i+1,j); I24=0;

elseif M(i,j+1)>M(i+1,j+1) && M(i,j)<M(i+1,j); I24=1;

else M(i,j+1)<M(i+1,j+1) && M(i,j)>M(i+1,j); I24=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=1;

end

if M(i,j)>M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28= 0;

elseif M(i,j)<M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=0;

elseif M(i,j)>M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=1;

(38)

I28=1; end

if M(i-1,j-1)>M(i,j) && M(i,j)>M(i-1,j-1); I29= 0;

elseif M(i-1,j-1)<M(i,j) && M(i,j)<M(i-1,j-1); I29=0;

elseif M(i-1,j-1)>M(i,j) && M(i,j)<M(i-1,j-1); I29=1;

else M(i-1,j-1)<M(i,j) && M(i,j)>M(i-1,j-1); I29=1;

end

if M(i-1,j)>M(i,j+1) && M(i,j)>M(i+1,j+1); I30= 0;

elseif M(i-1,j)<M(i,j+1) && M(i,j)<M(i+1,j+1); I30=0;

elseif M(i-1,j)>M(i,j+1) && M(i,j)<M(i+1,j+1); I30=1;

else M(i-1,j)<M(i,j+1) && M(i,j)>M(i+1,j+1); I30=1;

end

if M(i-1,j+1)>M(i,j+2) && M(i,j)>M(i+1,j+1); I31= 0;

elseif M(i-1,j+1)<M(i,j+2) && M(i,j)<M(i+1,j+1); I31=0;

elseif M(i-1,j+1)>M(i,j+2) && M(i,j)<M(i+1,j+1); I31=1;

else M(i-1,j+1)<M(i,j+2) && M(i,j)>M(i+1,j+1); I31=1;

end

if M(i,j+1)>M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=0;

elseif M(i,j+1)<M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=0;

elseif M(i,j+1)>M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=1;

else M(i,j+1)<M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=1;

end

LDP(i,j)=I1*2^31+I2*2^30+I3*2^29+I4*2^28+I5*2^27+I6*2^26+I7*2^25+I 8*2^24+I9*2^23+I10*2^22+I11*2^21+I12*2^20+I13*2^19+I14*2^18+I15*2^ 17+I16*2^16+I17*2^15+I18*2^14+I19*2^13+I20*2^12+I21*2^11+I22*2^10+ I23*2^9+I24*2^8+I25*2^7+I26*2^6+I27*2^5+I28*2^4+I29*2^3+I30*2^2+I3 1*2^1+I32*2^0;

end end

axes(handles.axes6); imshow(LDP,[]);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO)

(39)

% handles structure with handles and user data (see GUIDATA)

load Eigenfaces.mat load coba.mat

T=coba;

m = mean(T,2); % menghitung nilai rata - rata dari citra pembuluh darah

jumlah_percobaan = size(T,2); A = [];

for i = 1 : jumlah_percobaan

selisih = double(T(:,i)) - m; % menghitung selisih antara citra rata - rata dengan citra hasil ekstraksi LDP

A = [A selisih]; % menggabungkan setiap citra selisih end

proyeksicitra = [];

jumlah_percobaan = size(A,2); for i = 1 : jumlah_percobaan

temp = Eigenfaces'*A(:,i); % menggabungkan setiap citra proyeksi

proyeksicitra = [proyeksicitra temp]; end

% ektraksi LDP dan mencari nilai eigenfaces dari citra uji vein=imresize(handles.I, [100 100])

M=rgb2gray(vein); w=size(M,1);

h=size(M,2); for i=3:w-2

for j=3:h-2

if M(i+1,j+1)>M(i+1,j) && M(i,j)>M(i,j-1); I1= 0;

elseif M(i+1,j+1)<M(i+1,j) && M(i,j)<M(i,j-1); I1=0;

elseif M(i+1,j+1)>M(i+1,j) && M(i,j)<M(i,j-1); I1=1;

else M(i+1,j+1)<M(i+1,j) && M(i,j)>M(i,j-1); I1=1;

end

if M(i+1,j)>M(i+1,j-1) && M(i,j)>M(i,j-1); I2= 0;

elseif M(i+1,j)<M(i+1,j-1) && M(i,j)<M(i,j-1); I2=0;

elseif M(i+1,j)>M(i+1,j-1) && M(i,j)<M(i,j-1); I2=1;

else M(i+1,j)<M(i+1,j-1) && M(i,j)>M(i,j-1); I2=1;

end

if M(i+1,j-1)>M(i+1,j-2) && M(i,j)>M(i,j-1); I3=0;

elseif M(i+1,j-1)<M(i+1,j-2) && M(i,j)<M(i,j-1); I3=0;

elseif M(i+1,j-1)>M(i+1,j-2) && M(i,j)<M(i,j-1); I3=1;

(40)

I3=1; end

if M(i,j)>M(i,j-1) && M(i,j-1)>M(i,j-2); I4= 0;

elseif M(i,j)<M(i,j-1) && M(i,j-1)<M(i,j-2); I4=0;

elseif M(i,j)>M(i,j-1) && M(i,j-1)<M(i,j-2); I4=1;

else M(i,j)<M(i,j-1) && M(i,j-1)>M(i,j-2); I4=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j-1)<M(i-1,j-2); I5=1;

else M(i,j)<M(i,j-1) && M(i-1,j-1)>M(i-1,j-2); I5=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j)<M(i-1,j-1); I6=1;

else M(i,j)<M(i,j-1) && M(i-1,j)>M(i-1,j-1); I6=1;

end

if M(i,j)>M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7= 0;

elseif M(i,j)<M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=0;

elseif M(i,j)>M(i,j-1) && M(i-1,j+1)<M(i-1,j); I7=1;

else M(i,j)<M(i,j-1) && M(i-1,j+1)>M(i-1,j); I7=1;

end

if M(i,j+1)>M(i,j) && M(i,j)>M(i,j-1); I8=0;

elseif M(i,j+1)<M(i,j) && M(i,j)<M(i,j-1); I8=0;

elseif M(i,j+1)>M(i,j) && M(i,j)<M(i,j-1); I8=1;

else M(i,j+1)<M(i,j) && M(i,j)>M(i,j-1); I8=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j+1)>M(i+2,j); I9= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j+1)<M(i+2,j); I9=1;

(41)

end

if M(i,j)>M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10= 0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j)<M(i+2,j-1); I10=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j)>M(i+2,j-1); I10=1;

end

if M(i,j)>M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=0;

elseif M(i,j)<M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=0;

elseif M(i,j)>M(i+1,j-1) && M(i+1,j-1)<M(i+2,j-2); I11=1;

else M(i,j)<M(i+1,j-1) && M(i+1,j-1)>M(i+2,j-2); I11=1;

end

if M(i,j)>M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12= 0;

elseif M(i,j)<M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=0;

elseif M(i,j)>M(i+1,j-1) && M(i,j-1)<M(i+1,j-2); I12=1;

else M(i,j)<M(i+1,j-1) && M(i,j-1)>M(i+1,j-2); I12=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j-1)<M(i,j-2); I13=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j-1)>M(i,j-2); I13=1;

end

if M(i,j)>M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14= 0;

elseif M(i,j)<M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=0;

elseif M(i,j)>M(i+1,j-1) && M(i-1,j)<M(i,j-1); I14=1;

else M(i,j)<M(i+1,j-1) && M(i-1,j)>M(i,j-1); I14=1;

end

if M(i-1,j+1)>M(i,j) && M(i,j)>M(i+1,j-1); I15= 0;

elseif M(i-1,j+1)<M(i,j) && M(i,j)<M(i+1,j-1); I15=0;

(42)

else M(i-1,j+1)<M(i,j) && M(i,j)>M(i+1,j-1); I15=1;

end

if M(i,j+1)>M(i+1,j) && M(i,j)>M(i+1,j-1); I16=0;

elseif M(i,j+1)<M(i+1,j) && M(i,j)<M(i+1,j-1); I16=0;

elseif M(i,j+1)>M(i+1,j) && M(i,j)<M(i+1,j-1); I16=1;

else M(i,j+1)<M(i+1,j) && M(i,j)>M(i+1,j-1); I16=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j+1)<M(i+2,j+1); I17=1;

else M(i,j)<M(i+1,j) && M(i+1,j+1)>M(i+2,j+1); I17=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j)>M(i+2,j); I18= 0;

elseif M(i,j)<M(i+1,j) && M(i+1,j)<M(i+2,j); I18=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j)<M(i+2,j); I18=1;

else M(i,j)<M(i+1,j) && M(i+1,j)>M(i+2,j); I18=1;

end

if M(i,j)>M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=0;

elseif M(i,j)<M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=0;

elseif M(i,j)>M(i+1,j) && M(i+1,j-1)<M(i+2,j-1); I19=1;

else M(i,j)<M(i+1,j) && M(i+1,j-1)>M(i+2,j-1); I19=1;

end

if M(i,j)>M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20= 0;

elseif M(i,j)<M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=0;

elseif M(i,j)>M(i+1,j) && M(i,j-1)<M(i+1,j-1); I20=1;

else M(i,j)<M(i+1,j) && M(i,j-1)>M(i+1,j-1); I20=1;

end

if M(i,j)>M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21= 0;

elseif M(i,j)<M(i+1,j) && M(i-1,j-1)<M(i,j-1); I21=0;

(43)

I21=1;

else M(i,j)<M(i+1,j) && M(i-1,j-1)>M(i,j-1); I21=1;

end

if M(i-1,j)>M(i,j) && M(i,j)>M(i+1,j); I22= 0;

elseif M(i-1,j)<M(i,j) && M(i,j)<M(i+1,j); I22=0;

elseif M(i-1,j)>M(i,j) && M(i,j)<M(i+1,j); I22=1;

else M(i-1,j)<M(i,j) && M(i,j)>M(i+1,j); I22=1;

end

if M(i-1,j+1)>M(i,j+1) && M(i,j)>M(i+1,j); I23= 0;

elseif M(i-1,j+1)<M(i,j+1) && M(i,j)<M(i+1,j); I23=0;

elseif M(i-1,j+1)>M(i,j+1) && M(i,j)<M(i+1,j); I23=1;

else M(i-1,j+1)<M(i,j+1) && M(i,j)>M(i+1,j); I23=1;

end

if M(i,j+1)>M(i+1,j+1) && M(i,j)>M(i+1,j); I24=0;

elseif M(i,j+1)<M(i+1,j+1) && M(i,j)<M(i+1,j); I24=0;

elseif M(i,j+1)>M(i+1,j+1) && M(i,j)<M(i+1,j); I24=1;

else M(i,j+1)<M(i+1,j+1) && M(i,j)>M(i+1,j); I24=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j+1)<M(i+2,j+2); I25=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j+1)>M(i+2,j+2); I25=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26= 0;

elseif M(i,j)<M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=0;

elseif M(i,j)>M(i+1,j+1) && M(i+1,j)<M(i+2,j+1); I26=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j)>M(i+2,j+1); I26=1;

end

if M(i,j)>M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=0;

(44)

elseif M(i,j)>M(i+1,j+1) && M(i+1,j-1)<M(i+2,j); I27=1;

else M(i,j)<M(i+1,j+1) && M(i+1,j-1)>M(i+2,j); I27=1;

end

if M(i,j)>M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28= 0;

elseif M(i,j)<M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=0;

elseif M(i,j)>M(i+1,j+1) && M(i,j-1)<M(i+1,j); I28=1;

else M(i,j)<M(i+1,j+1) && M(i,j-1)>M(i+1,j); I28=1;

end

if M(i-1,j-1)>M(i,j) && M(i,j)>M(i-1,j-1); I29= 0;

elseif M(i-1,j-1)<M(i,j) && M(i,j)<M(i-1,j-1); I29=0;

elseif M(i-1,j-1)>M(i,j) && M(i,j)<M(i-1,j-1); I29=1;

else M(i-1,j-1)<M(i,j) && M(i,j)>M(i-1,j-1); I29=1;

end

if M(i-1,j)>M(i,j+1) && M(i,j)>M(i+1,j+1); I30= 0;

elseif M(i-1,j)<M(i,j+1) && M(i,j)<M(i+1,j+1); I30=0;

elseif M(i-1,j)>M(i,j+1) && M(i,j)<M(i+1,j+1); I30=1;

else M(i-1,j)<M(i,j+1) && M(i,j)>M(i+1,j+1); I30=1;

end

if M(i-1,j+1)>M(i,j+2) && M(i,j)>M(i+1,j+1); I31= 0;

elseif M(i-1,j+1)<M(i,j+2) && M(i,j)<M(i+1,j+1); I31=0;

elseif M(i-1,j+1)>M(i,j+2) && M(i,j)<M(i+1,j+1); I31=1;

else M(i-1,j+1)<M(i,j+2) && M(i,j)>M(i+1,j+1); I31=1;

end

if M(i,j+1)>M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=0;

elseif M(i,j+1)<M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=0;

elseif M(i,j+1)>M(i+1,j+2) && M(i,j)<M(i+1,j+1); I32=1;

else M(i,j+1)<M(i+1,j+2) && M(i,j)>M(i+1,j+1); I32=1;

(45)

LDP(i,j)=I1*2^31+I2*2^30+I3*2^29+I4*2^28+I5*2^27+I6*2^26+I7*2^25+I 8*2^24+I9*2^23+I10*2^22+I11*2^21+I12*2^20+I13*2^19+I14*2^18+I15*2^ 17+I16*2^16+I17*2^15+I18*2^14+I19*2^13+I20*2^12+I21*2^11+I22*2^10+ I23*2^9+I24*2^8+I25*2^7+I26*2^6+I27*2^5+I28*2^4+I29*2^3+I30*2^2+I3 1*2^1+I32*2^0;

end end

[irow icol] = size(LDP);

citra_1D = reshape(LDP',irow*icol,1);

selisih_uji = double(citra_1D) - m; % selisih hasil ektraksi LDP dengan citra rata - rata

proyeksi_citra_uji = Eigenfaces' * selisih_uji; % vektor fitur citra uji

% menghitung euclidean distance minimum

Euc_dist = [];

for i = 1 : jumlah_percobaan q = proyeksicitra(:,i);

jarak = sqrt(sum((proyeksi_citra_uji - q).^2)); Euc_dist = [Euc_dist jarak];

end

[Euc_dist_min , indeks_pengenalan] = min(Euc_dist); H=Euc_dist_min;

set(handles.edit2,'string',H)

threshold=2.184158e+22; if H>threshold

B=imread('C:\MATLAB\R2012a\bin\salah.jpg') axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','-'); set(handles.edit4,'string','-'); end

if indeks_pengenalan==1 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-01.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','1'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==2 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-02.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','1'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==3 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\01-IMG-03.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','1'); set(handles.edit4,'string','3');

(46)

if indeks_pengenalan==4 && H<=threshold

B=imr

Gambar

figure;imshow(B);
figure;imshow(B);

Referensi

Dokumen terkait

Kotawaringin barat pangkalanbun (Kalimantan Tengah) pembagian ataupun perinciannya yang dilkukan tidak persis sama dengan ketentuan fara’id. Sepintas lalu terlihat

dan Keuangan Pimpinan dan Anggota Dewan Perwakilan Rakyat Daerah (Lembaran Negara Republik Tahun 2004 Nomor 90, Tambahan Lembaran Republik Indonesia Negara Nomor

Berdasarkan penilaian sementara atas parameter pertumbuhan bibit seperti: tinggi, jumlah daun, luas daun, diameter batang, bobot segar bagian atas, bobot segar

Yang dimaksud dengan “ asas kesamaan kedudukan dalam hukum dan pemerintahan ” adalah upaya penanggulangan HI V dan AIDS harus dilaksanakan sedemikian rupa tanpa ada

Untuk sekedar basa-basi, kalau seseorang sedang terbaring di ranjang kematian, teman- temannya datang kepadanya, kadang-kadang menangis dengan keras memanggil yang sudah

Berdasarkan uraian dia tas, penulis merumuskan “apa saja faktor resiko yang mempengaruhi Kejadian Kurang Energi Protein (KEP) pada balita (&gt;2-5 tahun) di

Dari data yang didapatkan, hanya penambahan 60 g dan 90 g pada masing-masing 1 kg ampas tahu yang mendekati hasil mutu SNI 19-7030-2004 tentang speksifikasi kompos dari

Komposisi desain Cover dan Package CD berbentuk asimeris agar terlihat menarik dan kreatif dengan sisi kiri lebih padat karena menampilkan foto utama siswi yang