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

(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;

elseif 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

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


(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);

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


(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

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


(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;

else 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)

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


(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;

else 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;

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


(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;

elseif 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=imread('C:\MATLAB\R2012a\bin\database\01-IMG-04.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','1'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==5 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','1'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==6 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','2'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==7 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\02-IMG-02.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','2'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==8 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','2'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==9 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','2'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==10 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','2'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==11 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','3'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==12 && H<=threshold

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


(47)

imshow(B,[]);

set(handles.edit3,'string','3'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==13 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\03-IMG-03.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','3'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==14 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','3'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==15 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','3'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==16 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','4'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==17 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','4'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==18 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','4'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==19 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\04-IMG-04.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','4'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==20 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','4'); set(handles.edit4,'string','5');


(48)

end

if indeks_pengenalan==21 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','5'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==22 && H<threshold

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

imshow(B,[]);

set(handles.edit3,'string','5'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==23 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','5'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==24 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','5'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==25 && H<=threshold

B=imread('C:\MATLAB\R2012a\bin\database\05-IMG-05.jpg'); axes(handles.axes2);

imshow(B,[]);

set(handles.edit3,'string','5'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==26 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','6'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==27 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','6'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==28 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','6'); set(handles.edit4,'string','3'); end


(49)

if indeks_pengenalan==29 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','6'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==30 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','6'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==31 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','7'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==32 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','7'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==33 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','7'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==34 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','7'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==35 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','7'); set(handles.edit4,'string','5'); end


(50)

if indeks_pengenalan==36 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','8'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==37 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','8'); set(handles.edit4,'string','2'); end

if indeks_pengenalan==38 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','8'); set(handles.edit4,'string','3'); end

if indeks_pengenalan==39 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','8'); set(handles.edit4,'string','4'); end

if indeks_pengenalan==40 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','8'); set(handles.edit4,'string','5'); end

if indeks_pengenalan==41 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','9'); set(handles.edit4,'string','1'); end

if indeks_pengenalan==42 && H<=threshold

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

imshow(B,[]);

set(handles.edit3,'string','9'); set(handles.edit4,'string','2'); end


(1)

A-51 Citra

Orang Ke-8

IMG-06 IMG-07 IMG-08

Citra Orang

Ke-9

IMG-06 IMG-07 IMG-08

Citra Orang Ke-10


(2)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Pola pengenalan fisik pada dasarnya sangat sulit untuk ditelusuri dan itu merupakan masalah yang menyangkut akan privasi dan keamanan yang tinggi dalam biometrik pengenalan. Diantara berbagai teknik biometrik beserta karakteristik yang digunakan untuk mengenali seseorang, biometrik tangan menjadi salah satu teknik yang paling banyak digunakan dan paling sukses. Bagian-bagian dari tangan yang sering digunakan untuk pengenalan identitas seseorang antara lain adalah geometri tangan, sidik jari, garis telapak tangan, garis-garis pada ruas jari dan pembuluh darah.

Pada Tugas Akhir ini penulis mencoba membuat aplikasi untuk mengidentifikasi seseorang tanpa harus menyentuh alat. Teknologi biometrik yang digunakan adalah berdasarkan pada pola pembuluh darah pada punggung telapak tangan yang diambil menggunakan kamera infra merah. Jenis teknik biometrik ini dipilih karena setiap orang memiliki pola pembuluh darah yang unik, walaupun pada orang kembar sekalipun, beda halnya dengan sidik jari yang dapat diduplikasi menggunakan bahan tertentu. Untuk pengenalan pola dari pembuluh darah itu sendiri, penulis menggunakan ekstraksi fitur Local Derivative Pattern dan algoritma PCA.

1.2 Identifikasi Masalah

Berdasarkan latar belakang di atas, masalah utama yang akan diangkat pada Tugas Akhir ini adalah merancang aplikasi untuk mengidentifikasi seseorang berdasarkan citra pembuluh darah dengan metode LDP (Local Derivative Pattern) dan algoritma PCA menggunakan program MATLAB (Matrix Laboratory).


(3)

Universitas Kristen Maranatha 2

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi :

1. Bagaimana merancang aplikasi untuk mengidentifikasi seseorang berdasarkan citra pembuluh darah menggunakan ekstraksi fitur Local Derivative Pattern dan algoritma PCA pada program MATLAB?

2. Bagaimana tingkat keberhasilan aplikasi yang dirancang dalam mengidentifikasi seseorang berdasarkan citra pembuluh darah?

1.4 Tujuan

Tujuan yang ingin dicapai dari Tugas Akhir ini adalah :

1. Merealisasikan aplikasi metode ekstraksi fitur menggunakan Local Derivative Pattern dan algoritma PCA untuk mengidentifikasi seseorang berdasarkan citra pembuluh darah.

2. Mengetahui tingkat keberhasilan dari aplikasi dalam mengidentifikasi seseorang berdasarkan citra pembuluh darah melalui persentase FRR (False Rejected Rate).

1.5 Pembatasan Masalah

1. Jumlah citra yang akan digunakan sebagai citra yang ada dalam database diambil dari 10 orang yang berbeda masing- masing 8 citra (5 citra digunakan sebagai citra database dan 3 citra sebagai citra uji)

2. Jarak pengambilan citra antara objek dengan kamera adalah 25-30 cm. 3. Citra berupa gambar grayscale dengan resolusi 100 x 100.

4. Posisi tangan harus dikepal.

5. Pengambilan dan pengolahan citra tidak dilakukan secara real-time. 6. Membahas tentang second order pada Local Derivative Pattern (LDP) 7. Membahas tentang cara menentukan eigenfaces


(4)

1.6 Sistematika Penulisan

Penyusunan laporan tugas akhir terdiri dari lima bab sebagai berikut :

• Bab 1. Pendahuluan

Pada bab ini akan dibahas mengenai latar belakang, perumusan masalah, identifikasi masalah, tujuan, pembatasan masalah, dan sistematika penulisan dari Tugas Akhir ini.

• Bab 2. Landasan Teori

Pada bab ini akan dibahas mengenai teori-teori penunjang yang akan digunakan untuk merancang aplikasi identifikasi seseorang berdasarkan pola pembuluh darah dengan metoda LDP (Local Derivative Pattern) dan algoritma PCA, antara lain biometrik, pembuluh darah vena, pengolahan citra, representasi citra digital, ektraksi fitur citra, Local Derivative Pattern (LDP), Principal Component Analysis (PCA), distance(jarak), False Acceptance Rate (FAR) dan False Rejected Rate (FRR).

• Bab 3. Perancangan Perangkat Lunak

Bab ini berisi penjelasan desain yang akan dilakukan dalam membuat perangkat lunak untuk mengidentifikasi seseorang berdasarkan citra pembuluh darah menggunakan ekstraksi Local Derivative Pattern dan algoritma PCA.

• Bab 4. Pengujian dan Analisa Data

Bab ini berisi data pengamatan hasil pengujian program, perhitungan tingkat keberhasilan metoda yang digunakan berdasarkan FRR, dan analisa dari data hasil pengujian program.

• Bab 5. Kesimpulan dan Saran

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk pengembangan di masa mendatang.


(5)

34 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Pembuatan program untuk mengidentifikasi seseorang berdasarkan citra pembuluh darah menggunakan ekstraksi fitur Local Derivative Pattern dan algoritma PCA berhasil direalisasikan menggunakan MATLAB R2012a. 2. Dari hasil pengamatan terhadap pengujian program untuk identifikasi

seseorang berdasarkan citra pembuluh darah didapatkan persentase FRR sebesar 13,33%

5.2 Saran

1. Citra yang digunakan memiliki pencahayaan yang sama, agar saat dilakukan ekstraksi dan pengenalan nilai distance nya tidak terlalu jauh. 2. Penggunaan kamera dengan resolusi yang lebih baik supaya citra


(6)

DAFTAR PUSTAKA

1. Amos Piton, 2012, “Verifikasi Citra Pembuluh Darah Menggunakan Ektraksi Fitur Transformasi Kosinus Diskrit Dua Dimensi”, Bandung: Universitas Kristen Maranatha, Fakultas Teknik, Jurusan Teknik Elektro. 2. Baochang Zhang, Yongsheng Gao (2010), Local Derivative Pattern Versus

Local Binary Pattern: Face Recognition With High-Order Local Pattern Descriptor, vol. 19, No 2.

3. Hikmah Nurul, 2008, Identifikasi Retina Mata Manusia Menggunakan Sistem Inferensi Neuro Fuzzy Adaptif”, Depok: Universitas Indonesia, Fakultas Teknik, Departemen Teknik Elektro.

4. Leila Mirmohamadsadeghi, Andrzej Drygajlo (2011), Palm Vein Recognition with Local Binary Patterns and Local Derivative Pattern, 1-6. 5. Munir, Rinaldi., Pengolahan Citra Digital dengan Pendekatan Algoritmik,

Informatika. Bandung, 2004

6. Prasetyo Eko. (2011). Pengolahan Citra Digital dan Aplikasinya menggunakan Matlab. Yogyakarta : ANDI

7. Wahyudi Eko, Kusuma Hendra, Wirawan (2011), Perbandingan Unjuk Kerja Pengenalan Wajah Berbasis Fitur Local Binary Pattern dengan Algoritma PCA dan Chi Square, Seminar Nasional. ISSN 2088-4796

8. http://www.bayometric.com/blog/index.php/biometric-security-systems/false-acceptance-rate-far-false-recognition-rate-frr/ 9. https://en.wikipedia.org/wiki/Principal_component_analysis

10. http://onionesquereality.wordpress.com/2009/02/11/face-recognition-using-eigenfaces-and-distance-classifiers-a-tutorial/

11. http://pustaka-virtual.blogspot.com/2012/10/seputar-pembuluh-darah-vena-pembuluh.html