Aplikasi Image Thresholding Untuk Segmentasi Objek Menggunakan Metode Otsu's Algorithm.
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