Anda di halaman 1dari 6

MEMBEDAKAN OBJEK MENGGUNAKAN METODE THRESHOLDING DAN

FUNGSI MORFOLOGI
Muhamad Taufik Yusuf
Departemen Teknik Elektro, Fakultas Teknik Universitas Indonesia
Kampus Baru UI, Depok 16424, Indonesia
E-mail: klepitom@yahoo.com

ABSTRAK
Makalah ini memaparkan tentang pengenalan objek pada suatu citra. Metode yang digunakan adalah
thresholding dan fungsi morfologi. Dengan fungsi-fungsi tersebut dapat dikelompokkan suatu objek pada citra
masuk kedalam bentuk objek apa berdasarkan pencocokan citra yang sudah dilakukan pada tahap latihan
dengan citra yang ingin dikenali objeknya. Fungsi-fungsi tersebut dapat dengan mudah dilakukan dengan
bantuan perangkat lunak MATLAB. Program yang dibuat adalah modifikasi dari demo pada berkas help pada
perangkat lunak MATLAB.

Kata Kunci: object recognition, fungsi morfologi, threshold

1. PENDAHULUAN menyatakan tingkat keabuan pada titik tersebut. Pada


Penerapan komputer untuk pengenalan pola telah gambar berikut ini ditampilkan contoh koordinat
banyak dilakukan, seperti pengenalan karakter, suatu piksel dari citra digital dengan x
pengenalan suara, pengenalan sidik jari, pengenalan merepresentasikan baris dan y merepresentasikan
wajah dan lain-lain. Dasar dari pengenalan- kolom.
pengenalan tersebut adalah pengenalan objek pada
suatu citra. Makalah ini membahas tentang
penggunaan fungsi morfologi dan threshold untuk
membedakan objek dalam suatu citra. Program yang
digunakan adalah modifikasi dari program demo
yang disertakan matlab pada bagian help dengan
judul Identifying Round Object.

1.1 Citra dan Matriks Citra


Sebuah citra didefinisikan sebagai fungsi dua
dimensi, f(x,y) dimana x dan y adalah koordinat
spasial. Dan amplitudo fungsi pada setiap pasangan
titik (x,y) merupakan intensitas atau kecemerlangan
citra pada titik tersebut (Gonzales, 2004). Gray level
digunakan untuk menyebut intensitas dari citra Gambar 1. Koordinat Piksel
monokrom atau satu warna. Citra berwarna dibentuk Pada gambar diatas, piksel yang ditunjuk tanda
oleh kombinasi dari beberapa citra monokrom, panah berada pada koordinat (M,4). Jika
misalnya RGB dibentuk oleh kombinasi tiga warna direpresentasikan dalam bentuk matriks dapat dilihat
yaitu, merah, hijau dan biru. Karena itu banyak seperti pada persamaan berikut ini:
teknik pemrosesan citra monokrom dapat digunakan
untuk citra berwarna dengan memproses tiga  f (1,1) f (1,2) ... f (1, N ) 
komponen citra tersebut secara terpisah.  f (2,1) f (2,2) ... f (2, N ) 
Sebuah citra yang direkam oleh kamera f = (1)
merupakan citra analog. Untuk dapat diolah oleh  ... ... ... ... 
komputer, citra analog tersebut harus dikonversi ke  
 f ( M ,1) f ( M ,2) ... f ( M , N )
bentuk citra digital. Proses konversi nilai koordinat
(x,y) disebut sampling, dan proses konversi nilai
amplitudo f disebut quantisasi. Ketika x, y dan 1.2 Thresholding
amplitude f semuanya bernilai diskrit, maka citra Thresholding adalah metode paling sederhana
tersebut dapat dikatakan sebagai citra digital. dari segmentasi citra. Dari citra abu-abu,
Citra digital dapat di kodekan dalam bentuk thresholding dapat digunakan untuk membuat citra
matriks dimana indeks baris dan kolomnya biner (Shapiro, 2002). Pada proses thresholding,
menyatakan suatu titik pada citra tersebut dan masing-masing piksel pada sebuah citra ditandai
elemen matriksnya (yang disebut sebagai piksel) sebagai piksel milik objek jika nilainya lebih besar
dari nilai threshold. Dengan asumsi objek tersebut 1.3.1 Dilasi
lebih terang dari latar belakangnya, hal ini disebut Dilasi adalah operasi untuk mengembangkan atau
threshold above. Sedangkan kebalikannya disebut menebalkan objek pada citra biner. Dilasi A oleh
threshold below. Jika piksel-piksel suatu objek elemen-elemen terstruktur B didefinisikan dengan:
berada diantara dua threshold disebut threshold
inside dan kebalikannya disebut threshold outside.
Biasanya piksel suatu objek dilabeli dengan nilai “1”
A⊕ B = UA
b∈B
B
(3)

sementara piksel-piksel latar belakangnya dilabeli


dengan nilai “0”. Thresholding dapat dibentuk dalam Dilasi bersifat komutatif, dengan demikian dapat
persamaan sebagai berikut: dibentuk persamaan:

1, if f ( x, y ) ≥ T A⊕ B = B ⊕ A = UB (4)
g ( x, y ) =  (2) A
0, if f ( x, y ) < T a∈ A

Jika nilai T konstan, pendekatan ini disebut global Jika B memiliki pusat pada citra origin, maka
thresholding. Contoh hasil thresholding suatu citra dilasi dapat dipahami sebagai lokasi dari titik-titik
abu-abu dapat dilihat pada gambar berikut: yang ditutupi oleh B ketika pusat B memasuki A.
contoh dilasi pada citra dapat dilihat pada gambar
berikut ini:

Gambar 2. Citra Original

Gambar 4. Citra Dilasi

1.3.2 Erosi
Erosi pada citra biner dapat didefinisikan

(5)
Dimana Bz adalah translasi dari B oleh vector z
sedeikian sehingga:

, . (6)
Gambar 3. Efek Threshold Pada Citra Ketika elemen terstruktur B memiliki pusat dan
berlokasi di titik origin E, maka erosi dari A oleh B
1.3 Fungsi Morfologi dapat dipahami sebagai lokasi titik-titik yang digapai
Kata morfologi pada umumnya diketahui sebagai oleh pusat dari B ketika B memasuki A. erosi
cabang dalam ilmu biologi yang membahas tentang tersebut dapat dilihat pada persamaan berikut:
bentuk dan struktur hewan dan tumbuhan. Dalam
konteks pencitraan, morfologi adalah cara untuk
mengekstraksi komponen-komponen citra yang (7)
sangat berguna dalam representasi dan deskripsi
bentuk area seperti boundaries, skeleton dan convex
hull (Gonzales, 2004). Dengan kata lain, morfologi
dapat disebut sebagai fungsi untuk merubah bentuk
objek pada suatu citra. Morfologi terdiri atas dua Citra erosi dapat dilihat pada gambar berikut:
operasi dasar yaitu: dilasi dan erosi.
lain sebagainya. Pada citra dua dimensi, ada dua
buah macam hubungan berdasarkan letak piksel-
piksel tetangganya, yaitu: 4-tetangga atau 8-tetangga.

Gambar 6. Hubungan 4-Tetangga Piksel P


Gambar 5. Citra Erosi
1.3.3 Bentuk operasi pada Citra
Fungsi morfologi paling sering di
implementasikan untuk citra digital. Citra dijital
dapat diolah dengan operasi aritmatik dan lojik
antara dua citra. Operasi aritmatik diantaranya:
Penjumlahan (+), Pengurangan (-), Perkalian (x) atau
Pembagian (/). Sedangkan untuk operasi lojik Gambar 7. Hubungan 8-Tetangga Piksel P
diantaranya: OR, AND dan NOT. Resume dari
operasi pada citra digital dapat dilihat pada dua tabel
berikut: 2. METODOLOGI
Untuk membedakan objek pada citra
Tabel 1. Operasi Aritmatik menggunakan threshold dan fungsi morfologi,
Opr Fungsi MATLAB Ket langkah-langkah yang dilakukan adalah sebagai
berikut:
Penjumlahan a + b, A +
+ plus(A,B)
array dan matriks B, or a + A
2.1 Tahap Latihan
Pengurangan a - b, A - B, 1. Pembentukan Citra: Menentukan data yang
- Minus(A,B)
array dan matriks or a - A diperlukan dan memilih metode perekaman citra
digital.
Perkalian array 2. Pengolahan Awal: Mengkonversi citra kedalam
* Mtimes(A,B) A*B
dan matriks bentuk hitam-putih dan menentukan threshold
citra yang akan digunakan sebagai batas terluar
Pembagian array
objek.
/ dan matriks Mrdivide(A,B) A/B
3. Penghilangan Noise: Proses awal yang
(kanan)
dilakukan untuk memperbaiki kualitas citra.
Pembagian array Proses ini juga menghilangkan piksel-piksel
\ Mldivide(A,B) A\B yang tidak dibutuhkan untuk mengenali objek.
dan matriks (kiri)
Ada dua cara dalam memperbaiki citra yaitu :
Geometric Correction dan Radiometric
Tabel 2. Operasi Lojik Correction. Geometric Correction digunakan
untuk memperbaiki kerusakan kondisi yang
Opr Nama Ket disebabkan oleh sistem sensor atau geometri
& AND A&B dari objek. Untuk memperbaikinya digunakan
Image Registration. Sedangkan Radiometric
| OR A|B Correction digunakan untuk memperbaiki
− NOT A−B kerusakan kondisi yang disebabkan oleh noise.
Untuk memperbaikinya menggunakan Image
Filtering.
4. Pelabelan: Memberikan label pada wilayah-
1.4 Keterhubungan Piksel wilayah yang ada pada citra. Ada dua cara
Sebuah piksel dapat memiliki hubungan dengan dalam memberikan label citra yaitu:
piksel-piksel lain yang ada di sekitarnya. Hubungan memberikan label pada wilayah yang homogen
antar piksel dilihat dari kriteria kecemerlangan atau berdasarkan ciri tonal dan warna yang disebut
nilai keabuan. Misalnya: piksel-piksel tersebut sama- primary features, dan memberikan label pada
sama memiliki nilai “0” atau “1” atau sama-sama
bedanya tidak lebih dari lima tingkat keabuan, dan
wilayah bertekstur berdasarkan ciri tekstur nilai metric diatas 0.90, sebuah kotak memiliki nilai
disebut secondary features. metric antara 0.75 dan 0.85, sebuah segitiga
5. Klasifikasi: Pengelompokan objek berdasarkan memiliki nilai metric antara 0.50 dan 0.65.
bentuknya dengan melihat ciri primer atau
sekunder. 1. for k = 1:length(B)
2. boundary = B{k};
2.2 Tahap pencocokan 3. delta_sq = diff(boundary).^2;
Melakukan identifikasi objek pada citra. 4. perimeter =
Pengenalan objek dilakukan dengan membandingkan sum(sqrt(sum(delta_sq,2)));
ciri objek yang diamati dengan pengetahuan yang 5. area = stats(k).Area;
telah dimiliki tentang objek-objek yang ada. Sistem 6. metric = 4*pi*area/perimeter^2;
matching dibangun dengan melalui proses pelatihan 7. centroid = stats(k).Centroid;
dan proses pencocokan. Pada proses pelatihan Sebuah oval memiliki nilai metric antara 0.86 dan
dibangun suatu aturan keputusan, sedangkan pada 0.90, sebuah trapesium memiliki nilai metric antara
proses pencocokan digunakan aturan keputusan 0.66 dan 0.70. Kode program seperti pada baris kode
tersebut. dibawah ini:

3. PENJELASAN PROGRAM 1. if metric >= 0.90


3.1 Penjelasan Baris Kode 2. plot(boundary(:,2), boundary(:,1),
Program dibuat sebagai sebuah fungsi dengan 'r', 'LineWidth', 2)
satu inputan citra. Pada baris program di bawah ini 3. text(centroid(1,1)-
fungsi menerima masukan citra dan merubah citra 7,centroid(1,2),'','Color','r',...
tersebut ke dalam format grayscale. 'FontSize',10,'FontWeight','bold');
4. elseif ((metric >= 0.75)&&(metric <
1. function objectRecognition(pict) 0.85))
2. G = imread(pict); 5. plot(boundary(:,2), boundary(:,1),
3. I = rgb2gray(G); 'g', 'LineWidth', 2)
6. text(centroid(1,1)-
berikutnya program menghitung level dari global 7,centroid(1,2),'','Color','g',...
threshold yang nantinya akan digunakan untuk 'FontSize',10,'FontWeight','bold');
mengkonversi citra ke bentuk citra biner bersama 7. elseif ((metric >= 0.50)&&(metric <
fungsi im2bw. 0.65))
8. plot(boundary(:,2), boundary(:,1),
1. threshold = graythresh(I); 'b', 'LineWidth', 2)
2. bw = im2bw(I,threshold); 9. text(centroid(1,1)-
3. bw = imclearborder(bw, 4); 7,centroid(1,2),'','Color','b',...
4. bw = bwareaopen(bw,30); 'FontSize',10,'FontWeight','bold');
5. bw = imfill(bw,'holes'); 10. elseif ((metric >= 0.86)&&(metric
< 0.90))
Baris program diatas mengkonversi citra grayscale 11. plot(boundary(:,2), boundary(:,1),
menjadi citra biner. Citra keluaran bw menempati 'y', 'LineWidth', 2)
posisi semua piksel citra masukkan dengan nilai “1” 12. text(centroid(1,1)-
yang berarti putih, dan mengganti piksel-piksel 7,centroid(1,2),'','Color','b',...
lainnya dengan nilai “0” atau hitam. 'FontSize',10,'FontWeight','bold');
13. elseif ((metric >= 0.66)&&(metric
1. [B,L] = bwboundaries(bw,'noholes'); < 0.70))
2. stats = regionprops(L,'Area','Centroid'); 14. plot(boundary(:,2), boundary(:,1),
Kelompok perintah di atas melabel dan 'm', 'LineWidth', 2)
mengelompokkan objek-objek. Serta menghitung 15. text(centroid(1,1)-
7,centroid(1,2),'','Color','b',...
luas area dan titik tengah dari masing-masing objek.
'FontSize',10,'FontWeight','bold');
16. end
1. figure;
17. end
2. imshow(bw);
3. hold on;
Kemudian hasil dari pengenalan objek ditampilkan
Kelompok perintah diatas digunakan untuk dengan warna yang berbeda. Sesuai dengan kode
menampilkan hasil citra sementara yang telah diolah. program di bawah ini:
Kelompok perintah dibawah digunakan untuk
menganalisa satu persatu objek yang telah ditandai.
didalam tahap latihan, sebuah lingkaran memiliki
1. text(0,-
10,'Lingkaran','Color','r',...
'FontSize',10,'FontWeight','bold');
2. text(80,-10,'Kotak','Color','g',...
'FontSize',10,'FontWeight','bold');
3. text(140,-
10,'Segitiga','Color','b',...
'FontSize',10,'FontWeight','bold');
4. text(220,-10,'Oval','Color','y',...
'FontSize',10,'FontWeight','bold');
5. text(280,-
10,'Trapesium','Color','m',...
'FontSize',10,'FontWeight','bold');

3.2 Cara Pemakaian Gambar 9. Citra Hasil Program


Untuk menggunakan program yang dibuat, yang
harus dilakukan adalah: Tampak pada citra hasil ditemukan ada beberapa
1. Jalankan perangkat lunak MATLAB. objek yang memiliki bentuk berbeda namun dikenali
2. Atur current directory ke folder tempat modul sebagai objek yang sama. Hal itu terlihat pada
M-File dan gambar yang akan dianalisa gambar segitiga sama sisi dan persegi panjang.
disimpan. Pada objek segitiga sama sisi, nilai metric yang
3. Pada command window ketikkan: didapatkan adalah 0.53 dimana nilai tersebut masih
objectrecognition('testcitra03.png'), dimana berada pada kisaran 0.50 sampai 0.65 yaitu kisaran
“testcitra03.png” adalah citra yang diproses. objek segitiga. Sedangkan objek persegi panjang
4. Hasil dari citra yang diproses akan keluar pada nilai metric yang didapatkan adalah 0.76 dimana
Figure Window. nilai tersebut masih berada pada kisaran 0.75 sampai
0.85 yaitu kisaran kotak. Nilai metric yang
4. HASIL UJI COBA PROGRAM didapatkan sebagai pembanding pengenalan objek
Uji coba program menggunakan file citra bertipe pada citra dapat dilihat pada gambar berikut ini:
*.png dengan pertimbangan mudah untuk diubah-
ubah sesuai dengan keperluan. Inputan citra di
tentukan bertipe hitam-putih hanya untuk kemudahan
uji coba saja. Dapat juga dimasukkan citra berwarna.

Gambar 10. Nilai Metric dari Objek Pada Citra

Gambar 8. Gambar Original Citra Hitam-Putih 5. KESIMPULAN


Dari hasil uji coba didapatkan bahwa modul
Setelah dilakukan proses pengenalan objek,
program dapat berjalan dengan baik. Hasil
program membedakan masing-masing objek di
pengenalan sesuai dengan bentuk objek yang
dalam citra tersebut dengan warna yang berbeda.
diproses. Dengan menggunakan metode threshold
Ditentukan untuk bentuk objek segitiga diwakili oleh
dan fungsi morfologi dapat dideteksi bentuk yang
warna biru, untuk objek kotak diwakili oleh warna
berbeda-beda dan dilakukan pengenalan objek sesuai
hijau, untuk objek lingkaran diwakili oleh warna
dengan permintaan atau keinginan. Objek yang
merah, untuk objek oval diwakili warna kuning dan
dibedakan dapat diatur berdasarkan nilai metricnya
untuk objek trapesium diwakili oleh warna magenta.
dimana untuk bentuk objek yang berbeda nilai
metricnya juga berbeda. Sehingga dapat di
kelompokkan untuk kisaran nilai metric tertentu
adalah mewakili objek tertentu juga.

PUSTAKA

Gonzalez, R. C., Woods, R. E., dan Eddins, S. L.


(2004). Digital Image Processing Using
MATLAB, NJ: Prentice Hall.
Shapiro, Linda G. & Stockman, George C. (2002).
Computer Vision. Prentice Hall.
Widodo, Suryarini, Lulu Munggaran dan Nuryuliani,
(2006). Sistem Identifikasi Pengenalan Karakter
Menggunakan Metode RLE. Proceeding
Seminar Ilmiah Nasional Komputer dan Sistem
Intelijen, Universitas Gunadarma, Depok.
MATLAB, Help, Realease 14 Versi 7.0.0.19920.