Aplikasi Image Thresholding Untuk Segmentasi Objek Menggunakan Metode Otsu's Algorithm.

(1)

Aplikasi Image Thresholding untuk Segmentasi Objek Menggunakan Metode Otsu’s Algorithm

Erick Hartas/0322002

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email: erickhartas@hotmail.com

ABSTRAK

Salah satu operasi di dalam analisis citra adalah segmentasi citra. Segmentasi citra ialah memisahkan objek dari latar belakangnya atau dari objek lain yang tidak menjadi perhatian. Metode segmentasi yang sederhana adalah dengan operasi pengambangan (thresholding). Operasi pengambangan menghasilkan citra biner, yang dalam hal ini objek yang menjadi acuan dibuat berwarna putih sedangkan latar belakangnya dibuat berwarna hitam (atau sebaliknya bergantung kasusnya).

Laporan tugas akhir ini mempresentasikan penggunaan operasi pengambangan dengan pemilihan nilai ambang berdasarkan metode Otsu’s

Algorithm untuk melakukan segmentasi objek. Program dirancang dengan

menggunakan Microsoft Visual Basic 6.0.

Berdasarkan hasil survey dengan nilai MOS 3,742, program aplikasi

image thresholding untuk segmentasi objek yang dirancang ini dapat dikatakan

berjalan cukup baik. Tetapi terdapat kelemahan apabila citra yang diuji mempunyai karakterisik histogram yang tidak memrepresentasikan objek dengan latar belakangnya.

kata kunci : segmentasi, citra, pengambangan, Otsu’s algorithm


(2)

Image Thresholding Aplication For Object Segmentation Using Otsu’s Algorithm Method

Erick Hartas/0322002

Department of Electrical Engineering, Christian Maranatha University Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email: erickhartas@hotmail.com

ABSTRACT

One of the operation in image analysis is image segmentation. Image Segmentation is seperating object from it’s background or from other object which is’nt being interested. The simple segmentation method is thresholding operation. This thresholding operation product binary image, which the reference object is set into white color, whereas the background is set into black color ( or the reverse depend on the case).

This last assignment report represents the using of thresholding operation for object segmentation where the threshold value is choosen by using Otsu’s Algorithm method.

Base on the survey result by the MOS value 3,742, this image thresholding for object segmentation program can be concluded works good enough. But the program has a weakness if the histogram characteristic of the image does not represent the object and it’s background.

Key word : segmentation, image, thresholding, Otsu’s algorithm


(3)

DAFTAR ISI

LEMBAR PENGESAHAN SURAT PERNYATAAN

ABSTRAK i ABSTRACT ii

KATA PENGANTAR iii

DAFTAR ISI v

DAFTAR GAMBAR vii

DAFTAR TABEL ix

DAFTAR LAMPIRAN x

BAB I PENDAHULUAN 1

I.1 Latar Belakang Masalah 1 I.2 Identifikasi Masalah 1

I.3 Tujuan 1

I.4 Pembatasan Masalah 2

I.5 Sistematika Penulisan 2

BAB II LANDASAN TEORI 3

II.1 Pengertian Citra dan Pengolahan Citra Digital 3

II.2 Warna 4

II.3 Grayscaling 5

II.4 Noise Pada Citra 6

II.4.2 Reduksi Noise Menggunakan Filter rata-rata 6

II.5 Histogram Citra 7

II.6 Thesholding 8

II.7 Otsu’s Algorithm 9

BAB III PERANCANGAN PROGRAM 12

III.1 Grayscaling 13

III.2.1 Program Grascaling 14

III.2 Smoothing 15

III.2.1 Program Smoothing 16


(4)

III.3 Histogram Citra 18

III.3.1 Program Histogram 19

III.4 Otsu’s Algorithm 20

III.4.1 Program Otsu’s Algorithm 21

III.5 Thresholding 22

III.5.1 Program Thresholding 23

III.6 Program Selesai 24

III.7 Tampilan Program 24

BAB IV DATA PENGAMATAN DAN ANALISA DATA 26 IV.1 Citra yang akan Diuji 26

IV.2 Hasil Pengujian 31

BAB V KESIMPULAN 41

V.1 Kesimpulan 41

V.2 Saran 41

DAFTAR PUSTAKA 42

LAMPIRAN A A-1

LAMPIRAN B B-1

LAMPIRAN C C-1


(5)

DAFTAR GAMBAR

Gambar II.1 Histogram Citra 9 Gambar II.2 Operasi Pengambangan 10 Gambar III.1 Diagram alir keseluruhan 13 Gambar III.2 Diagram alir grayscaling 14 Gambar III.3 Proses grayscaling 15 Gambar III.4 Diagram alir proses smoothing 16 Gambar III.5 Proses Smoothing 17 Gambar III.6 Diagram alir histogram 19 Gambar III.7 Proses membuat histogram citra 20 Gambar III.8 Diagram alir Otsu’s Algorithm 21 Gambar III.9 Diagram alir Thresholding 24 Gambar III.10 Tampilan Program 25 Gambar IV.1 Citra kromosom 27 Gambar IV.2 Citra Liver1 27 Gambar IV.3 Citra Cortex Grid Cell 28 Gambar IV.4 Citra Liver2 28 Gambar IV.5 Citra Sidik Jari 1 28 Gambar IV.6 Citra Sidik Jari 2 29 Gambar IV.7 Citra Sidik Jari 3 29 Gambar IV.8 Citra Sel Darah 1 29 Gambar IV.9 Citra Kromosom2 30 Gambar IV.10 Citra Sel Darah 2 30 Gambar IV.11 Citra Sepatu 30 Gambar IV.12 Citra Sel Darah Merah 31 Gambar IV.13 Citra Botol dan Gelas 31 Gambar IV.14 Citra Barcode 1 31 Gambar IV.15 Citra Barcode 2 32 Gambar IV.16 Hasil Pengujian terhadap Gambar IV.1 32 Gambar IV.17 Hasil Pengujian terhadap Gambar IV.2 33


(6)

Gambar IV.18 Hasil Pengujian terhadap Gambar IV.3 33 Gambar IV.19 Hasil Pengujian terhadap Gambar IV.4 34 Gambar IV.20 Hasil Pengujian terhadap Gambar IV.5 34 Gambar IV.21 Hasil Pengujian terhadap Gambar IV.6 35 Gambar IV.22 Hasil Pengujian terhadap Gambar IV.7 35 Gambar IV.23 Hasil Pengujian terhadap Gambar IV.8 36 Gambar IV.24 Hasil Pengujian terhadap Gambar IV.9 36 Gambar IV.25 Hasil Pengujian terhadap Gambar IV.10 37 Gambar IV.26 Hasil Pengujian terhadap Gambar IV.11 37 Gambar IV.27 Hasil Pengujian terhadap Gambar IV.12 38 Gambar IV.28 Hasil Pengujian terhadap Gambar IV.13 38 Gambar IV.29 Hasil Pengujian terhadap Gambar IV.14 39 Gambar IV.30 Hasil Pengujian terhadap Gambar IV.15 39


(7)

DAFTAR TABEL

Tabel III.1 Property 26

Tabel IV.1 Hasil Survey 39


(8)

DAFTAR LAMPIRAN

LAMPIRAN A A-1

LAMPIRAN B B-1

LAMPIRAN C C-1


(9)

LAMPIRAN A

LISTING PROGRAM


(10)

Program Image Thresholding untuk segmentasi objek

Dim h(3, 3) As Single

Private Sub Command1_Click()

Dim n(256) As Double Dim m As Long For i = 1 To 256 n(i) = 0

Next i

For i = 1 To Picture4.Width Step 15 For j = 1 To Picture4.Height Step 15 warna = Picture4.Point(i, j)

r = warna And RGB(255, 0, 0)

g = Int((warna And RGB(0, 255, 0)) / 256)

b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) x = Int((r + g + b) / 3)

n(x + 1) = n(x + 1) + 1

Picture4.PSet (i, j), RGB(x, x, x) Next j

Next i

ht2 = Picture3.Height For i = 1 To 256 xp = 15 * (i - 1) + 1

Picture3.Line (xp, ht2 - n(i))-(xp, ht2), RGB(255, 0, 0) Next i

For i = 1 To 256 m = m + n(i) Next i

Dim p(256) As Double


(11)

Dim ptot As Double ptot = 0

n(1) = 1

For i = 1 To 256 p(i) = n(i) / m ptot = ptot + p(i) Next i

Dim k As Integer k = 255

Dim w(256) As Double Dim Y(256) As Double Dim q(256) As Double Dim ra(256) As Double Dim qq(256) As Double Dim mewT(256) As Double Dim taob(256) As Double

For i = 1 To 256 w(i) = 0

q(i) = 0 ra(i) = 0 Next i

For j = 1 To k For i = 1 To j w(j) = w(j) + p(i) Next i

Y(j) = 1 - w(j) For i = 1 To j

q(j) = q(j) + ((i * p(i)) / w(j)) Next i

For i = j + 1 To 256


(12)

ra(j) = ra(j) + ((i * p(i)) / Y(j)) Next i

mewT(j) = q(j) * w(j) + ra(j) * Y(j) Next j

For i = 1 To k

taob(i) = w(i) * Y(i) * (ra(i) - q(i)) ^ 2 Next i

Dim max As Double Dim nilaik As Integer max = taob(1)

nilaik = 0 For i = 2 To k

If max <= taob(i) Then max = taob(i) nilaik = i End If Next i

For i = 1 To Picture1.Width Step 15 For j = 1 To Picture1.Height Step 15 warna = Picture1.Point(i, j)

r = warna And RGB(255, 0, 0)

g = Int((warna And RGB(0, 255, 0)) / 256)

b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) x = Int((r + g + b) / 3)

If x < nilaik Then x = 0 Else x = 255 Picture2.PSet (i, j), RGB(x, x, x) Next j

Next i

Label1.Caption = nilaik End Sub


(13)

Private Sub Command2_Click() Unload Me

End Sub

Private Sub Command3_Click() Dim x(600, 600) As Integer n1 = 0

For i = 1 To Picture1.ScaleWidth Step 15 n1 = n1 + 1

n2 = 0

For j = 1 To Picture1.ScaleHeight Step 15 warna = Picture1.Point(i, j)

r = warna And RGB(255, 0, 0)

g = Int((warna And RGB(0, 255, 0)) / 256)

b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) n2 = n2 + 1

wx = Int((r + g + b) / 3) x(n1, n2) = wx

Picture4.PSet (i, j), RGB(wx, wx, wx) Next j

Next i

For i = 1 To n1 For j = 1 To n2 z = 0

For u1 = -1 To 1 For u2 = -1 To 1

z = z + h(u1 + 2, u2 + 2) * x(i + u1, j + u2) Next u2

Next u1

Picture4.PSet ((i - 1) * 15 + 1, (j - 1) * 15 + 1), RGB(z, z, z)


(14)

Next j Next i End Sub

Private Sub Command4_Click()

For i = 1 To Picture1.ScaleWidth Step 15 For j = 1 To Picture1.ScaleHeight Step 15 warna = Picture1.Point(i, j)

r = warna And RGB(255, 0, 0)

g = Int((warna And RGB(0, 255, 0)) / 256)

b = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) wx = Int((r + g + b) / 3)

Picture4.PSet (i, j), RGB(wx, wx, wx) Next j

Next i End Sub

Private Sub Form_Load() For i = 1 To 3

For j = 1 To 3 h(i, j) = 1 / 9 Next j

Next i End Sub


(15)

LAMPIRAN B


(16)

DATA PENGAMATAN

Berikut adalah hasil percobaan yang dilakukan pada 15 buah gambar: • Percobaan ke-1

• Percobaan ke-2

• Percobaan ke-3


(17)

• Percobaan ke-4

• Percobaan ke-5

• Percobaan ke-6


(18)

• Percobaan ke-7

• Percobaan ke-8

• Percobaan ke-9


(19)

• Percobaan ke-10

• Percobaan ke-11

• Percobaan ke-12


(20)

• Percobaan ke-13

• Percobaan ke-14

• Percobaan ke-15


(21)

LAMPIRAN C

DATA SURVEY


(22)

BAB I

PENDAHULUAN

1.1. Latar Belakang

Sistem machine vision sering dianggap terdiri dari 2 buah sub-sistem yaitu: Low-level vision dan High-level vision. Low-level vision terdiri dari operasi pengolahan citra seperti pengurangan noise, perbaikan citra dan restorasi citra.

High-level vision mencakup pengenalan objek dan pada tingkat tertingginya,

interpretasi gambar. Jembatan diantara kedua sub-sistem ini adalah segmentasi yang bertujuan untuk memisahkan wilayah (region) objek dengan wilayah latar belakangnya.

Setiap gambar memiliki karakteristik histogram yang berbeda, jadi nilai ambangnya pada gambar yang satu dengan yang lain akan berbeda. Oleh karena itu penggunaan nilai ambang tertentu seperti 128 (fixed threshold) pada bermacam-macam gambar akan tidak optimal. Dalam konteks demikian maka dibutuhkan program yang dapat mensegmentasi objek dengan image thresholding berdasarkan pemilihan nilai ambang secara tepat pada setiap gambar.

Metode Otsu’s algorithm merupakan salah salah satu cara untuk

menentukan nilai ambang secara tepat pada setiap citra. Metode ini menentukan suatu nilai ambang berdasarkan analisis diskriminan.

1.2. Identifikasi Masalah

Bagaimana membuat aplikasi image thresholding untuk segmentasi objek dengan menggunakan metode Otsu’s algorithm ?

• Bagaimana memperoleh hasil segmentasi yang bagus apabila citra yang diuji mempunyai kualitas yang buruk?


(23)

1.3. Maksud dan Tujuan

Mengaplikasikan image thresholding untuk segmentasi objek dengan metode Otsu’s Algorithm dan dengan perbaikan kualitas citra agar diperoleh hasil yang bagus.

1.4. Pembatasan Masalah

Citra yang diuji hanyalah citra hitam-putih (gray level) saja Algoritma yang digunakan adalah Otsu’s algorithm

• Program dibuat dengan Microsoft Visual Basic 6.0 • Dimensi dari citra tidak lebih dari 400x400 pixel 1.5. Sistematika Penulisan

Agar dalam penulisan laporan Tugas Akhir ini lebih terarah dan teratur serta terstruktur maka akan dibagi dalam :

BAB I PENDAHULUAN

Berisi latar belakang, identifikasi masalah, maksud dan tujuan, pembatasan masalah, dan sistematika penulisan.

BAB II LANDASAN TEORI

Berisi tentang teori-teori yang menunjang dalam pembuatan aplikasi dalam tugas akhir ini, yaitu ulasan mengenai pengertian citra dan pengolahan citra digital, warna, grayscaling, noise pada citra, histogram, thresholding dan Otsu’s Algorithm.

BAB III PERANCANGAN

Bab ini berisi baris-baris program yang digunakan untuk membuat program pengolahan citra, penjelasan program pengolahan citra beserta flowchart program pengolahan citra.

BAB IV DATA PENGAMATAN DAN ANALISA

Berisi gambar yang akan diuji, tampilan hasil percobaan dan hasil survey yang dilakukan.

BAB V KESIMPULAN DAN SARAN Berisi kesimpulan dan saran.


(24)

BAB V

KESIMPULAN

V.1 Kesimpulan

Berikut ini adalah kesimpulan yang diperoleh dari hasil percobaan :

• Berdasarkan hasil survey yang dilakukan pada terhadap 15 percobaan, program aplikasi image thresholding untuk segmentasi objek dengan metode Otsu’s Algorithm yang telah dirancang dapat berjalan cukup baik dengan nilai MOS dari survey sebesar 3,742.

• Dari 15 percobaan yang dilakukan, terdapat 3 percobaan yang dianggap gagal karena citra yang diuji tersebut memiliki karakteristik histogram yang sulit dianalisa oleh metode Otsu’s Algorithm. Seperti pada Gambar IV.14 yang memiliki histogram yang datar/lebar serta pada Gambar IV.6 dan Gambar IV.9 yang histogram dari citra tersebut tidak dapat merepresentasikan objek dengan latar belakangnya.

V.2 Saran

Berikut adalah saran yang dapat diberikan dari hasil percobaan :

• Untuk segmentasi gambar yang memiliki pola histogram datar dan lebar, sebaiknya menggunakan metode lain yang lebih cocok pada gambar tersebut.


(25)

DAFTAR PUSTAKA

1. Basuki, Achmad. Josua F. Palandi dan Fatchurrochman, “Pengolahan Citra Digital menggunakan Visual Basic”, edisi pertama, Graha Ilmu, Yogyakarta, 2005

2. Lilly Spirkovska, Ames Research Center, Moffet Field, A Summary of Image Segmentation Techniques, California, 1993

3. Nalwan Agustinus, “ Pengolahan Gambar Secara Digital”, Informatika, Bandung, 2004

4. Pitas, Ioannis, Digital Image Processing Algorithms, Prentice-Hall,1993. 5. Rinaldi Munir, ”Pengolahan Citra Digital dengan Pendekatan

Algoritmik”, Informatika, Bandung, 2001

6. Tim Wahana Komputer, “Tip & Trik Pemrograman Visual Basic 6.0”, Wahana Komputer, Semarang, 2001


(1)

• Percobaan ke-13

• Percobaan ke-14

• Percobaan ke-15


(2)

LAMPIRAN C

DATA SURVEY


(3)

BAB I

PENDAHULUAN

1.1.Latar Belakang

Sistem machine vision sering dianggap terdiri dari 2 buah sub-sistem yaitu: Low-level vision dan High-level vision. Low-level vision terdiri dari operasi pengolahan citra seperti pengurangan noise, perbaikan citra dan restorasi citra. High-level vision mencakup pengenalan objek dan pada tingkat tertingginya, interpretasi gambar. Jembatan diantara kedua sub-sistem ini adalah segmentasi yang bertujuan untuk memisahkan wilayah (region) objek dengan wilayah latar belakangnya.

Setiap gambar memiliki karakteristik histogram yang berbeda, jadi nilai ambangnya pada gambar yang satu dengan yang lain akan berbeda. Oleh karena itu penggunaan nilai ambang tertentu seperti 128 (fixed threshold) pada bermacam-macam gambar akan tidak optimal. Dalam konteks demikian maka dibutuhkan program yang dapat mensegmentasi objek dengan image thresholding berdasarkan pemilihan nilai ambang secara tepat pada setiap gambar.

Metode Otsu’s algorithm merupakan salah salah satu cara untuk menentukan nilai ambang secara tepat pada setiap citra. Metode ini menentukan suatu nilai ambang berdasarkan analisis diskriminan.

1.2.Identifikasi Masalah

Bagaimana membuat aplikasi image thresholding untuk segmentasi objek dengan menggunakan metode Otsu’s algorithm ?

• Bagaimana memperoleh hasil segmentasi yang bagus apabila citra yang diuji mempunyai kualitas yang buruk?


(4)

1.3.Maksud dan Tujuan

Mengaplikasikan image thresholding untuk segmentasi objek dengan metode Otsu’s Algorithm dan dengan perbaikan kualitas citra agar diperoleh hasil yang bagus.

1.4.Pembatasan Masalah

Citra yang diuji hanyalah citra hitam-putih (gray level) saja Algoritma yang digunakan adalah Otsu’s algorithm

• Program dibuat dengan Microsoft Visual Basic 6.0 • Dimensi dari citra tidak lebih dari 400x400 pixel 1.5. Sistematika Penulisan

Agar dalam penulisan laporan Tugas Akhir ini lebih terarah dan teratur serta terstruktur maka akan dibagi dalam :

BAB I PENDAHULUAN

Berisi latar belakang, identifikasi masalah, maksud dan tujuan, pembatasan masalah, dan sistematika penulisan.

BAB II LANDASAN TEORI

Berisi tentang teori-teori yang menunjang dalam pembuatan aplikasi dalam tugas akhir ini, yaitu ulasan mengenai pengertian citra dan pengolahan citra digital, warna, grayscaling, noise pada citra, histogram, thresholding dan Otsu’s Algorithm.

BAB III PERANCANGAN

Bab ini berisi baris-baris program yang digunakan untuk membuat program pengolahan citra, penjelasan program pengolahan citra beserta flowchart program pengolahan citra.

BAB IV DATA PENGAMATAN DAN ANALISA


(5)

BAB V

KESIMPULAN

V.1 Kesimpulan

Berikut ini adalah kesimpulan yang diperoleh dari hasil percobaan :

• Berdasarkan hasil survey yang dilakukan pada terhadap 15 percobaan, program aplikasi image thresholding untuk segmentasi objek dengan metode Otsu’s Algorithm yang telah dirancang dapat berjalan cukup baik dengan nilai MOS dari survey sebesar 3,742.

• Dari 15 percobaan yang dilakukan, terdapat 3 percobaan yang dianggap gagal karena citra yang diuji tersebut memiliki karakteristik histogram yang sulit dianalisa oleh metode Otsu’s Algorithm. Seperti pada Gambar IV.14 yang memiliki histogram yang datar/lebar serta pada Gambar IV.6 dan Gambar IV.9 yang histogram dari citra tersebut tidak dapat merepresentasikan objek dengan latar belakangnya.

V.2 Saran

Berikut adalah saran yang dapat diberikan dari hasil percobaan :

• Untuk segmentasi gambar yang memiliki pola histogram datar dan lebar, sebaiknya menggunakan metode lain yang lebih cocok pada gambar tersebut.


(6)

DAFTAR PUSTAKA

1. Basuki, Achmad. Josua F. Palandi dan Fatchurrochman, “Pengolahan Citra Digital menggunakan Visual Basic”, edisi pertama, Graha Ilmu, Yogyakarta, 2005

2. Lilly Spirkovska, Ames Research Center, Moffet Field, A Summary of Image Segmentation Techniques, California, 1993

3. Nalwan Agustinus, “ Pengolahan Gambar Secara Digital”, Informatika, Bandung, 2004

4. Pitas, Ioannis, Digital Image Processing Algorithms, Prentice-Hall,1993. 5. Rinaldi Munir, ”Pengolahan Citra Digital dengan Pendekatan

Algoritmik”, Informatika, Bandung, 2001

6. Tim Wahana Komputer, “Tip & Trik Pemrograman Visual Basic 6.0”, Wahana Komputer, Semarang, 2001