Tugas 4
Teknik Komputasi
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean
Dosen
Nama NIM Kelas
: Dr. Ir. Nazori Az, M.T
: Fransiscus Xaverius Eko Budi Kristanto : 1111600126 : XA
MAGISTER ILMU KOMPUTER UNIVERSITAS BUDI LUHUR JAKARTA 2012
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 Soal: Carilah citra tekstur di Google dengan kata kunci: brodatz_database, kemudian ambil 10 buah tekstur. Selanjutnya diuji kemiripannya dari salah satu tekstur, hasilnya diurutkan dalam bentuk tabel mulai dari yang paling mirip.
Jawab: 10 buah citra tekstur yang digunakan: Citra tekstur semuanya berukuran 213x213 pixel dengan format PNG (Portable Network Graphics), dengan kedalaman warna 8 bit.
tekstur_01.png
tekstur_02.png
tekstur_03.png
tekstur_04.png
tekstur_05.png
tekstur_06.png
tekstur_07.png
tekstur_08.png
tekstur_09.png
tekstur_uji.png
Sumber tekstur: http://perso.telecom-ristech.fr/~xia/invariant_texture/invariant_texture_brodatz/Brodatz_re.html
10 buah citra akan diuji (tekstur_01.png, tekstur_02.png, ..., tekstur_uji.png), untuk mencari citra mana yang paling mirip terhadap citra ke-10 (tekstur_uji.png) dengan menggunakan metode Jarak Euclidean berdasarkan 5 ciri sebagai berikut: 1 N
1. Intensitas warna (σ) → σ = 2. Nilai rata-rata (μ) → µ =
1 N
N
∑ (x − x ) i =1
i
2
i
N
∑X i =1
1
n
3. Entropi (e) → e = −∑ p ( xi ) log P( xi ) i =1
4. Energi (E) → E j =
1 M xN
M
N
∑ ∑ [ P ( x, y)]
2
x =1
y =1
j
Pd (i, j ) 5. Homogeiniti (H) → H = ∑∑ i j 1+ i − j 1
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 Jarak Euclidean digunakan untuk klasifikasi atau identifikasi suatu vektor ciri yang dimasukkan dengan ciri pada basis data yang ada. Jarak Euclidean untuk 2 buah vektor ditentukan dengan rumus sebagai berikut: a = [a1 , a2 , a3 , .........., an ] dan b = [b1 , b2 , b3 , ............, bn ] Maka jarak Euclidean antara kedua vektor tersebut adalah: ab = (a1 − b1 ) 2 + (a2 − b2 ) 2 + (a3 − b3 ) 2 + .........(an − bn ) 2
Script Program Matlab untuk Mencari Jarak Euclidean Berdasarkan 5 Ciri: % PENGENALAN POLA CITRA TEKSTUR DENGAN METODE EUCLIDEAN clear, close all Image1=imread('D:\tekstur\tekstur_01.png'); Image2=imread('D:\tekstur\tekstur_02.png'); Image3=imread('D:\tekstur\tekstur_03.png'); Image4=imread('D:\tekstur\tekstur_04.png'); Image5=imread('D:\tekstur\tekstur_05.png'); Image6=imread('D:\tekstur\tekstur_06.png'); Image7=imread('D:\tekstur\tekstur_07.png'); Image8=imread('D:\tekstur\tekstur_08.png'); Image9=imread('D:\tekstur\tekstur_09.png'); Image10=imread('D:\tekstur\tekstur_uji.png'); intensitas_1 = std2(Image1); rata2_1 = mean2(Image1); entropi_1 = entropy(Image1); GLCM_1 = graycomatrix(Image1); %menghitung GLCM energi1 = graycoprops(GLCM_1,{'energy'}); energi_1= struct2array(energi1); homogeiniti1 = graycoprops(GLCM_1,{'homogeneity'}); homogeiniti_1= struct2array(homogeiniti1); C1=[intensitas_1, rata2_1, entropi_1, energi_1, homogeiniti_1]' %Matriks C1 intensitas_2 = std2(Image2); rata2_2 = mean2(Image2); entropi_2 = entropy(Image2); GLCM_2 = graycomatrix(Image2); %menghitung GLCM energi2 = graycoprops(GLCM_2,{'energy'}); energi_2= struct2array(energi2); homogeiniti2 = graycoprops(GLCM_2,{'homogeneity'}); homogeiniti_2= struct2array(homogeiniti2); C2=[intensitas_2, rata2_2, entropi_2, energi_2, homogeiniti_2]' %Matriks C2 intensitas_3 = std2(Image3); rata2_3 = mean2(Image3);
2
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 entropi_3 = entropy(Image3); GLCM_3 = graycomatrix(Image3); %menghitung GLCM energi3 = graycoprops(GLCM_3,{'energy'}); energi_3= struct2array(energi3); homogeiniti3 = graycoprops(GLCM_3,{'homogeneity'}); homogeiniti_3= struct2array(homogeiniti3); C3=[intensitas_3, rata2_3, entropi_3, energi_3, homogeiniti_3]' %Matriks C3 intensitas_4 = std2(Image4); rata2_4 = mean2(Image4); entropi_4 = entropy(Image4); GLCM_4 = graycomatrix(Image4); %menghitung GLCM energi4 = graycoprops(GLCM_4,{'energy'}); energi_4= struct2array(energi4); homogeiniti4 = graycoprops(GLCM_4,{'homogeneity'}); homogeiniti_4= struct2array(homogeiniti4); C4=[intensitas_4, rata2_4, entropi_4, energi_4, homogeiniti_4]' %Matriks C4 intensitas_5 = std2(Image5); rata2_5 = mean2(Image5); entropi_5 = entropy(Image5); GLCM_5 = graycomatrix(Image5); %menghitung GLCM energi5 = graycoprops(GLCM_5,{'energy'}); energi_5= struct2array(energi5); homogeiniti5 = graycoprops(GLCM_5,{'homogeneity'}); homogeiniti_5= struct2array(homogeiniti5); C5=[intensitas_5, rata2_5, entropi_5, energi_5, homogeiniti_5]' %Matriks C5 intensitas_6 = std2(Image6); rata2_6 = mean2(Image6); entropi_6 = entropy(Image6); GLCM_6 = graycomatrix(Image1); %menghitung GLCM energi6 = graycoprops(GLCM_6,{'energy'}); energi_6= struct2array(energi6); homogeiniti6 = graycoprops(GLCM_6,{'homogeneity'}); homogeiniti_6= struct2array(homogeiniti6); C6=[intensitas_6, rata2_6, entropi_6, energi_6, homogeiniti_6]' %Matriks C6 intensitas_7 = std2(Image7); rata2_7 = mean2(Image7); entropi_7 = entropy(Image7); GLCM_7 = graycomatrix(Image7); %menghitung GLCM energi7 = graycoprops(GLCM_7,{'energy'}); energi_7= struct2array(energi7); homogeiniti7 = graycoprops(GLCM_7,{'homogeneity'}); homogeiniti_7= struct2array(homogeiniti7); C7=[intensitas_7, rata2_7, entropi_7, energi_7, homogeiniti_7]' %Matriks C7 intensitas_8 = std2(Image8); rata2_8 = mean2(Image8); entropi_8 = entropy(Image8); GLCM_8 = graycomatrix(Image8); %menghitung GLCM
3
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 energi8 = graycoprops(GLCM_8,{'energy'}); energi_8= struct2array(energi8); homogeiniti8 = graycoprops(GLCM_8,{'homogeneity'}); homogeiniti_8= struct2array(homogeiniti8); C8=[intensitas_8, rata2_8, entropi_8, energi_8, homogeiniti_8]' %Matriks C8 intensitas_9 = std2(Image9); rata2_9 = mean2(Image9); entropi_9 = entropy(Image9); GLCM_9 = graycomatrix(Image9); %menghitung GLCM energi9 = graycoprops(GLCM_9,{'energy'}); energi_9= struct2array(energi9); homogeiniti9 = graycoprops(GLCM_9,{'homogeneity'}); homogeiniti_9= struct2array(homogeiniti9); C9=[intensitas_9, rata2_9, entropi_9, energi_9, homogeiniti_9]' %Matriks C9 intensitas_10 = std2(Image10); rata2_10 = mean2(Image10); entropi_10 = entropy(Image10); GLCM_10 = graycomatrix(Image10); %menghitung GLCM energi10 = graycoprops(GLCM_10,{'energy'}); energi_10= struct2array(energi10); homogeiniti10 = graycoprops(GLCM_10,{'homogeneity'}); homogeiniti_10= struct2array(homogeiniti10); C10=[intensitas_10, rata2_10, entropi_10, energi_10, homogeiniti_10]' %Matriks C10 % MENCARI CITRA YANG PALING MIRIP TERHADAP CITRA UJI (CITRA ke-10) jarak_1_10=sqrt((C1(1,1)-C10(1,1))^2+(C1(2,1)-C10(2,1))^2+(C1(3,1)-C10(3,1))^2+(C1(4,1)C10(4,1))^2+(C1(5,1)-C10(5,1))^2) jarak_2_10=sqrt((C2(1,1)-C10(1,1))^2+(C2(2,1)-C10(2,1))^2+(C2(3,1)-C10(3,1))^2+(C2(4,1)C10(4,1))^2+(C2(5,1)-C10(5,1))^2) jarak_3_10=sqrt((C3(1,1)-C10(1,1))^2+(C3(2,1)-C10(2,1))^2+(C3(3,1)-C10(3,1))^2+(C3(4,1)C10(4,1))^2+(C3(5,1)-C10(5,1))^2) jarak_4_10=sqrt((C4(1,1)-C10(1,1))^2+(C4(2,1)-C10(2,1))^2+(C4(3,1)-C10(3,1))^2+(C4(4,1)C10(4,1))^2+(C4(5,1)-C10(5,1))^2) jarak_5_10=sqrt((C5(1,1)-C10(1,1))^2+(C5(2,1)-C10(2,1))^2+(C5(3,1)-C10(3,1))^2+(C5(4,1)C10(4,1))^2+(C5(5,1)-C10(5,1))^2) jarak_6_10=sqrt((C6(1,1)-C10(1,1))^2+(C6(2,1)-C10(2,1))^2+(C6(3,1)-C10(3,1))^2+(C6(4,1)C10(4,1))^2+(C6(5,1)-C10(5,1))^2) jarak_7_10=sqrt((C7(1,1)-C10(1,1))^2+(C7(2,1)-C10(2,1))^2+(C7(3,1)-C10(3,1))^2+(C7(4,1)C10(4,1))^2+(C7(5,1)-C10(5,1))^2) jarak_8_10=sqrt((C8(1,1)-C10(1,1))^2+(C8(2,1)-C10(2,1))^2+(C8(3,1)-C10(3,1))^2+(C8(4,1)C10(4,1))^2+(C8(5,1)-C10(5,1))^2) jarak_9_10=sqrt((C9(1,1)-C10(1,1))^2+(C9(2,1)-C10(2,1))^2+(C9(3,1)-C10(3,1))^2+(C9(4,1)C10(4,1))^2+(C9(5,1)-C10(5,1))^2) jarak_10_10=sqrt((C10(1,1)-C10(1,1))^2+(C10(2,1)-C10(2,1))^2+(C10(3,1)-C10(3,1))^2+(C10(4,1)C10(4,1))^2+(C10(5,1)-C10(5,1))^2)
4
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 Hasil: C1 = 65.3775 180.7692 5.3177 0.2414 0.7228 C2 = 60.9682 180.3410 5.3565 0.2527 0.7285 C3 = 64.1793 166.0150 5.7418 0.1597 0.6940 C4 = 62.6913 181.4880 5.3186 0.2462 0.7216 C5 = 63.4781 176.6978 5.4415 0.2290 0.7195 C6 = 65.8256 170.8663 5.6259 0.2414 0.7228
5
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 C7 = 58.9760 190.7536 5.0511 0.2888 0.7448 C8 = 61.6821 183.7089 5.2691 0.2692 0.7401 C9 = 63.7068 174.2883 5.5924 0.1972 0.7052 C10 = 62.6913 181.4880 5.3186 0.2462 0.7216 jarak_1_10 = 2.7807 jarak_2_10 = 2.0703 jarak_3_10 = 15.5503 jarak_4_10 = 0 jarak_5_10 = 4.8559
6
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 jarak_6_10 = 11.0788 jarak_7_10 = 9.9865 jarak_8_10 = 2.4402 jarak_9_10 = 7.2763 jarak_10_10 = 0
Dengan demikian, diperoleh nilai Jarak Euclidean tekstur yang diuji (tekstur_01.png, tekstur_02.png, ..., tekstur_uji.png) dengan tekstur uji (tekstur_uji.png) adalah: Tabel Jarak Euclidean Hasil Pengujian 10 Citra Tekstur: Nama Berkas Tekstur
Jarak Euclidean
tekstur_01.png
2.7807
tekstur_02.png
2.0703
tekstur_03.png
15.5503
tekstur_04.png
0
tekstur_05.png
4.8559
tekstur_06.png
11.0788
tekstur_07.png
9.9865
tekstur_08.png
2.4402
tekstur_09.png
7.2763
tekstur_uji.png
0
Dari hasil pengujian diperoleh bahwa nilai Jarak Euclidean tekstur_01.png dan tekstur_uji.png adalah 0 karena kedua tekstur tersebut sebenarnya sama persis (penulis sengaja mengcopy file tekstur_uji.png dari file tekstur_04.png). 7
Pengenalan Pola Citra Tekstur dengan Metode Jarak Euclidean 2012 Kemiripan pengenalan diperoleh dengan menghitung jarak terdekat, yaitu nilai Jarak Euclidean yang paling kecil. Semakin kecil jarak tekstur yang diuji dengan tekstur penguji, maka akan semakin mirip. Tabel Urutan Kemiripan Hasil Pengujian Menggunakan 10 Citra Tekstur: Urutan Kode Tekstur
Jarak Euclidean
1
tekstur_04.png
0
2
tekstur_02.png
2.0703
3
tekstur_08.png
2.4402
4
tekstur_01.png
2.7807
5
tekstur_05.png
4.8559
6
tekstur_09.png
7.2763
7
tekstur_07.png
9.9865
8
tekstur_06.png
11.0788
9
tekstur_03.png
15.5503
Sehingga jika citra tekstur disusun berurutan dari kemiripannya akan menjadi sebagai berikut: Citra Penguji
tekstur_uji.png
5
tekstur_05.png
8
1
tekstur_04.png
6
tekstur_09.png
2
tekstur_02.png
7
tekstur_07.png
3
tekstur_08.png
8
tekstur_06.png
4
tekstur_01.png
9
tekstur_03.png