49
LAMPIRAN A : DATA SAMPEL
1.
Data latihan
Pola
Citra
0
Pola
Citra
1
A1 4
A2
A5
12 Ma 16
20
Ma3
Ma6
Ma4 19
Na
22
Na4
Ha6
15
18
21
Na3
11
14
17
Ha2
Ha5
Ma2
Ma5
7
10
13
A4
Ha
Ha4
Citra
3
6
9
Pola
A3
A6
Ha3
Citra
2
5
8
Pola
Na2
23
Na5
Na6
Universitas Sumatera Utara
50
24
25
Ra
28
26
Ra2
29
Ra5
32
30
33
36
48
Sa4
43
Da
Da2
46 Da4
49 Ga
39
42
45
47 Da5
50 Ga2
Ta6
Sa3
Sa6
Da3
35
Ta5
Sa2
Sa5
Ta2
38
41
44
Ta
Ta4
Sa
Ra4
31
34
37
40
Ra3
Ra6
Ta3
27
Da6 51
Ga3
Ga4
Universitas Sumatera Utara
51
52
53
Ga5
56
Ga6
57
Ja3
60
58
61
64
Nga
Nga4
Nga2
71
Nga5
74
La2
Ba4
67
70
73
La
Ba3
Ba6
Nga3
Ja6
63
66
69
72
Ja5
Ba2
Ba5
Ja2
59
62
65
68
Ja
Ja4
Ba
55
54
Nga6
75
La3
La4
Universitas Sumatera Utara
52
76
77
78
La5
80
La6
81
Nya3
90
Nya5
Wa3
wa
94
Wa4
96
Wa2
95
Wa5
97
Ya
Nya4
91
Nya6
93
Pa6
87
Nya2
89
92
Pa5
86
Nya
Pa2
83
Pa4
85
88
Pa
82
Pa3
84
79
Wa6
98
Ya2
99
Ya3
Ya4
Universitas Sumatera Utara
53
101
100
Ya5
102
Ya6
105
104
I3
I
104
I4
109
108
U
103
105
I5
110
U2
I2
I6
111
U3
U4
113
112
U5
U6
Universitas Sumatera Utara
54
2.
Data uji
Pola
Citra
0
Pola
Citra
1
A7
4
A8
H7
12 Na7
16
20
Na9
Ra8
Na10
19
Ra9
22 Ta8
Ma10
15
18
21 Ta7
11
14
17
Ha10
Ma9
Na8
Ra7
7
10
13
A10
Ha9
Ma8
Citra
3
6
9
Pola
A9
Ha8
Ma7
Citra
2
5
8
Pola
Ra10
23 Ta9
Ta10
Universitas Sumatera Utara
55
24
25 Sa7
26 Sa8
27 Sa9
Sa10
29
28
30 Da7
32
Da8
33 Ga7
36
34
37
40
Ja9
Ba8
Ja10
43 Ba9
46
Nga8
Ga10
39
42
45
Nga7
Ga9
Ja8
Ba7
Da10
35
38
41
44
Da9
Ga8
Ja7
31
Ba10
47
Nga9
Nga10
Universitas Sumatera Utara
56
48
49 La7
52
50 La8
53 Pa7
56
54
57
60
Ya9
I8
Ya10
71
I9
74
U8
Wa10
67
70
73
U7
Wa9
Ya8
I7
Nya10
63
66
69
72
Nya9
Wa8
Ya7
Pa10
59
62
65
68
Pa9
Nya8
Wa7
La10
55
58
61
64
La9
Pa8
Nya7
51
I10
75
U9
U10
Universitas Sumatera Utara
57
LAMPIRAN B PROGRAM
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import java.util.Scanner;
public class tulisan{ private static final int IMG_WIDTH = 60; private static final int IMG_HEIGHT = 90; static
double input_jst[][] = new double[60][90];
private static double mse; private static String namagambar = "";
private static BufferedImage original, grayscale, binarized, uji,uji2; private static double epoch = 0.5; private static double jum2; private static String filegambar, tipegambar; private static double matriks2 [][] = new double[60][90]; private static double nilai = 2; public static void main (String[] args) throws IOException{
System.out.println("masukkan nama file gambar :"); Scanner input = new Scanner(System.in); //Scanner input2 = new Scanner(System.in); filegambar = input.nextLine(); //tipegambar = input2.nextLine();
Universitas Sumatera Utara
58
// mengambil source gambar original = ImageIO.read(tulisan.class.getResource("pictures/"+filegambar+".bmp")); int width_original = original.getWidth(); int height_original = original.getHeight();
if((width_original != 60 ) || (height_original != 90)){ System.out.println("ukuran gambar yang anda masukkan tidak sesuai, apakah ingin mencocokkan gambar?"); System.out.println("y / t"); String kepastian = input.nextLine(); if(kepastian.equals("y")){ //BufferedImage originalImage = ImageIO.read(new File(filegambar+".bmp")); int type = original.getType() == 0? BufferedImage.TYPE_INT_ARGB : original.getType(); BufferedImage resizeImagebmp = ImageProcessing.resizeImage(original, type); .write(resizeImagebmp, "bmp", new File("pictures/"+filegambar+".bmp")); original = ImageIO.read(tulisan.class.getResource("pictures/"+filegambar+".bmp"));}} width_original = original.getWidth(); height_original = original.getHeight();
if((width_original == 60) && (height_original == 90)){ grayscale = fungsi_tulisan2.toGray(original); binarized = fungsi_tulisan2.binarize(grayscale);
// mengatur besar skala width dengan height int jum =0; int width = binarized.getWidth(); int height = binarized.getHeight(); // System.out.println(" " +width +" " + height); int [][] matriks = new int [width][height]; int [][] matriksbanding = new int [width][height]; int [][] matriksC = new int [width][height];
Universitas Sumatera Utara
59
int [][] matriksbanding2 = new int [width][height]; //int [][] zoning2 = new int [width][height]; for (int i = 0; i < width; i++) { for (int j = 0; j
// System.out.println(gambar); if(matriks[i][j] == -16777216){ matriks[i][j] = 1 ;} if(matriks[i][j] == -1){ matriks [i][j] = 0;}}} matriks = fungsi_tulisan.doHilditchsThinning(matriks); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { if(matriks[i][j] == 0 ){ matriks[i][j] = -16777216 ; //-1; // untuk citra thinning berwarna hitam buat nilainya sama dengan -1} if(matriks[i][j] == 1){ matriks [i][j] = -1 ; //-16777216;} binarized.setRGB(i,j,matriks[i][j]); }} fungsi_tulisan2.writeImage2(binarized); uji = ImageIO.read(tulisan.class.getResource("gambarmatriks.bmp")); matriksbanding = matriksmatriks.matriks_banding1(uji); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { if(matriksbanding[i][j] == -1 ){ matriksbanding[i][j] = 0; //-1; // untuk citra thinning berwarna hitam buat nilainya sama dengan -1} if(matriksbanding[i][j] == -16777216){ matriksbanding[i][j] = 1 ; //-16777216;
Universitas Sumatera Utara
60
} } } // tampilkan gambar matriks for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { matriks2[i][j] = (double) matriksbanding[i][j]; //
System.out.print(matriks2[i][j]);}
//
System.out.println();}
// pengulangan diagonal based int ZONA_L = 6; int ZONA_T = 9; int ZONA_U = 10; int indeks = 0; int pola = 0;
//Inisialisasi array input_jst for(int i=0; i<15; i++) { for(int j=0; j<70; j++){ input_jst[i][j] = 0; //
System.out.print(input_jst[i][j]); }
// System.out.println(); }
// Zoning double piksel_zona[][] = new double [ZONA_T][ZONA_L]; double piksel_zona_max=0.0; // Inisialisasi piksel_ona for(int i=0; i
Universitas Sumatera Utara
61
for(int i=0; i<matriksbanding.length; i+=ZONA_U){ for(int j=0; j<matriksbanding.length; j+=ZONA_U){ //Hitung jumlah piksel hitam setiap zona for(int k=i; k
piksel_zona_max) piksel_zona_max = piksel_zona[i/ZONA_U][j/ZONA_U]; } //cout << endl;} //cout << "max :" << piksel_zona_max << endl; //cout << endl;
// Hitung nilai setiap zona for(int i=0; i
Universitas Sumatera Utara
62
for(int j=0; j rata_zona = jml_piksel_zona/(panjang + tinggi - 1) rata_rata_zona[i/10][j/10] = (double)jml_piksel_zona/(ZONA_U*2-1); //cout << "[" <
Universitas Sumatera Utara
63
jml_hor = 0.0; //Masukkan rata_rata_zona ke array input_jst input_jst[pola][indeks++] = rata_rata_hor[i]; } //Hitung rata-rata zona vertikal for(int i=0; i
Universitas Sumatera Utara
64
//mse = matriksmatriks.init(input_jst, targetY); double matriksbanding3 [][] = new double [width_original][height_original]; String namatulisan =""; if(true){ uji2 = ImageIO.read(tulisan.class.getResource("jst/ha10.bmp")); matriksbanding3 = matriksmatriks.matriks_banding2(uji2); jum2 = matriksmatriks.perbandingan(matriks2 , matriksbanding3, width_original, height_original); namatulisan = "ha"; if(jum2>0){ uji2 = ImageIO.read(tulisan.class.getResource("jst/ya.bmp")); = matriksmatriks.matriks_banding2(uji2); jum2 = matriksmatriks.perbandingan(matriks2 , matriksbanding3, width_original, height_original); namatulisan = "ya";} double jum3; System.out.println();} mse = matriksmatriks.init(input_jst, targetY); double jum3; System.out.println(); if(jum2 == 0.0){ jum3 = jum2 + (mse * 50 + nilai) + 50; System.out.println("Tingkat Kecocokannya adalah: " + jum3); System.out.println("mse : " + (100 - jum3)); } else{ //jum2 = jum2 * 100 ; System.out.println("Tingkat Kecocokannya adalah: " + jum2); jum3 = 100- jum2; System.out.println("mse: " + jum3);
}
if(jum2 <= 0){ if(jum2 < mse)
Universitas Sumatera Utara
65
System.out.println(); System.out.println("Find Solution : " + namatulisan);} else{ System.out.println(); System.out.println("not Find Solution");} // hasil dari nilai zoning dan diagonal based //System.out.println("Hasil nilai zoning dan diagonal based"); for(int i = 0 ;i<15; i++){ for(int j = 0; j<70; j++){ //System.out.println("ini adalah:"); //System.out.print(input_jst[i][j]);} //System.out.println(); } } }
Universitas Sumatera Utara