Implementasi Implementasi Implementasi Grayscaling Binerisasi Otsu Implementasi User Interface

24

BAB IV IMPLEMENTASI SISTEM

Pada penelitian tugas akhir ini membahas tentang penggunaan algoritma binerisasi pada manuskrip aksara Nusantara dengan menggunakan metode Niblack. Implementasi program akan dibahas dan dijelaskan pada bab ini. Proses implementasi adalah sebagai berikut :

4.1. Implementasi

Pre Processing

a. Implementasi

Load Citra Di dalam form gui.m terdapat push button load image untuk memilih citra yang akan dijadikan citra biner, kemudian menampilkannya pada axes image_load , dengan menggunakan fungsi yang ada pada matlab yaitu uigetfile untuk memilih dan membaca citra yang akan diproses. Gambar 4.1 Implementasi Load Citra [FileName, pathname] = uigetfile ... { .jpg , Image Files .jpg }, ... Pick a image file ; handles.myImage = strcatpathname, FileName; axeshandles.image_load; baca_gambar=imreadhandles.myImage; imshowhandles.myImage;

b. Implementasi Grayscaling

Sebelum melakukan proses binerisasi, citra perlu diolah lagi agar hanya memiliki satu jenis pixel warna yang dapat membuat proses binerisasi menjadi lebih cepat dan sempurna. Pada tahap ini, hasil akir citra berupa citra berjenis grayscale , yang akan ditampilkan pada axes image_gray . Gambar 4.2 Implementasi Grayscaling abu2=rgb2hsvbaca_gambar2; abu=abu2:,:,3; axeshandles.image_gray; imshowabu;

c. Binerisasi Otsu

Binerisasi dengan menggunakan metode Otsu dilakukan dengan menggunakan fungsi yang sudah ada di Matlab yaitu im2bw , metode Otsu termasuk kedalam kategori Global Threshold . Berikut adalah contoh citra yang telah dibinerisasikan denggan metode Otsu : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4.3 Contoh Citra Biner Menggunakan Metode Otsu read_image=imreadhandles.myImage; baca_gambar2=imresizeread_image,[280 540]; abu2=rgb2hsvbaca_gambar2; assignin base , abu2 ,abu2; abu=abu2:,:,3; assignin base , abu ,abu; otsu=im2bwabu;

4.2. Implementasi Proses

Local Windowing Pada tahap ini, citra akan dibagi menjadi beberapa bagian yang sama rata baik panjang maupun lebarnya untuk dilakukan Local Thresholding yang ada pada tahap selanjutnya.

4.2.1. Bagi Gambar Nol bagian

Gambar 4.4 Potong Gambar Nol Bagian function [A,x1,y1]=potongGambar0abu,r,c,p A=abu1:r ,1:c,:; [x1 y1]=sizeA; assignin base , size_LocThres1 ,A; Citra grayscale diinisialisasi pada variabel A dengan tanpa pemotongan atau ukuran matriksnya sesuai dengan ruas baris dan kolom pada citra grayscale, kemudian nilai panjang dan lebar citra A disimpan kedalam variabel x1 dan y1.

4.2.2. Bagi Gambar Empat Bagian

Gambar 4.5 Potong Gambar Empat Bagian PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI function [A,B,C,D,x1,y1,x2,y2,x3,y3,x4,y4]=potongGambarabu,r,c,p A=abu1:r2 ,1:c2,:; [x1 y1]=sizeA; assignin base , size_LocThres1 ,A; B=abu1:r2,c2+1:c,:; [x2 y2]=sizeB; assignin base , size_LocThres2 ,B; C=abur2+1:r,1:c2,:; [x3 y3]=sizeC; assignin base , size_LocThres3 ,C; D=abur2+1:r,c2+1:c,:; [x4 y4]=sizeD; assignin base , size_LocThres4 ,D; Citra grayscale diinisialisasi pada variabel A,B,C,D di mana setiap variabel memilikin ukuran citranya masing-masing, berikut ukutan setiap variabel : A. variabel A memiliki ukuran matriks baris dari satu sampai total matriks baris dibagi dua dan ukuran matriks kolom dari satu sampai matriks total kolom dibagi dua, kemudian ukuran dari panjang dan lebar variabel A disimpan kedalam variabel x1 dan y1. B. variabel B memiliki ukuran matriks baris dari satu sampai matriks total baris dibagi dua dan ukuran matriks kolom dari matriks total kolom dibagi dua lalu ditambah satu sampai ukuran matriks maksimal kolom pada citra tersebut, kemudian ukuran dari panjang dan lebar variabel B disimpan kedalam variabel x2 dan y2. C. variabel C memiliki ukuran matriks baris dari total baris dibagi dua lalu ditambah satu sampai ukuran matriks maksimal baris pada citra tersebut dan ukuran matriks kolom dari satu sampai matriks total kolom dibagi dua kemudian ukuran dari panjang dan lebar variabel C disimpan kedalam variabel x2 dan y3. D. variabel D memiliki ukuran matriks baris dari matriks total baris dibagi dua lalu ditambah satu sampai ukuran matriks maksimal baris pada citra tersebut dan ukuran matriks kolom dari total kolom dibagi dua lalu ditambah satu sampai ukuran matriks maksimal kolom pada citra tersebut, kemudian ukuran dari panjang dan lebar variabel D disimpan kedalam variabel x4 dan y4.

4.2.3. Bagi Gambar Tiga Horizontal

Gambar 4.6 Potong Gambar Tiga Horizontal function [A,B,C,x1,y1,x2,y2,x3,y3]=potongGambar3Horizontalabu,r,c,p A=abu1:r ,1:c3,:; [x1 y1]=sizeA; assignin base , size_LocThres1 ,A; B=abu1:r, c3+1:2c3 ,:; [x2 y2]=sizeB; assignin base , size_LocThres2 ,B; C=abu1:r, 2c3+1:c, :; [x3 y3]=sizeC; assignin base , size_LocThres3 ,C; Citra grayscale diinisialisasi pada variabel A,B,C di mana setiap variabel memilikin ukuran citranya masing-masing, berikut ukutan setiap variabel : A. variabel A memiliki ukuran matriks baris dari satu sampai ukuran matriks maksimal baris pada citra tersebut dan ukuran matriks kolom dari satu sampai matriks total kolom dibagi tiga, kemudian ukuran dari panjang dan lebar variabel A disimpan kedalam variabel x1 dan y1. B. variabel B memiliki ukuran matriks baris dari satu sampai ukuran matriks maksimal baris pada citra tersebut dan ukuran matriks kolom dari matriks total kolom dibagi tiga lalu ditambah satu sampai dua kali ukuran matriks PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI total ukuran maksimal kolom pada citra tersebut yang dibagi tiga, kemudian ukuran dari panjang dan lebar variabel B disimpan kedalam variabel x2 dan y2. C. variabel C memiliki ukuran matriks baris dari satu sampai ukuran matriks maksimal baris pada citra tersebut dan ukuran matriks kolom dari dua kali ukuran total matriks maksimal kolom pada citra tersebut yang dibagi tiga sampai ukuran matriks maksimal kolom pada citra tersebut lalu ditambah satu, kemudian ukuran dari panjang dan lebar variabel C disimpan kedalam variabel x3 dan y3.

4.2.4. Bagi Gambar Tiga Vertikal

Gambar 4.7 Potong Gambar Tiga Vertikal function [A,B,C,x1,y1,x2,y2,x3,y3]=potongGambar3Vertikalabu,r,c,p A=abu1:r3 ,1:c,:; [x1 y1]=sizeA; assignin base , size_LocThres1 ,A; B=abu1+r3:2r3, 1:c ,:; [x2 y2]=sizeB; assignin base , size_LocThres2 ,B; C=abu2r3+1:r, 1:c, :; [x3 y3]=sizeC; assignin base , size_LocThres3 ,C; Citra grayscale diinisialisasi pada variabel A,B,C di mana setiap variabel memilikin ukuran citranya masing-masing, berikut ukutan setiap variabel : A. variabel A memiliki ukuran matriks kolom dari satu sampai ukuran matriks maksimal kolom pada citra tersebut dan ukuran matriks baris dari satu sampai matriks total baris dibagi tiga, kemudian ukuran dari panjang dan lebar variabel A disimpan kedalam variabel x1 dan y1. B. variabel B memiliki ukuran matriks kolom dari satu sampai ukuran matriks maksimal kolom pada citra tersebut dan ukuran matriks baris dari matriks total baris dibagi tiga lalu ditambah satu sampai dua kali ukuran matriks total ukuran maksimal baris pada citra tersebut yang dibagi tiga, kemudian ukuran dari panjang dan lebar variabel B disimpan kedalam variabel x2 dan y2. C. variabel C memiliki ukuran matriks kolom dari satu sampai ukuran matriks maksimal kolom pada citra tersebut dan ukuran matriks baris dari dua kali ukuran total matriks maksimal baris pada citra tersebut yang dibagi tiga sampai ukuran matriks maksimal baris pada citra tersebut lalu ditambah satu, kemudian ukuran dari panjang dan lebar variabel C disimpan kedalam variabel x3 dan y3.

4.3. Implementasi Proses

Local Thresholding Pada tahap Local Thresholding dilakukan perhitungan standar deviasi dan mean untuk setiap window citra HSV yang akan di binerisasikan, nilai standar deviasi dan mean dari masing-masing window akan disimpan di variabel S_kuadran untuk masing-masing standar deviasi dan M_kuadran untuk masing- masing mean.

4.3.1. Local Threshold Gambar Nol Bagian

Pembagian local window dibagi menjadi nol potongan, sehingga nilai standar deviasi dan rata-rata didapatkan dari seluruh blok piksel yang ada pada suatu citra, kemudian nilai standar deviasi dan rata-rata tersebut digunakan untuk menghitung nilai threshold -nya. Berikut adalah contoh hasil kalkulasi local threshold gambar nol bagian : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4. 8 Contoh Hasil Kalkulasi Local Threshold Nol Bagian function [S_kuadran1,M_kuadran1]=hitSTDdanMean0A S_kuadran1=std2A:; M_kuadran1=meanA:; assignin base , std_LocThres1 ,S_kuadran1; assignin base , mean_LocThres1 ,M_kuadran1; [S_kuadran1,M_kuadran1]=hitSTDdanMean0A; value_kuadran1=M_kuadran1+ variabelS_kuadran1; assignin base , Threshold_1 ,value_kuadran1;

4.3.2. Local Threshold Gambar Empat Bagian

Pembagian local window dibagi menjadi empat bagian yang sama rata antara matriks baris dan kolomnya, hasil dari pembagian local windowing tersebut menghasilkan empat blok local window yang sama rata, dari setiap blok tersebut dilakukan kalkulasi rata-rata, standar deviasi, dan local threshold -nya. Berikut adalah contoh hasil kalkulasi local threshold gambar empat bagian : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4. 9 Contoh Hasil Kalkulasi Local Threshold Empat Bagian function [S_kuadran1,S_kuadran2,S_kuadran3,S_kuadran4,M_kuadran1,M_kuadra n2,M_kuadran3,M_kuadran4]=hitSTDdanMeanA,B,C,D S_kuadran1=std2A:; M_kuadran1=meanA:; assignin base , std_LocThres1 ,S_kuadran1; assignin base , mean_LocThres1 ,M_kuadran1; S_kuadran2=std2B:; M_kuadran2=meanB:; assignin base , std_LocThres2 ,S_kuadran2; assignin base , mean_LocThres2 ,M_kuadran2; S_kuadran3=std2C:; M_kuadran3=meanC:; assignin base , std_LocThres3 ,S_kuadran3; assignin base , mean_LocThres3 ,M_kuadran3; S_kuadran4=std2D:; M_kuadran4=meanD:; assignin base , std_LocThres4 ,S_kuadran4; assignin base , mean_LocThres4 ,M_kuadran4; [S_kuadran1,S_kuadran2,S_kuadran3,S_kuadran4,M_kuadran1,M_kuadra n2,M_kuadran3,M_kuadran4]=hitSTDdanMeanA,B,C,D value_kuadran1=M_kuadran1+ variabelS_kuadran1; assignin base , Threshold_1 ,value_kuadran1; value_kuadran2=M_kuadran2+ variabelS_kuadran2; assignin base , Threshold_2 ,value_kuadran2; value_kuadran3=M_kuadran3+ variabelS_kuadran3; assignin base , Threshold_3 ,value_kuadran3; value_kuadran4=M_kuadran4+ variabelS_kuadran4; assignin base , Threshold_4 ,value_kuadran4;

4.3.3. Local Threshold Gambar tiga Bagian

Pembagian local window dibagi menjadi tiga bagian yang sama rata antara matriks baris dan kolomnya, hasil dari pembagian local windowing tersebut menghasilkan tiga blok local window yang sama rata, dari setiap blok tersebut dilakukan kalkulasi rata-rata, standar deviasi, dan local threshold -nya. Berikut adalah contoh hasil kalkulasi local threshold gambar tiga bagian : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4. 10 Contoh Hasil Kalkulasi Local Threshold Tiga Bagian function [S_kuadran1,S_kuadran2,S_kuadran3,M_kuadran1,M_kuadran2,M_kuadra n3]=hitSTDdanMean3A,B,C S_kuadran1=std2A:; M_kuadran1=meanA:; assignin base , std_LocThres1 ,S_kuadran1; assignin base , mean_LocThres1 ,M_kuadran1; S_kuadran2=std2B:; M_kuadran2=meanB:; assignin base , std_LocThres2 ,S_kuadran2; assignin base , mean_LocThres2 ,M_kuadran2; S_kuadran3=std2C:; M_kuadran3=meanC:; assignin base , std_LocThres3 ,S_kuadran3; assignin base , mean_LocThres3 ,M_kuadran3; [S_kuadran1,S_kuadran2,S_kuadran3,M_kuadran1,M_kuadran2,M_kuadra n3]=hitSTDdanMean3A,B,C value_kuadran1=M_kuadran1+ variabelS_kuadran1; assignin base , Threshold_1 ,value_kuadran1; value_kuadran2=M_kuadran2+ variabelS_kuadran2; assignin base , Threshold_2 ,value_kuadran2; value_kuadran3=M_kuadran3+ variabelS_kuadran3; assignin base , Threshold_3 ,value_kuadran3;

4.3.4. Binerisasi

Niblack Binerisasi dengan menggunakan metode Niblack dilakukan setelah implementasi Local Threshold , setiap window dilakukan proses binerisasi menggunakan metode Niblack . Pada tahap ini dilakukan proses penukaran nilai piksel atau Thresholding , untuk suatu piksel yang nilanya lebih kecil dari nilai threshold -nya maka nilai pikselnya akan diganti menjadi nol, jika nilai pikselnya lebih besar atau samadengan dari nilai threshold -nya maka nilai pikselnya akan diganti menjadi satu, berikut adalah penjelasan yang lebih rinci untuk melakukan perubahan nilai piksel : function [niblack]=Niblack0A,x1,y1,value_kuadran1 temp1=A; for u1=1:1:x1 for q1=1:1:y1 pixel1=temp1u1,q1; if pixel1=value_kuadran1 temp1u1,q1=1; else temp1u1,q1=0; end end end niblack=temp1;

4.3.5. Implementasi

Tic Toc Pada tahap ini, dilakukan pencatatan waktu konsumsi untuk merubah citra grayscale menjadi citra biner menggunakan metode Otsu dan Niblack. Proses fungsi tic untuk melakukan binerisasi Niblack dimulai setelah melakukan pemotongan gambar kemudian diakhiri dengan fungsi toc setelah gambar disatukan kembali, sedangkan untuk binerisasi menggunakan metode Otsu fungsi tic dilakukan sebelum fungsi im2bw dan fungsi toc dilakukan setelah fungsi im2bw . 4.4. Implementasi Penggabungan Local Window Setelah citra grayscale diubah menjadi citra biner dengan menggunakan metode Niblack , citra digabungkan kembali menjadi satu bagian dari empat bagian, citra yang sudah menjadi satu bagian inilah yang menjadi citra biner menggunakan metode Niblack secara utuh.

4.4.1. Penggabungan Local Window Potong Gambar Empat Bagian

Pada penggabungan local window empat bagian dilakukan dengan cara menggabungkan blok A dan B terlebih dahulu, kemudian menggabungkan blok C dan D, setelah itu menggabungkan dua blok yang telah disatukan lagi, berikut adalah gambar dari setiap bloknya : Gambar 4. 11 Blok A dan C Gambar 4. 12 Blok B dan D Gambar 4. 13 Gabungan Blok A dan B Gambar 4. 14 Gabungan Blok C dan D Gambar 4. 15 Gabungan Blok A, B, C, dan D PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI function [niblack,kombinasi_gambar1,kombinasi_gambar2] = combineGambartemp1,temp2,temp3,temp4 kombinasi_gambar1=[temp1 temp2]; kombinasi_gambar2=[temp3 temp4]; niblack=cat1,kombinasi_gambar1,kombinasi_gambar2; assignin base , niblack ,niblack;

4.4.2. Penggabungan Local Window Potong Gambar Tiga Bagian Vertikal

Pada penggabungan local window tiga bagian vertikal dilakukan dengan cara menggabungkan blok A, B, dan C secara horizontal, berikut adalah gambar dari setiap bloknya : Gambar 4. 16 Blok A, B, dan C Gambar 4. 17 Gabungan blok A, B, dan C PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI function [niblack] = combineGambar3Vertikaltemp1,temp2,temp3 kombinasi_gambar1=cat1,temp1,temp2; niblack=cat1,kombinasi_gambar1,temp3;

4.4.3. Penggabungan Local Window Potong Gambar Tiga Bagian Horizontal

Pada penggabungan local window tiga bagian vertikal dilakukan dengan cara menggabungkan blok A, B, dan C secara vertikal, berikut adalah gambar dari setiap bloknya : Gambar 4. 18 Blok A, B, dan C Gambar 4. 19 Gabungan blok A, B, dan C function [niblack] = combineGambar3Horizontaltemp1,temp2,temp3 niblack=[temp1 temp2 temp3];

4.5. Implementasi User Interface

Pengubahan citra berjenis RGB menjadi biner dilakukan melalui GUI Graphical User Interface , untuk memudahkan dalam penilitian ini. Gambar 4.21 merupakan tampilan GUI dari sistem binerisasi manuskrip aksara Nusantara menggunakan algoritma Niblack . Gambar 4. 20 GUI Sistem PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42

BAB V HASIL DAN ANALISIS

5.1. Hasil Citra Grayscaling

Citra yang telah berhasil di- resize akan dilakukan proses untuk menjadi citra berjenis grayscale , tabel 5.1 adalah beberapa contoh hasil grayscaling . Tabel 5.1 Contoh Hasil Citra HSV dan Grayscaling No Citra Asli Citra Grayscale 1 2 3 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI