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