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