Anda di halaman 1dari 11

Universitas Gunadarma Page 1

IMPLEMENTASI ALGORITMA THINNING PADA CITRA UNTUK


MENILAI POSISI DUDUK SESEORANG DARI SEGI
PENCEGAHAN GANGGUAN PENYAKIT TULANG BELAKANG

Vibri Ariyaningrum
1)
Johan Harlan
2)

Setia Wirawan
3)

Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Gunadarma
Jl. Margonda Raya No. 100, Depok, Jawa Barat, 16424, Indonesia
Email : ariyani.vibri@gmail.com
1)
harlan_johan@staff.gunadarma.ac.id
2)

setia@staff.gunadarma.ac.id
3)



ABSTRAK
Implementasi algoritma thinning pada citra untuk menilai posisi duduk seseorang dari segi
pencegahan penyakit tulang belakang.
Pembuatan aplikasi ini menggunakan algoritma thinning dan Matlab 7.8 dalam proses
klasifikasi posisi duduk seseorang tampak samping. Thinning merupakan salah satu algoritma
perubahan citra dalam morphological operation. Konsep morphological operation pada
pengolahan citra adalah operasi- operasi perubahan bentuk pada binary image. Hasil yang
didapat dari pembuatan aplikasi ini terdapat dua kondisi yaitu kondisi saat posisi duduk
memenuhi dan kondisi saat posisi duduk tidak memenuhi. Untuk melakukan proses klasifikasi
menggunakan hasil expert yang telah dilakukan oleh para ahli yaitu posisi duduk saat terbentuk
sudut 90
0
sampai 110
0
.
Pada penelitian ini hasil persentase keberhasilan yang didapat adalah 70%. Terdapat
beberapa faktor yang berpengaruh antara lain warna baju yang digunakan oleh objek,
intensitas cahaya, dan jumlah benda yang berada disekeliling objek.
Kata Kunci : Algoritma Thinning, Matlab, Penyakit Tulang Belakang.

PENDAHULUAN
Postur tubuh pada diri seseorang sangat berpengaruh pada tampilan dan cara kerja
seseorang. Bagaimana seseorang memperlakukan sikap tubuhnya. Terutama bagaimana
cara seseorang melakukan sikap tubuhnya pada saat posisi duduk. Dari posisi duduk
saat mereka bekerja ternyata dapat menyebabkan beberapa gangguan penyakit pada
tulang belakang. Terdapat posisi duduk yang harus dilakukan agar terhindar dari
gangguan penyakit tulang belakang. Untuk melakukan klasifikasi posisi duduk tersebut
dapat menggunakan batasan posisi duduk yang benar dengan range sudut antara 90
0

sampai 110
0
. Batasan range sudut tersebut didapat dari penelitian yang sudah dilakukan
sebelumnya oleh para ahli. Data yang digunakan adalah beberapa posisi duduk
seseorang. Untuk pencegahan penyakit tulang belakang dianjurkan posisi kepala dalam
keadaan tegak. Sedangkan posisi tubuh terkadang perlu diperhatikan lebih lanjut maka
dibuat aplikasi ini. Dalam pembuatan sistem ini digunakan algoritma thinning dalam
pembuatan citra. Thinning (pengurusan) adalah operasi morfology yang digunakan
untuk memperkecil ukuran geometrik objek dengan hasil akhir berupa skeleton atau
rangka. Konsep morphological operation pada pengolahan citra adalah operasi- operasi
perubahan bentuk pada binary image atau grayscale image.
Pengolahan citra adalah suatu bentuk proses sinyal dengan input berupa gambar
(image) yang ditransformasikan menjadi gambar lain sebagai keluarannya dengan
teknik tertentu (Gonzales, 2004). Pengolahan citra dilakukan untuk memperbaiki
Universitas Gunadarma Page 2

kesalahan data sinyal gambar yang terjadi akibat transmisi, serta untuk meningkatkan
kualitas penampakan gambar agar lebih mudah diinterprestasi oleh sistem penglihatan
manusia, dengan melakukan manipulasi dan juga analisis terhadap gambar. Kegiatan
memperbaiki kualitas citra agar mudah diinterprestasi oleh manusia atau komputer.
Inputnya adalah berupa citra digital dan keluarannya pun berupa citra digital tapi
dengan kualitas yang lebih baik dari citra input. Misalkan diinput citra yang memiliki
warna kurang tajam, kabur, dan mengandung noise (misal bintik- bintik putih), sehingga
dilakukan suatu pemrosesan untuk memperbaiki citra. Penelitian ini dilakukan dengan
tujuan menghasilkan suatu program yang dapat digunakan untuk menilai posisi duduk
seseorang saat sedang bekerja dari segi pencegahan gangguan penyakit tulang belakang
dengan menerapkan algoritma thinning.

METODE PENELITIAN
Implementasi Algoritma thinning untuk menilai posisi duduk seseorang dari segi
pencegahan penyakit tulang belakang sebuah program yang dapat melakukan klasifikasi
dengan menilai posisi duduk seseorang menggunakan hasil citra thinning. Untuk
mendapatkan citra hasil thinning melewati beberapa proses antara lain tahap grayscale,
background subtraction, segementasi, dan thinning. Diagram alur pada program ini
adalah:

Diagram alur pada program

Dari diagram alur program diatas dijelaskan bahwa tahap pertama dengan
melakukan input citra RGB kemudian dilakukan proses preprocessing. Tahap
selanjutnya yaitu tahap klasifikasi, pada fase klasifikasi menggunakan operasi
geometrik yaitu pergeseran citra menggunakan citra hasil thinning. Hasil dari proses
klasifikasi terdapat dua pilihan yaitu memenuhi dan tidak memenuhi. Pada proses
preprocessing terdapat beberapa tahap yaitu grayscale, background subtraction,
segmentasi, dan thinning. Penjelasan mengenai tahap yang dilakukan dalam penelitian
ini yaitu:

Input citra RGB
Citra RGB digunakan sebagai citra masukan. Citra RGB diperoleh menggunakan
kamera. Citra RGB didapat maka dilakukan proses perubahan ukuran citra menjadi
Universitas Gunadarma Page 3

ukuran 30 x30 pixel. Citra tersebut adalah citra posisi duduk seseorang tampak samping.
Seperti gambar dibawah ini:

Gambar posisi duduk tampak samping

Sintak yang digunakan untuk mendapatkan citra RGB dengan ukuran 30x30 pixel
menggunakan kamera adalah
vid=videoinput('winvideo',1);
vid.ReturnedColorSpace='rgb';
vid.FramesPerTrigger=10;
start(vid);
I2=getsnapshot(vid);
handles.image= imresize(I2,[30 30]);
guidata(hObject,handles);
axes(handles.axes1)
imshow(handles.image);
title('Citra RGB');

Tahap Grayscale
Pada tahap pertama preprocessing yaitu grayscale. Pada penelitian ini digunakan
fungsi dari matlab yaitu rgb2gray untuk mengubah citra RGB menjadi citra grayscale.
Sintak yang digunakan pada program ini adalah:
image1 = handles.image;
handles.abu=rgb2gray(image1);
axes(handles.axes2)
imshow(handles.abu);
guidata(hObject,handles);
title('Citra Grayscale');

Tampilan gambar hasil proses grayscale pada gambar dibawah ini:


Gambar hasil grayscale

Tahap Background Subtraction
Pada tahap subtraction ini menggunakan citra hasil grayscale. Background
subtraction adalah tahapan untuk memisahkan antara object dengan background. Nilai
ambang batas yang digunakan pada program ini adalah 75. Citra akan diubah menjadi
nilai 0 dan 1. Nilai 0 menyatakan object sedangkan nilai 1 menyatakan background.
Sintak yang diterapkan pada program ini adalah:
Universitas Gunadarma Page 4

image2 = handles.abu;
[tinggi,lebar] = size(image2);
ambang =75;
biner = zeros(tinggi, lebar);
for baris=1 : tinggi
for kolom=1 : lebar
if image2(baris,kolom)>=ambang
biner (baris,kolom)=1; %%background
else
biner (baris,kolom)=0; %objek
end
end
end

axes(handles.axes3)
imshow(biner);
handles.gambar_hitam = biner;
guidata(hObject,handles);
title('Citra Subtraction');

Tampilan hasil citra background subtraction pada gambar dibawah ini:

Gambar hasil proses background subtraction

Tahap Segmentasi
Metode segmentasi yang digunakan pada program ini adalah segmentasi
berdasarkan daerah tertentu. Daerah yang diambil adalah posisi duduk tampak samping
pada objek manusia. Karena pixel yang digunakan memiliki ukuran 30 x 30 pixel maka
titik-titik yang diambil adalah [10 3 25 22]. Sintak yang digunakan pada program adalah
global image3
image3 = handles.I;
image3,[10 3 25 22])
axes(handles.axes2);
imshow(crop);
handles.gambar_potong = crop;
guidata(hObject,handles)

Hasil citra proses segmentasi pada gambar dibawah ini:

Gambar hasil proses segmentasi

Tahap Thinning
Universitas Gunadarma Page 5

Citra hasil segmentasi akan menjadi bahan pada proses thinning. Nilai citra yang
digunakan untuk proses thinning adalah 1 dan 0. Pada proses skeletonisasi
menggunakan metode thinning berdasarkan Algoritma Zhang and Suen yaitu proses
merubah bentuk dari citra hasil dilasi dan erosi yang berbentuk citra biner menjadi citra
yang menampilkan batas- batas objek yang hanya setebal satu pixel. Diagram alur pada
proses thinning dibawah ini:

mulai
Input citra hasil
segmentasi
If piksel =0
Piksel =0
Piksel =1
Iterasi hapus piksel
(8-tetangga)
Lebar per unit
(satu piksel)
Terhubung menjadi
satu garis
selesai
YA
TIDAK
YA
TIDAK
Simpan citra hasil

Diagram alur pada proses thinning

Pseudocode Algoritma Zhang and Suen ini menggunakan variabel l, variabel
citra yang akan ditipiskan dimana nilai 0 mewakili piksel berwarna hitam (citra gelap)
dan nilai 1 mewakili piksel berwarna putih (citra terang) atau lebih dikenal dengan
region point bernilai 1 dan background point bernilai 0. Objek didalam citra merupakan
objek yang saling terhubung dengan piksel berwarna putih. Jika M dan N adalah citra
sementara yang digunakan ditiap iterasi pada algoritma tersebut. M adalah keluaran
untuk iterasi ke n-1 dan N adalah keluaran untuk iterasi ke n. Algoritma Zhang and
Suen ini secara iteratif menghapus piksel= piksel pada citra biner. Transsisi dari 0 ke 1
atau dari 1 ke o pada konvensi lain, terjadi sampai dengan terpenuhi suatu keadaan
dimana satu himpunan dari lebar per unit (satu pixel) terhubung menjadi suatu garis.
Sintak yang digunakan pada program ini adalah:
%% PARALLEL THINNING ALGORITHM (ZHANG AND SUEN)
%% MatLab implementation %%

function z=skeletonimage(image3)
Imj=image3;
%% CHANGE THE IMAGE HERE!!!
I=(double(Imj));
%%Note: The image must be binary where 0=black and 1=white
%% objects must be composed of white pixels
Universitas Gunadarma Page 6

%% I = original image

[H,W]=size(I);

%%height, width of image %binarization with threshold 125 if image is
gray scale
if max(I)~=1
for hi= 1 : H
for wi = 1 : W
if I(hi,wi)>75
I(hi,wi)=1;
else
I(hi,wi)=0;
end
end
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
J=I; %% J = skeletonized image
K=I; %% K = skeletonized image
B=0; %% B = number of non-zero neighbors
A=0; %% A = 0-1 patterns
CHANGE=1000; %% number of pixels changed over iteration
P=zeros(8); %% array to hold the 8-neighborhood values
jml=0;

%% OUTER LOOP - LOOP UNTIL NO PIXELS CHANGE %%
while (CHANGE ~= 0)
%% reset #of changes
CHANGE =0;
%% FIRST SUB-ITERATION %%
for r=2:H-1 %% row
for c=2:W-1 %% column
if(J(r,c)==0)
%% find 8 neighborhood of pixel %%
P(9) = J(r-1,c-1); P(2) = J(r-1,c); P(3) = J(r-1,c+1);
P(8) = J(r,c-1); P(1)= J(r,c); P(4) = J(r,c+1);
P(7) = J(r+1,c-1); P(6) = J(r+1,c); P(5) = J(r+1,c+1);
%% calculate B %%
B = 8-(P(2)+P(3)+P(4)+P(5)+P(6)+P(7)+P(8)+P(9));
%% COMPUTE A %%
A=0;
if ( P(2)==1 & P(3)==0 )A=A+1; end
if ( P(3)==1 & P(4)==0 )A=A+1; end
if ( P(4)==1 & P(5)==0 )A=A+1; end
if ( P(5)==1 & P(6)==0 )A=A+1; end
if ( P(6)==1 & P(7)==0 )A=A+1; end
if ( P(7)==1 & P(8)==0 )A=A+1; end
if ( P(8)==1 & P(9)==0 )A=A+1; end
if ( P(9)==1 & P(2)==0 )A=A+1; end
%% DECIDE IF PIXEL SHOULD BE DELETED %%
if( (B>=2) & (B<=6) & (A==1) & ((P(2)==1 & P(8)==1)|(P(4)==1) |
(P(6)==1)))K(r,c)=1;
CHANGE=CHANGE+1;
%PAUSE
end
end
Universitas Gunadarma Page 7

end
end
%% SECOND SUB-ITERATION %%
J=K;
for r=2:H-1 %% row
for c=2:W-1 %% column
if(J(r,c)==0)
%% find 8 neighborhood of pixel %%
P(9) = J(r-1,c-1);
P(2) = J(r-1,c);
P(3) = J(r-1,c+1);
P(8) = J(r,c-1);
P(1) = J(r,c);
P(4) = J(r,c+1);
P(7) = J(r+1,c-1);
P(6) = J(r+1,c);
P(5) = J(r+1,c+1);
%% COMPUTE B %%
B = 8-(P(2)+P(3)+P(4)+P(5)+P(6)+P(7)+P(8)+P(9));
%% COMPUTE A %%
A=0;
if ( P(2)==1 & P(3)==0 )A=A+1; end
if ( P(3)==1 & P(4)==0 )A=A+1; end
if ( P(4)==1 & P(5)==0 )A=A+1; end
if ( P(5)==1 & P(6)==0 )A=A+1; end
if ( P(6)==1 & P(7)==0 )A=A+1; end
if ( P(7)==1 & P(8)==0 )A=A+1; end
if ( P(8)==1 & P(9)==0 )A=A+1; end
if ( P(9)==1 & P(2)==0 )A=A+1; end
%% DECIDE IF PIXEL SHOULD BE DELETED %%
if( (B>=2) & (B<=6) & (A==1) & ((P(4)==1 &P(6)==1)|(P(2)==1) |
(P(8)==1)))K(r,c)=1;
CHANGE=CHANGE+1;
end
end
end
end
CHANGE %% output # of changes this iteration
%% swap J with K
J=K;
jml=jml+1;
end
z=J;

Untuk memanggil fungsi skeletonimage perintah yang digunakan adalah:

global image4
image4 = handles.image3;
a4=size(image4);
if~(a4(1)==0)
handles.citra_tipis= skeletonimage(image4);
axes(handles.axes5);
imshow(handles.citra_tipis);
i=handles.citra_tipis;
imwrite(i,'coba.jpg','jpg');
guidata(hObject,handles);
title('Citra thinning');
end
Universitas Gunadarma Page 8




Tahap Klasifikasi
Pada tahap klasifikasi menggunakan operasi geometri yaitu pergeseran citra.
Citra yang digunakan pada proses klasifikasi ini adalah citra hasil thinning. Untuk
menentukan klasifikasi menggunakan nilai batas pixel. Nilai batas pixel didapat dari
range sudut yang terbentuk saat posisi duduk. Batasan sudut yang digunakan adalah 90
0

sampai 110
0
. Penentuan nilai tersebut sudah dilakukan oleh para ahli di bidangnya
sebelumnya. Langkah pertama menentukan titik acuan misalkan yakni titik A dengan
koordinat (x1,y1) dan titik B dengan koordinat (x,y) yang dapat dilihat pada Gambar
dibawah ini

Gambar Titik- titik (x,y;x1,y1)

Setelah mendapatkan kedua titik acuan maka akan ditarik garis secara horizontal
dan secara vertikal. Sehingga mendapatkan titik C dengan koordinat (x1-x,y). Setelah
mendapatkan ketiga titik tersebut maka ditentukan batas maksimal dari titik C. Batas
maksimal yang digunakan adalah 8 pixel. Digunakan batas maksimal untuk toleransi
terbentuknya sudut. Karena bila citra yang diambil ternyata dalam posisi duduk yang
benar tetapi posisi objek agak ke kiri atau ke kanan agar dapat dikenali. Operasi
geometrik adalah operasi pada citra yang dilakukan secara geometriks seperti translasi,
rotasi, dan penyekalan
[1]
. Pada operasi ini terdapat pemetaan geometrik, yang
menyatakan hubungan pemetaan antara pixel pada citra masukan dan pixel pada citra
keluaran. Terdapat dua pemetaan yaitu pemetaan ke depan dan pemetaan ke belakang.
Pada sistem ini digunakan pergeseran citra ke arah mendatar atau vertikal. Rumus yang
digunakan adalah
X
baru
= X
lama
+ S
x

Y
baru
= Y
lama
+ S
x

Untuk penyederhana pembulatan sx dan sy dianggap bertipe bilangan bulat. Untuk
mendapatkan batas maksimal 8 didapat dari perhitungan jumlah pixel dengan sudut
toleransi. Jumlah pixel yang digunakan pada wilayah object sebesar 20 x20 pixel sudut
yang digunakan adalah 45
0
. Untuk menentukan besar sudut setiap pergeseran 1 pixel
menggunakan formula:
(

)
Nilai 45
0
diambil dari sudut pada gambar dengan ukuran 20 x 20 pixel. Jadi setiap satu
pixel pergeseran posisi citra besaran sudut akan bergeser sebesar 2,25
0
. Nilai batas
Universitas Gunadarma Page 9

maksimal didapat dari hasil bagi selisih toleransi sudut dengan besaran pergeseran
sudut.
Batas Maksimal = (
(

)
Nilai batas maksimal yang didapat dibulatkan kebawah sehingga didapat angka 8.
Angka 8 akan dijadikan batas maksimal pergeseran citra pada tahap klasifikasi.
Langkah selanjutnya yang dilakukan adalah menerapkan nilai tersebut kedalam sintak
pada program.
test = handles.image;

[jum_kolom, jum_baris] = size(test);
piksel_max = 8;

for p=1 : jum_kolom
for q=1 : jum_baris
if test(p,q) <= piksel_max;
handles.hasil1 = imread('normal.jpg');
else
handles.hasil1 = imread('abnormal.jpg');

end
end
end
axes(handles.axes2);
imshow(handles.hasil1);
guidata(hObject,handles);

Pada sintak tersebut dijelaskan bila nilai yang didapat kurang dari sama dengan 8 maka
hasil klasifikasi adalah memenuhi dan akan tampil gambar normal.jpg. Namun bila nilai
lebih dari 8 maka hasil klasifikasi adalah tidak memenuhi dan akan tampil gambar
abnormal.jpg.


Gambar normal bila hasil memenuhi Gambar abnormal bila hasil tidak memenuhi

HASIL UJI COBA
Pada percobaan kali ini digunakan 20 citra RGB dengan ukuran 30 x 30 pixel
dengan posisi orang duduk tampak samping. Dari 20 jumlah citra terdiri dari 10 citra
dengan posisi duduk memenuhi persyaratan dan 10 citra tidak memenuhi persyaratan.
Dalam proses tahapan background subtraction digunakan ambang batas nilai sebesar
75. Selain itu di tentukan jumlah pixel maksimal pergeseran citra sejumlah 8 pixel. Bila
program dijalankan maka tampilannya akan seperti Gambar dibawah ini:

Universitas Gunadarma Page 10


Gambar hasil klasifikasi memenuhi


Gambar hasil klasifikasi tidak memenuhi

Hasil yang didapat setelah melakukan beberapa percobaan. Maka didapat hasil uji coba
pada Tabel dibawah ini:

Tabel Hasil Uji Coba

Universitas Gunadarma Page 11

Jumlah keberhasilah = 14
Persentase keberhasilan = (


)
= (

)
Persentase kegagalan = ( )

Pada percobaan yang sudah dilakukan untuk persentase keberhasilan terdapat
beberapa faktor yang berpengaruh antara lain faktor intensitas cahaya, warna baju yang
digunakan oleh objek apakah warna tersebut kontras atau tidak dengan warna kursi, dan
jumlah benda yang berada di sekitar objek.

PEMBAHASAN
Dalam penulisan ini telah berhasil dibuat suatu aplikasi Implementasi
Algoritma Thinning Untuk Menilai Posisi Duduk Seseorang Dari Segi Pencegahan
Penyakit Tulang Belakang. Aplikasi ini digunakan untuk menilai cara duduk seseorang
saat sedang bekerja tampak samping. Terdapat dua kondisi yang dihasilkan yaitu
kondisi saat posisi duduk memenuhi dan kondisi saat posisi duduk tidak memenuhi.
Untuk menentukan kondisi tersebut menggunakan hasil expert yang telah dilakukan
oleh para ahli dalam bidangnya dengan terbentuknya sudut antara 90
0
sampai 110
0
saat
posisi duduk. Dalam menjalankan aplikasi ini terdapat empat proses yang preprocessing
yaitu Grayscale, Background Subtraction, Segmentasi, dan Thinning. Dalam penelitian
ini digunakan 20 citra RGB dengan ukuran 30x30 pixel. Persentase keberhasilan yang
didapat pada penelitian adalah 70%. Sedangkan, persentase kegagalan yang didapat
pada penelitian ini adalah 30%. Untuk mendapatkan hasil persentasi keberhasilan
terdapat beberapa faktor yang berpengaruh yaitu faktor wana pakaian yang digunakan
oleh manusia, jumlah benda yang berada di sekeliling manusia, dan intensitas cahaya.
Dalam penelitian ini menggunakan pengambilan citra tampak samping. Metode
yang digunakan adalah pergeseran citra bukan menggunakan metode system pakar
misalkan Support Vector Machine (SVM) dan Neural Network (NN).

DAFTAR PUSTAKA
Acharya T, Ray A K. 2005; Image Processing Principles and Application; New Jersey:
John Wiley & Sons, Inc.
Efford N. 2000. Digital Image Processing a Practical Introduction Using Java. Assex:
Pearson Education Limited.
Gonzales R C, Woods R E, Eddins S L. 2004. Digital Image Processing Using
MATLAB. Pearson LPE.
Kadir A & Susanto A. 2013. Teori dan Aplikasi Pengolahan Citra; Andi: Yogyakarta.
Young I T, Gerbrands J J & Vliet L J V. 1998. Fundamentals Of Image Processing.
Delft: Delft University Of Technology.

Anda mungkin juga menyukai