Jefri Mulyadi
1520301034
Pembimbing
Yuli Triyani, S.S.T.,M.Eng.
Wiwin Styorini, S.T., M.T.
Jefri Mulyadi
NIM. 1520301034
Disetujui oleh:
Pembimbing, Penguji,
Mengetahui,
Ketua Program Studi Teknik Elektronika Telekomunikasi
Jefri Mulyadi
iii
ABSTRAK
iv
ABSTRACT
v
KATA PENGANTAR
vi
sehingga dapat menyelesaikan perjuangan dari awal hingga akhir
pendidikan D4.
7. Seluruh Dosen Program Studi Teknik Elektronika Telekomunikasi
yang telah memberikan bekal ilmu kepada penulis dari awal hingga
menyelesaikan proyek akhir.
8. Teman-teman TET G15 yang telah memberikan motivasi dan rasa
kekeluargaan selama menyelesaikan pendidikan D4 ini.
9. Seluruh teman kelas Angkatan 15 Teknik Elektronika
Telekomunikasi kelas C yang sama-sama berjuang dan membantu
menyelesaikan proyek akhir.
10. Annisa Hasanah yang selalu mendukung dan menemani penulis yang
sama-sama berjuang menyelesaikan proyek akhir.
11. Teman-teman keluarga Lab 234 yang telah banyak membantu dalam
proses pengerjaan proyek akhir ini hingga selesai.
12. Teman-teman seperjuangan team citra ( yumna, ririn ) atas bantuan
dan kerjasama nya yang luar biasa, sehingga bias sampai ke tahap ini
bersama-sama
13. Teman teman terbaik kuliah ( Denny, Jhones, Ihsanul, Irsyad, Dikin,
Ahmad lutfi, Ananda, Hertika,Wichika,Velly, Ono dan dll) yang telah
memberikan semangat dan motivasi kepada penulis selama
pengerjaan penelitian ini
Penulis menyadari bahwa penulis adalah seorang makhluk yang tidak
sempurna, yang tidak terlepas dari kesalahan dan kekurangan. Oleh karena
itu, penulis menerima setiap kritik dan saran pembaca yang dapat
membangun serta menambah pengetahuan untuk kebaikan penulis di
masa yang akan datang.
Jefri Mulyadi
vii
DAFTAR ISI
ABSTRAK .................................................................................. iv
ix
BAB IV HASIL DAN ANALISA..............................................47
DAFTAR PUSTAKA..................................................................62
LAMPIRAN .................................................................................. i
x
DAFTAR GAMBAR
Gambar 2. 1 Cahaya dari suatu titik dari objek pada jarak yang jauh
dan dekat ......................................................................................13
Gambar 2. 2 penampang mata manusia ........................................14
Gambar 2. 3 (a) Citra Diabetic Retinophaty dan (b) citra mata
normal...........................................................................................15
Gambar 2. 4 Haemorrhage pada penderita diabetic retinopathy
(tanda panah) ................................................................................16
Gambar 2. 5 Soft Exudate pada penderita diabetic retinopathy
(tanda panah) ................................................................................17
Gambar 2. 6 Hard Exudate pada penderita diabetic retinopathy
(tanda panah) ................................................................................17
Gambar 2. 7 Retina yang terkena cotton wool .............................18
Gambar 2. 8 Arsitektur Neural Network ......................................22
Gambar 2. 9 Artificial Neural Network dengan Lapisan Tunggal 24
Gambar 2. 10 Artificial Neural Network dengan Lapisan Jamak. 25
Gambar 2. 11 SVM Berusaha menemukan Hyperplane terbaik yang
memisahkan kedua class -1 dan -2 ...............................................30
Gambar 3. 1 Diagram alir pengerjaan TA ....................................34
Gambar 3. 2 Arsitektur sistem ......................................................35
Gambar 3. 3 Citra fundus mata berwarna (RGB) .........................36
Gambar 3. 4 (a) Citra Grayscale, (b) Citra Green Channel, (c) Citra
Greyscale......................................................................................37
xi
Gambar 3. 5 (a) citra hasil proses otsu thresholding, (b) citra hasil
ekstraksi morfologi opening .........................................................38
Gambar 3. 6 (a) Grayscale, (b) mask optic disk, (c) optic disk
dihilangkan ...................................................................................38
Gambar 3. 7 Blood Vessel jumlah pixel 34097 ............................41
Gambar 3. 8 Blok Diagram Exudates ...........................................42
Gambar 3. 9 Citra Exudates .........................................................42
Gambar 3. 10 Blok Diagram Microaneurysms.............................43
Gambar 3. 11 Deteksi Microaneurysms .......................................44
Gambar 4. 1 Hasil Blood Vesssels ...............................................48
Gambar 4. 2 bagian Exudates (a), citra setelah proses morfologi
Closing (b) ....................................................................................49
Gambar 4. 3 Citra hasil deteksi microaneuarysms .......................50
Gambar 4. 4 Tampilan Halaman Utama .......................................57
Gambar 4. 5 Proses Input Citra ....................................................58
Gambar 4. 6 Tampilan Hasil ........................................................58
xii
DAFTAR TABEL
xiii
BAB I
PENDAHULUAN
1
Retinopati Diabetik pada umumnya disebabkan oleh
Diabetes. Pada prinsipnya, retina mata perlu dialiri darah secara
teratur agar dapat bekerja dengan baik. Diabetes sendiri adalah
kondisi yang menyebabkan kelainan pada kemampuan tubuh
dalam menyimpan dan memproses gula dalam tubuh, terutama
yang akan digunakan dalam darah. Gejala yang ditunjukkan oleh
penderita DR antara lain mikroneurisma, hemorrhages, Hard
Exudates, Soft Exudates dan neovascularis. Gejala-gejala tersebut
pada suatu intensitas tertentu dapat menjadi indikator fase (tingkat
keparahan) retinopati diabetes. Secara umum fase tersebut dibagi
dalam tiga fase, yaitu non-proliferative diabetic retinopathy
(NPDR) proliferative diabetic retinopathy (PDR) serta macular
edema (ME).
Dalam pengenalan sebuah citra, proses klasifikasi sama
pentingnya dengan proses ekstraksi ciri. Setelah ciri-ciri penting
data atau citra retina dihasilkan pada proses ekstraksi ciri, ciri-ciri
tersebut nantinya akan digunakan untuk proses klasifikasi. Metode
klasifikasi yang digunakan adalah Neural Network, Neural
Network digunakan karena dapat mensimulasikan perilaku sistem
biologi susunan syaraf manusia, yang terdiri dari sejumlah besar
unit pemrosesan yang disebut neuron, yang beroperasi secara
parallel, sejak tahun 1950-an, Neural Network telah digunakan
untuk tujuan prediksi maupun klasifikasi dan selain Neural
Network, Metode SVM digunakan juga untuk klasifikasi Diabetic
Retinophaty, SVM (Support Vector Machines) merupakan
machine learning algorithm yang sering dipakai untuk proses
klasifikasi karena dapat dengan mudah untuk diimplementasikan
dan secara umum memiliki performansi yang baik dibidang pattern
recognition. Oleh karena itu Penelitian ini bertujuan untuk
membandingkan antara dua metode klasifikasi yaitu SVM dan
ANN, dan metode mana kah yang paling baik dalam melakukan
2
klasifikasi untuk deteksi otomatis Diabetic Retinophaty pada Citra
Fundus.
1.2 Rumusan Masalah
Adapun rumusan masalah dalam Penelitian ini yaitu:
1) Apakah ciri ekstrasi tekstur dapat digunakan untuk
deteksi penyakit Diabetic Retinophaty.
2) Apakah ANN (Artificial Neural Network) Lebih baik di
bandingkan dengan SVM (Support Vector Machines)
3) Apakah Segmentasi dan Pre-processing dapat
membantu proses klasifikasi
1.3 Batasan Masalah
Adapun batasan masalah dalam pembuatan penelitian ini
adalah:
1) Citra yang digunakan adalah citra fundus mata.
2) Format file citra Joint Photographic Group (.jpg).
3) Data yang digunakan dalam penelitian ini adalah data
kelainan mata khususnya pada penderita Diabetic
Retinophaty tahun 1996-2004 yang di teliti oleh STARE
(Structured Analysis of the Retina) .
4) Metode yang digunakan untuk klasifikasi hanya ANN dan
SVM.
5) Penyakit mata yang diidentifikasi adalah Diabetic
Retinophaty.
6) Tidak melakukan akuisisi data citra fundus.
1.4 Tujuan dan Manfaat
1.4.1 Tujuan
Adapun tujuan pada Penelitian ini adalah:
1) Untuk mendeteksi penyakit Diabetic Retinophaty secara
otomatis.
3
2) Untuk membanding kan dua metode pengklasifikasian.
1.4.2 Manfaat
Manfaat yang diharapkan pada Penelitian ini adalah:
1) Membantu ahli fundus mata dalam mendeteksi penyakit
Diabetic Retinophaty.
2) Membantu penelitian selanjutnya untuk menentukan
metode klasifikasi yang terbaik.
3) Memberikan kontribusi bagi perkembangan pengolahan
citra medis khususnya klasifikasi citra fundus pada
Diabetic Retinophaty
1.5 Metodologi yang Digunakan
Metode penelitian yang digunakan pada Penelitian ini
adalah:
1) Studi Literatur
Pada tahap ini dilakukan studi literatur berupa buku
referensi, artikel, dan jurnal-jurnal yang dapat menunjang
Proyek Akhir ini.
2) Konsultasi dan diskusi
Tahap ini dilakukan dengan dosen pembimbing yang
kompeten terhadap Pengolahan Citra menggunakan
software Matlab dan Weka.
3) Pengumpulan data
Pada tahap ini dilakukan pengumpulan data fundus mata
yang di peroleh dari kelainan mata khususnya pada
penderita Diabetic Retinophaty tahun 1996-2004 yang di
teliti oleh STARE (Structured Analysis of the Retina) .
sebanyak 94 data fundus mata, 38 data Normal dan 56 data
Diabetic Retinophaty.
4) Analisa dan Perancangan
4
Pada tahap ini dilakukan analisis dan perancangan system
dengan menggunakan Software Matlab dan machine
learning Weka.
1.6 Sistematika Penulisan
Sistematika penulisan laporan penelitianini secara
keseluruhan terdiri dari lima bab, masing-masing terdiri dari
beberapa sub bab. Adapun pokok pembahasan dari masing-masing
bab tersebut secara garis besar sebagai berikut:
BAB I PENDAHULUAN
Bab ini menguraikan tentang latar belakang masalah,
perumusan masalah dan ruang lingkup masalah, tujuan dan
manfaat penelitian, metodologi penelitian dan sistematika
penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini menguraikan beberapa hasil penelitian terdahulu dan
landasan teori yang diperlukan untuk merancang sistem.
BAB III PERANCANGAN
Bab ini berisi langkah-langkah yang akan dilakukan dalam
melakukan perancangan perbandingan metode klasifikasi pada
penyakit diabetic retinphaty berdasarkan tahap-tahap yang akan di
lakukan untuk mendapat kan metode yang baik.
BAB IV HASIL DAN PEMBAHASAN
Bab ini berisi pembahasan tentang pengujian, pengambilan
data dan analisis dari hasil klasifikasi deteksi otomatis Diabetic
Retinophaty dan pengujian dari kedua metode yang di gunakan
yaitu SVM dan ANN.
BAB V PENUTUP
Berisikan kesimpulan dari uraian pada bab-bab yang telah
dibahas sebelumnya serta saran yang diharapkan dapat membantu
5
dalam hal evaluasi dan perbaikan Penelitian ini untuk
pengembangan lebih lanjut.
6
BAB II
TINJAUAN PUSTAKA
7
Network Backpropagation dan data yang digunakan bersumber
dari alamat web.
Menurut Azhar Effendi (2013) dengan judul Penggunaan
Artificial Neural Network untuk mendeteksi kelainan miopi pada
manusia dengan metode Backpropagation, tahapan dalam
penelitian ini antara lain : mengambil data kelainan mata miopi dari
Optik Ijen Kota Malang Tahun 2010-2011, pencarian bobot dari
Artificial Neural Network, mendiskripsikan data, dan analisis data
yang ada. Model Artficial Neural Network yang akan digunakan
adalah model Backpropagation dengan fungsi aktivasi fungsi
sigmoid biner dan pada kelainan mata ini penulis tidak mengikut
sertakan kelainan mata silinder.
Menurut Usep Tatang Suryadi (2015) dengan judul
komparasi Support Vector Machine dan Neural Network untuk
prediksi kelulusan dengan menggunakan Metode Neural Network
dan Support Vector Machine dan hasil yang di dapat kan Hasil
pengujian menunjukkan model dengan metode Neural Network
memiliki akurasi sebesar 96.61% dan nilai AUC sebesar 0.997
sedangkan untuk metode Support Vector Machine memiliki nilai
akurasi sebesar 98.91% dan nilai AUC sebesar 1.000. Sehingga
dapat disimpulkan penerapan metode Support Vector Machine
lebih baik dari Neural Network pada data sertifikasi benih kentang.
Menurut Wahyudi Setiawana. Dkk (2015) dengan judul
Sistem Deteksi Retinopati Diabetik Menggunakan Support Vector
Machine dan Hasil tes dilakukan dengan mengambil dataset
MESSIDOR dengan jumlah gambar yang bervariasi untuk tahap
pelatihan, jika tidak digunakan untuk fase pengujian. Hasil
pengujian menunjukkan akurasi yang optimal adalah 84%.
Berikut merupakan table perbandingan dengan penelitian-
penelitian terdahulu:
8
Table 2. 1 Perbandingan Penelitian Terdahulu
9
3 Azhar Pengguna Artificial Hasil
Effendi an Neural Proproprtion
/ 2013 Artificial Network correct sebesar
Neural 100% dengan
Network kesalahan
untuk sebesar 0% yang
mendetek berarti tidak
si ditemukan objek
kelainan yang salah pada
miopi pengelompokan
pada data
manusia
dengan
metode
Backprop
agation
4 Usep Komparas Metode Hasil pengujian
Tatang i Support Neural menunjukkan
Suryadi Vector Network dan model dengan
/ 2015 Machine Support metode Neural
dan Vector Network
Neural Machine memiliki
Network akurasi sebesar
untuk 96.61% dan
Prediksi nilai AUC
10
Kelulusan sebesar 0.997
Sertifikasi sedangkan
Benih untuk metode
Kentang Support Vector
Machine
memiliki nilai
akurasi sebesar
98.91% dan
nilai AUC
sebesar 1.000.
Sehingga dapat
disimpulkan
penerapan
metode Support
Vector Machine
lebih baik dari
Neural Network
pada data
sertifikasi benih
kentang.
2.2 Mata
Mata merupakan organ yang mendeteksi cahaya. Mata
secara sederhana tidak melakukan apapun kecuali mendeteksi
apakah lingkungan sekitarnya gelap atau terang, yang cukup untuk
penglihatan. Mata pada hal yang lebih kompleks dapat
membedakan bentuk dan warna. Pada mata manusia, cahaya
masuk melalui pupil dan difokuskan pada retina dengan bantuan
lensa . Sel-sel syaraf sensitif cahaya disebut rod (untuk kecerahan)
dan cone (untuk cahaya) yang beraksi terhadap cahaya. Keduanya
berinteraksi satu dengan lainnya dan mengirimkan pesan ke otak
yang mengindikasikan kecerahan, warna dan kontur.
12
Gambar 2. 1 Cahaya dari suatu titik dari objek pada jarak yang jauh dan
dekat
13
Gambar 2. 2 penampang mata manusia
(a)
14
(b)
Gambar 2. 3 (a) Citra Diabetic Retinophaty dan (b) citra mata normal
16
Gambar 2. 5 Soft Exudate pada penderita diabetic retinopathy (tanda
panah)
17
mengakibatkan muncul bercak-bercak putih seperti kapas yang
disebut sebagai cotton wool.
18
yang akan dilakukan pada tingkatan ini di antaranya adalah (T.
Sutoyo dkk, 2009):
a. Peningkatan kualitas citra (kontras, brightness, dan lain-lain)
b. Menghilangkan noise
c. Perbaikan Citra (image restoration)
d. Transformasi (image transformation)
e. Menentukan bagian citra yang akan diobersvasi
Peningkatan kualitas citra dapat dibagi menjadi dalam dua
kategori, yaitu metode domain spasial (ruang atau waktu) dan
metode domain frekuensi. Teknik pemrosesan metode domain
spasial berdasarkan manipulasi langsung dari piksel di dalam citra.
Sedangkan teknik pemrosesan metode domain frekuensi adalah
berdasarkan perubahan transformasi fourier pada citra (T.Sutoyo
dkk, 2009).
3. Segmentasi
Tahapan ini bertujuan untuk mempartisi citra menjadi
bagian-bagian pokok yang mengandung informasi penting.
Misalnya, memisahkan objek dan latar belakang.
4. Representasi dan deskripsi
Dalam hal ini representasi merupakan suatu proses untuk
merepresentasikan suatu wilayah sebagai suatu daftar titik-titik
koordinat dalam kurva yang tertutup, dengan deskripsi luasan atau
permeternya. Setelah suatu wilayah dapat direpresentasikan,
proses selanjutnya adalah melakukan deskripsi citra dengan cara
seleksi ciri dan ekstrasi ciri atau ekstraksi fitur.
5. Pengenalan dan Interpretasi
Tahap pengenalan bertujuan untuk memberi label pada
sebuah objek yang informasinya disediakan oleh descriptor,
19
sedangkan tahap interpretasi bertujuan untuk memberi arti atau
makna kepada kelompok objek-objek yang dikenali.
6. Basis Pengetahuan
Basis pengetahuan digunakan sebagai basis data
pengetahuan yang berguna untuk memandu operasi dari masing-
masing modul proses dan mengontrol interaksi antara modul-
modul tersebut. Bisa juga dijelaskan sebagai metode yang akan
diterapkan pada suatu proses pengolahan citra. Pada penelitian ini
penulis menggunakan metode Support Vector Machine dan Neural
Network .
2.5 Neural Network
Neural Network atau jaringan syaraf tiruan adalah
merupakan salah satu representasi buatan dan otak manusia yang
selalu mencoba mensimulasikan proses pembelajaran pada otak
manusia. Istilah buatan disini digunakan karena jaringan syaraf ini
diimplementasikan dengan menggunakan program komputer yang
mampu menyelesaikan sejumlah proses perhitungan selama proses
pembelajaran (Kusuma Dewi, 2010). Neural Network adalah
(Han, 2006) satu set unit input/output yang terhubung dimana tiap
relasinya memiliki bobot. Hal yang perlu mendapat perhatian
istimewa adalah bahwa jaringan syaraf tiruan tidak diprogram
untuk menghasilkan keluaran tertentu. Semua keluaran atau
kesimpulan yang ditarik oleh jaringan didasarkan pada
pengalamanya selama mengikuti proses pembelajaran, Pada proses
pembelajaran, kedalam jaringan syaraf tiruan dimasukkan pola-
pola input (dan output) lalu jaringan akan diajari untuk
memberikan jawaban yang bisa diterima (Diyah Puspitaningrum,
2006).
Neural Network dimaksudkan untuk mensimulasikan
perilaku sistem biologi susunan syaraf manusia, yang terdiri dari
20
sejumlah besar unit pemroses yang disebut neuron, yang beroperasi
secara paralel (Alpaydin, 2010). Neuron mempunyai relasi dengan
synapse yang mengelilingi neuron-neuron lainnya. Susunan syaraf
tersebut dipresentasikan dalam Neural Network berupa graf yang
terdiri dari simpul (neuron) yang dihubungkan dengan busur, yang
berkorespondensi dengan synapse. Sejak tahun 1950-an, Neural
Network telah digunakan untuk tujuan prediksi, bukan hanya
klasifikasi tapi juga untuk regresi dengan atribut target kontinu
(Vecellis, 2009).
Neural Network terdiri dari dua lapisan atau lebih,
meskipun sebagian besar jaringan terdiri dari tiga lapisan : lapisan
input, lapisan tersembunyi, dan lapisan output (Larose, 2005).
Pendekatan Neural Network dimotivasi oleh jaringan saraf
biologis. Secara kasar, Neural Network adalah satu set terhubung
input/output unit, di mana masing - masing sambungan memiliki
berat yang terkait dengannya. Neural Network memiliki beberapa
ciri yang membuat mereka populer untuk clustering. Pertama,
Neural Network adalah arsitektur pengolahan inheren paralel
dan terdistribusi. Kedua, Neural Network belajar dengan
menyesuaikan bobot interkoneksi dengan data, Hal ini
memungkinkan Neural Network untuk "menormalkan" pola dan
bertindak sebagai fitur (atribut) extractors untuk kelompok yang
berbeda. Ketiga, Neural Network memproses vektor numerik
dan membutuhkan pola objek untuk diwakili oleh fitur
kuantitatif saja (Gorunescu, 2011).
21
Gambar 2. 8 Arsitektur Neural Network
22
dijumpainya (mungkin wajah/bentuk tubuhnya sudah sedikit
berubah).
b. Signal Processing
Artificial Neural Network (model ADALINE) dapat dipakai
untuk menekan noise dalam saluran telepon.
c. Peramalan
Artificial Neural Network juga dapat dipakai untuk
meramalkan apa yang akan terjadi di masa yang akan datang
berdasarkan pola kejadian yang 21 ada di masa lampau. Ini dapat
dilakukan mengingat kemampuan Artificial Neural Network dan
membuat generalisasi dari apa yang sudah ada sebelumnya.
Di samping area-area tersebut, Artificial Neural Network
juga dilaporkan dapat menyelesaikan masalah dalam bidang
kontrol, kedokteran dan lain-lain. Meskipun banyak aplikasi
menjanjikan yang dapat dilakukan oleh Artificial Neural Network,
namun Artificial Neural Network juga memiliki beberapa
keterbatasan umum, seperti ketidakakuratan hasil yang diperoleh
apabila menggunakan single layer. Artificial Neural Network
bekerja berdasarkan pola yang terbentuk pada input.
23
Setiap simpul dihubungkan dengan simpul lainnya yang
berada di atasnya dan di bawahnya, tetapi tidak dengan simpul
yang berada pada lapisan yang sama. Model yang masuk kategori
ini antara lain: ADALINE, Hopfield, perceptron, LVQ, dan lain-
lain (Siang, 2009:30).
Pada gambar berikut diperlihatkan jaringan dengan n unit
masukan (x1,x2,....,xn) dan m keluaran (y1,y2,....,ym ).
26
xj=∑i→j wij yj (2.4)
Secara ringkas, dalam arsitektur jaringan penggunaan fungsi
aktivasi tidak selalu sama tergantung dari permasalahan dan teori
pendukungnya. Dalam penerapannya, permasalahan utama yang
sering muncul adalah penentuan parameter atau pembobotan serta
pengoptimalan jumlah layer dan jumlah neuron dari suatu
arsitektur jaringan.
Proses dalam Artificial Neural Network dibedakan menjadi
tiga tahap utama yaitu feed forward, Backpropagation dan update
nilai bobot. Pada tahap feed forward dilakukan proses dari input
sampai dengan diperoleh hasil output, sedangkan pada tahap
Backpropagation dilakukan proses pembandingan nilai output dari
tahap feed forward dengan nilai target yang telah ditentukan,
kemudian dilanjutkan ke depan sampai input layer sehingga
diperoleh nilai error. Pada tahap update nilai bobot dilakukan peng-
update-an nilai bobot sampai diperoleh error yang minimal.
Adapun penjelasan dari tahapan-tahapan tersebut adalah sebagai
berikut:
2.6.2 Backpropagation
Proses dalam tahap ini merupakan proses koreksi terhadap
nilai output yang dihasilkan oleh tahap sebelumnya. Setiap nilai
output akan dibandingkan dengan nilai target, dan dicari besarnya
error untuk tiap nilai tersebut. Dimana nilai error tersebut akan
digunakan sebagai dasar untuk meng-update nilai bobot yang
menghubungkan antara hidden layer dan output layer. Proses yang
ada pada tahap ini sama dengan proses pada tahap feed forward,
hanya saja pada tahap Backpropagation ini, proses dilakukan dari
output layer ke input layer.
Dalam proses Backpropagation, bentuk fungsi error yang
dieliminasi adalah:
1 (T) (T)
E=2 ∑tk=1(t k − yk )t(t k − yk ) (2.5)
Dimana y (T) merupakan nilai output pada layer terakhir.
Nilai vektor selisih yang dievaluasi dengan perulangan mundur
τ = τ − 1, τ − 2, … . ,1 adalah:
∂fτ
δτk (i) = [∑τ+1 τ+1
I=1 δk (l)W
τ+1
(li)] ∂nτ (i) (2.6)
k
Secara umum, algoritma dalam proses Backpropagation
adalah sebagai berikut:
28
1. Bandingkan setiap nilai output yang dihasilkan (yk, k =
1,2,….,m) dengan nilai
target (tk).
2. Hitung nilai koreksi untuk nilai bobot yang menghubungkan
hidden node dan output node, serta output node dan bias.
3. Nilai error yang diperoleh dari output layer dilanjutkan
keseluruh node yang ada pada hidden layer, kemudian
dikalikan dengan nilai bobot yang ada pada jalur yang
dilaluinya. Setiap nilai yang diterima oleh hidden node akan
dijumlahkan.
4. Hitung nilai koreksi untuk nilai bobot antara input node dan
hidden node serta antara hidden node dan bias.
Proses estimasi dengan menggunakan Backpropagation,
terdapat beberapa permasalahan yang sering dijumpai antara lain
pemilihan nilai awal, lokal minimum, jumlah neuron pada lapisan
hidden dan lain-lain. Meskipun telah ada beberapa metode untuk
memperkecil peluang munculnya permasalahan tersebut, akan
tetapi tidak menjamin bahwa estimasi Backpropagation akan
memberikan hasil yang lebih baik (Fauset, 1994:289).
2.7 Support Vector Machine (SVM)
Konsep SVM dapat dijelaskan secara sederhana sebagai
usaha mencari Hyperplane terbaik yang berfungsi sebagai pemisah
dua buah class pada input space. Hyperplane dalam ruang Vector
berdimensi d adalah affine subspace berdimensi d-1 yang membagi
ruang Vector tersebut ke dalam dua bagian, yang masing-masing
berkorespondensi pada class yang berbeda.
Hyperplane pemisah terbaik antara kedua kelas dapat
ditemukan dengan mengukur Margin Hyperplane tersebut. dan
mencari titik maksimalnya. Margin adalah jarak antara Hyperplane
tersebut dengan pattern terdekat dari masing masing kelas. Pattern
29
yang paling dekat ini disebut sebagai Support Vector. Garis solid
pada Gambar 2 menunjukkan Hyperplane yang terbaik, yaitu yang
terletak tepat pada tengah-tengah kedua kelas, sedangkan titik
merah dan kuning yang berada dalam lingkaran hitam adalah
Support Vector. Usaha untuk mencari lokasi Hyperplane ini
merupakan inti dari proses pembelajaran pada SVM.
𝐢 ∈
Data yang tersedia dinotasikan sebagai ×→ d
,
sedangkan label masing-masing dinotasikan yi = +1,−1
untuk i=1,2,3 …. l. Yang mana l adalah banyaknya data.
Diasumsikan kedua class –1 dan +1 dapat terpisah secara
sempurna oleh Hyperplane berdimensi d.
yang didefinisikan
w → . x→+ b = 0 (2.7)
→
Pattern w yang termasuk class –1 (sampel negatif) dapat
dirumuskan sebagai pattern yang memenuhi pertidaksamaan
w → . x → + b −1 (2.8)
→
Sedangkan pattern w yang termasuk class +1 (sampel
positif)
w → . x → + b +1 (2.9)
30
Margin terbesar dapat ditemukan dengan memaksimalkan
1
nilai jarak antara Hyperplane dan titik terdekatnya, yaitu ||w→||. Hal
ini dapat dirumuskan sebagai Quadratic Programming (QP)
problem, yaitu mencari titik minimal persamaan (2.8), dengan
memperhatikan constraint persamaan (2.9).
min τ(w) = ||w → ||2 (2.10)
yi (w . x + b) −1 0, i
→ →
(2.11)
Problem ini dapat dipecahkan dengan berbagai teknik
komputasi, di antaranya Lagrange Multiplier.
1
L(w → ,b,α ) = ||w → ||2 - ∑li=1 αi (yi (x → i . w → + b)1)) (2.12)
2
dengan i = 1, 2, …, l .
αi adalah Lagrange multipliers, yang bernilai nol atau positif
(αi≥0 ). Nilai optimal dari persamaan (2.12) dapat dihitung dengan
meminimalkan L terhadap w dan b, dan memaksimalkan L
terhadap αi. Dengan memperhatikan sifat bahwa pada titik optimal
gradient L =0, persamaan (2.12) dapat dimodifikasi sebagai
maksimalisasi problem yang hanya mengandung saja αi,
sebagaimana persamaan (2.13).
1
∑li=1 αi − ∑li,i=1 αi αj yi yj w → i w → j (2.13)
2
dimana
αi 0 ( i = 1,2,….l) (2.14)
Dari hasil dari perhitungan ini diperoleh αi yang kebanyakan
bernilai positif. Data yang berkorelasi dengan αi yang positif inilah
yang disebut sebagai Support Vector (Nugroho et al.,2003)
2.8 Analisa Tekstur
Istilah tekstur pada kehidupan sehari-hari adalah berkaitan
dengan sifat permukaan benda yaitu kasar, halus atau
bergelombang saat tersentuh indera peraba kita.Sebuah tekstur
dikatakan kasar jika perbedaan tinggi-rendah antara titik-titik pada
31
permukaan obyek besar, namun jika sebaliknya perbedaan tinggi
rendah pada masing-masing titik pada permukaan obyek rendah,
maka tekstur tersebut dikatakan halus. Pada tekstur citra digital
juga berlaku sama, tetapi bukan dengan mengukur tinggi rendah
titik-titik pada permukaan obyek dengan jari melainkan dengan
menganalisa tingkat keabuan citra tersebut (Cucun Very Angkoso,
2011).
Pada umumnya menentukan tekstur sebuah citra digital
adalah dengan mengukur perbedaan tingkat keabuan (kontras)
dengan melakukan windowing. Citra digital memiliki beberapa
elemen-elemen dasar seperti yang disebutkan berikut ini (Munir,
2004):
a. Kecerahan (brightness)
Kecerahan disebut juga intensitas cahaya. Kecerahan pada
sebuah titik (piksel) di dalam citra bukanlah intensitas yang riil,
tetapi sebenarnya adalah intensitas rata-rata dari suatu area yang
melingkupinya.
b. Kontras (contrast)
Kontras menyatakan sebaran terang (lightness) dan gelap
(darkness) di dalam sebuah citra. Citra dengan kontras rendah
dicirikan oleh sebagian besar komposisi citranya adalah terang atau
sebagian besar gelap. Pada citra dengan kontras yang baik,
komposisi gelap dan terang tersebar secara merata.
c. Kontur (contour)
Kontur adalah keadaan yang ditimbulkan oleh perubahan
intensitas pada piksel-piksel yang bertetangga. Karena adanya
perubahan intensitas mata manusia dapat mendeteksi tepi-tepi
(edge) obyek di dalam citra.
d. Warna (colour)
Warna adalah persepsi yang dirasakan oleh sistem visual
manusia terhadap panjang gelombang cahaya yang dipantulkan
32
oleh obyek. Setiap warna mempunyai panjang gelombang (λ).
Warna warna yang diterima oleh mata merupakan hasil kombinasi
cahaya dengan panjang gelombang berbeda. Kombinasi warna
yang memberikan rentang warna yang paling lebar adalah red (R)
merah, green (G) hijau, blue (B) biru.
e. Bentuk (shape)
Shape adalah property intrinsic dari obyek tiga dimensi,
dengan pengertian bahwa shape merupakan property intrinsic
utama untuk sistem visual manusia. Pada umumnya citra yang
dibentuk oleh mata merupakan citra dwimatra (2 dimensi),
sedangkan obyek yang dilihat umumnya berbentuk trimatra (3
dimensi). Informasi bentuk dari obyek yang sedang diteliti dapat
diekstraksi dari citra pada saat proses Preprocessing dan
segmentasi citra.
f. Tekstur (texture)
Tekstur diartikan sebagai distribusi spasial dari derajat
keabuan di dalam sekumpulan piksel-piksel yang bertetangga. Jadi
tekstur tidak dapat didefinisikan untuk sebuah piksel. Sistem visual
manusia menerima informasi citra sebagai suatu kesatuan.
Resolusi citra yang diamati ditentukan oleh skalapada mana tekstur
tersebut dipersepsi. Analisis tekstur merupakan topik penting
dalam dunia machine vision. kinerja algoritma pada sistem ketika
menganalisis berbagai tekstur akan dievaluasi ataupun
dibandingkan terhadap kinerja sistem visual manusia yaitu saat
melakukan tugas yang sama
33
BAB III
PERANCANGAN
Studi Literatur
Pengumpulan Data
Perancangan
Algoritma
A
Coding
Analisa
Pengujian
Penulisan Laporan
Akurasi > 80 %
Tidak
Laporan
Tugas Akhir
Ya Selesai
A
35
Gambar 3. 3 Citra fundus mata berwarna (RGB)
a b c
36
Gambar 3. 4 (a) Citra Grayscale, (b) Citra Green Channel, (c) Citra
Grayscale
2. Perenggangan kontras.
Pada penelitian ini menggunakan perenggangan kontras
untuk mendistribusi piksel gelap dan terang. Citra keabuan dengan
kontras yang rendah akan terlihat terlalu gelap, terlalu terang, atau
terlalu abu-abu. Dengan menggunakan fungsi.
A(i,j)−c
B(i,j) = (d−c)
(L − 1) (3.1)
Dengan B(i,j) dan A(i,j) berturut-turut menyatakan piksel
sesudah dan sebelum ditransformasi, c dan d menyatakan nilai
minimum dan maksimum dari piksel citra masukan serta L
menyatakan nilai grayscale maksimum. (Rocky & Agus, 2012).
37
akan di filterisasi menggunakan morfologi opening, dan
menghilangkan ciri fitur lain selain pembuluh darah
(a) (b)
Gambar 3. 5 (a) citra hasil proses otsu thresholding, (b) citra hasil
ekstraksi morfologi opening
38
3.2.2.5 Pendeteksian dan Penghilang Batas Lingkar Retina
Pada tahap ini dilakukan pendeteksian terhadap batas
lingkar retina. Pembentukan perbatasan adalah untuk
membersihkan noise pada tepi lingkar retina sehingga nanti akan
didapatkan hasil citra tanpa batas lingkaran. Proses citra awal
berupa citra grayscale akan dilakukan deteksi tepi (edge detecting).
Sintak umum yang digunakan untuk fungsi ini adalah :
[g, t] = edge (f, ‘method’, parameters) (3.2)
Dimana f adalah citra input, method adalah model
pendekatan yang digunakan, parameters adalah parameter
tambahan. Pendekatan yang digunakan dalam penelitian ini adalah
pendekatan dengan metode ‘canny’. Metode ini menggunakan dua
threshold untuk mendeteksi tepi yang kuat dan lemah, dan
memasukkan tepi lemah dalam output hanya jika tepi tersebut
terhubung ke tepi yang kuat. Maka, metode ini lebih
memungkinkan untuk mendeteksi tepi yang lemah dengan benar.
Setelah itu dilakukan operasi morfologi dilasi dan erosi. Persamaan
operasi dilasi didefinisikan dengan:
A ⊕ B= {z | (B)z ∩ A ≠ ∅} (3.3)
Citra B adalah strel, sedangkan A citra (objek citra) yang
terdilasi. Proses dalam dilasi adalah “penumbuhan” atau
“penebalan” citra biner. Sedangkan Persamaan operasi erosi, jika
A dan B himpunan dalam Z2, erosi A oleh B dinyatakan dengan A
ϴ B, di definisikan sebagai :
A ⊖ B= {z|(B)z ⊆A } (3.4)
Persamaan di atas menunjukkan bahwa erosi A oleh B
adalah kumpulan semua titik dimana B di translasikan oleh z di
dalam isi A. B disini adalah strel. Dilasi digunakan untuk
memperbesar objek lingkaran. Kemudian dibuat lagi lingkaran
yang lebih kecil dengan melakukan operasi morfologi erosi.
Perbatasan melingkar akan diperoleh dari hasil operasi aritmatika,
39
yaitu pengurangan dari daerah lingkaran besar dengan daerah
lingkaran yang lebih kecil.
Formula operasi pengurangan:
g ( x,y ) = f ( x,y ) – h ( x,y ) (3.4)
Pengurangan antara dua buah citra menghasilkan sebuah
citra baru dimana pixel pada koordinat (x,y) dihasilkan dari
pengurangan antara pixel pada lokasi yang sama dalam 2 buah citra
yang dikurangi. Setelah batas retina terdeteksi, batas retina akan
digunakan untuk penghilangan batas retina.
40
Gambar 3. 7 Blood Vessel jumlah pixel 34097
b. Exudates
Exudates muncul sebagai wilayah kuning terang-putih pada
retina, hal ini disebabkan terdapat kebocoran darah dari pembuluh
yang abnormal. Pendeteksian exudate diawali dengan proses
akuisisi citra. Citra RGB di konversi menjadi citra grayscale,
kemudian operasi morfologi diterapkan untuk menghilangkan
pembuluh darah dan mengidentifikasi wilayah Exudates. Exudates
akan terdeteksi setelah menghapus perbatasan (batas tepi retina),
optical disk dan daerah non-Exudates. Berikut adalah blok
diagramproses pendeteksian Exudates dan gambar hasil deteksi
Exudates:
41
Citra Fundus
c. Microaneurysms
Microaneurysms muncul sebagai titik bulat kecil gelap pada
citra fundus. Untuk proses pendeteksian Microaneurysms dan nilai
Entropy menggunakan citra hasil konversi ke green channel,
karena pada proses ini memerlukan refleksi cahaya yang paling
baik sehingga dapat dihasilkan informasi yang signifikan pada
proses pendeteksiannya . Berikut adalah blok diagram deteksi
microaneurysms.
42
Citra Fundus
Penghapusan Perbatasan
Melingkar
Menghilangkan Optik
Disk
Menghilangkan Fitur
Terang
Citra Hasil
Microaneurysms
43
Gambar 3. 11 Deteksi Microaneurysms
Klasifikasi
Klasifikasi Penyakit
DR Normal
DR A C
Normal B D
45
Normal yang diklasifikasikan sebagai Normal, kemudian
masukkan data uji.
a. Akurasi
Persentasi ketepatan data yang di klasifikasikan secara benar
setekah di lakukan pengujian pada hasil klasifikasi ( Han &
Kamber, 2006).
Akurasi = (A + D) / (A + B + C + D)) * 100%
b. Spesifikasi
Proporsi kasus yang diprediksi positif yang juga positif
benar pada data yang sebenar nya.
Spesifikasi = (D / ( B + D)) * 100%
c. Sensitifikasi
Proporsi kasus positif yang sebenarnya yang diprediksi
positif secara benar (Powers , 2011).
Sensitifikasi = (A / (A + C)) * 100%
46
BAB IV
HASIL DAN ANALISA
Pada bab ini akan dibahas mengenai rangkaian uji coba dan
evaluasi terhadap penelitian yang telah dijelaskan pada bab-bab
sebelumnya pada tugas akhri ini. Implementasi berupa fungsi-
fungsi untuk proses klasifikasi penyakit diabetic retinopathy
menggunakan metode Artificial Neural Network.
Uji coba dilakukan untuk mengetahui seberapa keberhasilan
dari implementasi sistem , evaluasi dilakukan untuk mengetahui
hasil uji coba dan untuk menarik kesimpulan.
4.1 Pra Pengolahan
Pada Pra Pengolahan ini yang di hasilkan dari konversi RGB
adalah citra Green Channel dan Grayscale, karena proses konversi
RGB ini membantu citra fundus mata untuk menentuka ekstrasi
fitur yang bagus, setelah di lakukan nya konversi RGB proses
selanjut nya yaitu perengganga kontras yang bertujuan agar citra
yan di hasil kan lebih jelas.
4.2 Proses Ekstrasi Fitur
Proses ekstraksi fitur dijalankan setelah tahapan akuisisi dan
Preprocessing.Proses ini dibagi dalam lima bagian fitur yaitu
pendeteksian Blood Vessel , Exudates, Microaneurysms, dan
Entropy. Pembahasan dari setiap proses akan dijelaskan dan
ditampilkan hasil ekstraksinya sebagai berikut :
1. Deteksi Blood Vessel
Pendeteksian Blood Vessel pertama kali akan dilakukan
setelah proses akuisisi citra dan intensitas citra grayscale
disesuaikan. Dalam proyek ini pembuluh darah yang diekstrak
(diambil gambarnya) digunakan untuk identifikasi diabetes
47
retinopathy. Kontras pada gambar fundus cenderung terang di lini
tengah dan agak redup di pinggir, maka pre processing sangat
penting untuk meminimalisir efek ini dan membuat gambar
menjadi lebih seragam. Setelah itu, saluran hijau dari gambar yang
diterapkan dengan pengolahan gambar morfologi digunakan untuk
menghapus optical disk. Citra segmentasi kemudian digunakan
untuk menyesuaikan intensitas kontras dan piksel kecil yang
dianggap tidak perlu dihapus.
Citra green channel yang lain diproses dengan gambar
segmentasi dan dikombinasikan dengan mask layer. Dua gambar
tersebut dibandingkan dan perbedaannya dihapus. Gambar yang
diperoleh tersebut akan mewakili pembuluh darah dari gambar asli.
2. Deteksi Exudates
Citra fundus sebelum dilakukan pendeteksian akan
dilakukan intensitas gambar grayscale disesuaikan. Operasi
morfologi Closing akan diterapkan karena memiliki fungsi untuk
melebarkan dan diikuti pengikisan tepi diterapkan untuk
menghapus pembuluh darah. Fungsi pelebaran sendiri adalah
untuk memperluas wilayah Exudates untuk double presisi nilai
fungsi “colfit” untuk menandai wilayah Exudates sebelum gambar
diubah kembali menjadi biner dengan fungsi “im2bw” dan tujuan
dari di deteksi nya Exudates yaitu agar dapat mengetahui jumpah
48
pixel terang yang nantik nya akan di jadi kan sebagai acuan fitur
ekstrasi dan juga dapat sebagai ciri yang dapat dilihat sebagai citra
Diabetic Retinophaty. Gambar 4.2 merupakan hasil dari ekstrasi
citra Exudates.
a b
Gambar 4. 2 bagian Exudates (a), citra setelah proses morfologi Closing
(b)
3. Deteksi Microaneurysms
Bagian ini membahas lebih terperinci tentang deteksi
mcroaneurysms. Citra fundus dilakukannya ntensitas grayscale
disesuaikan. Kontras citra ditarik dengan menerapkan pemerataan
histogram adaptif sebelum menggunakan deteksi tepi untuk
mendeteksi garis citra. Microaneurysms diperoleh dengan
mengurangkan menghilangkan citra tepi an menghapus area yang
lebih luas menggunakan fungsi “bwareaopen”. Dan tujuan dari di
deteksi nya Microanurysms yaitu agar dapat mengetahui jumpah
pixel terang yang nantik nya akan di jadi kan sebagai acuan fitur
ekstrasi dan juga dapat sebagai ciri yang dapat dilihat sebagai citra
Diabetic Retinophaty. Gambar 4.3 adalah citra hasil deteksi
micoraneurysms.
49
Gambar 4. 3 Citra hasil deteksi microaneuarysms
50
4.3.1 Menggunakan ANN
Pada Tabel 4.2 menunjukkan hasil klasfikasi ANN menggunakan
WEKA.
Table 4. 2 Hasil klasifikasi ANN menggunakan WEKA
Parameter Hasil
Klasifikasi Hidden Cross
layer Validation Akurasi
MLP1 a 4 81,91%
MLP2 10 4 82.97%
MLP3 100 4 82.97%
MLP4 a 3 70.21%
MLP5 10 3 72.34%
MLP6 100 3 72.34%
Prediksi Sistem
a b
49 7 a = DB
9 29 b = NOR Nilai Aktual
a = mata DB, b = mata normal
Parameter Hasil
Klasifikasi Cross
Jenis Kernel Akurasi
Validation
SMO1 Poly Kernel 4 79.78%
SMO2 PUK 4 77.65%
SMO3 RBFKernel 4 59.57%
SMO4 NormalizedPolyKernel 4 75.53%
SMO5 Poly Kernel 3 68.08%
SMO6 PUK 3 70.21 %
SMO7 RBFKernel 3 59.57%
SMO8 NormalizedPolyKernel 3 62.76%
52
Pada Table 4.3 di dapat kan hasil klasifikasi SMO
menggunakan WEKA dengan menggunakan parameter jenis
kernel dan Cross Validation dengan SMO1 dengan akurasi 79,78
%, SMO2 dengan akurasi 77,65%, SMO3 dengan akurasi 59,57%,
SMO4 dengan akurasi 75,53%, SMO5 dengan akurasi 68,08%,
SMO6 dengan akurasi 70,21%, SMO7 dengan akurasi 59,57%,
SMO8 dengan akurasi 62,76%. Akurasi yang di dapat dapat
berubah tergantung dari parameter yang di gunakan seperti kernel
dan Cross Validation nya.
Untuk SMO1 di dapat kan nilai akurasi paling tinggi di
banding kan dengan SMO yang lain nya dikarenakan pemilihan
kernel dan Cross Validation yang tepat.
54
• Jumlah lapisan tersembunyi = 10 lapis.
• Jumlah neuron dalam lapis tersembunyi = 5.
• Batas toleransi error = 0,001
Prediksi Sistem
a b
49 7 a = DB
9 29 b = NOR Nilai Aktual
a = mata DB, b = mata normal
55
5. Negative Predictive Value = B / ( B+AB ) * 100% = 29 / 38
*100 = 0,76 = 76,31%
56
Gambar 4. 4 Tampilan Halaman Utama
57
Gambar 4. 5 Proses Input Citra
59
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil analisis yang telah dilakukan, maka dapat
mengambil kesimpulan sebagai berikut.
1. Metode Pengolahan yang digunakan pada proses klasifikasi
Pada penelitian ini yaitu Artificial Neural Network (ANN).
2. Ekstrasi fitur yang digunakan pada penelitian ini ada enam
yaitu nilai Entropy Green Channel, Entropy Grayscale,
Entropy Saturasi dan Jumlah pixel terang Bloodvessels,
Microaneurysms, Exudates.
3. Dalam proses klasifikasi, tahap segmentasi dan Pre
Processing sangat membantu. Karena dengan hasil citra
segmentasi dan Pre Processing yang baik dapat menghasilkan
Ekstrasi Fitur yang tepat untuk melakukan klasifikasi.
4. Metode Klasifikasi ANN di dapat kan nilai akurasi sebesar
82,97 %, nilai Spesifikasi sebesar 80,55 %, nilai Sensitifikasi
sebesar 84,48 %, Positive Predictive Value sebesar 87,50 % ,
Negative Predictive Value sebesar 76,31%.
5. Metode Klasifikasi SVM di dapat kan nilai akurasi sebesar
79.78 %, nilai Spesifikasi sebesar 72,09 %, nilai Sensitifikasi
sebesar 84,48 %, Positive Predictive Value sebesar 86,27 %,
Negative Predictive Value sebesar 81,57 %.
6. Dari akurasi yang di dapatkan melalui WEKA antara kedua
metode ANN dan SVM di hasil kan akurasi yang terbesar
yaitu 82,97% dari metode ANN, dari akurasi ini dapat
diketahui bahwa ANN lebih baik dalam melakukan proses
klafisikasi.
60
5.2 Saran
Berdasarkan penelitian yang sudah di lakukan, dengan
menggunakan beberapa penambahan parameter nilai yang di ambil
untuk proses ekstrasi fitur, dan proses pengidentifikiasian dapat
ditambahkana agar hasil identifikasi lebih akurat.
61
DAFTAR PUSTAKA
62
63
LAMPIRAN
1. Sintak Program
function varargout =
masterguijefriseminar(varargin)
% MASTERGUIJEFRISEMINAR MATLAB code for
masterguijefriseminar.fig
% MASTERGUIJEFRISEMINAR, by itself, creates
a new MASTERGUIJEFRISEMINAR or raises the
existing
% singleton*.
%
% H = MASTERGUIJEFRISEMINAR returns the
handle to a new MASTERGUIJEFRISEMINAR or the
handle to
% the existing singleton*.
%
%
MASTERGUIJEFRISEMINAR('CALLBACK',hObject,eventDa
ta,handles,...) calls the local
% function named CALLBACK in
MASTERGUIJEFRISEMINAR.M with the given input
arguments.
%
%
MASTERGUIJEFRISEMINAR('Property','Value',...)
creates a new MASTERGUIJEFRISEMINAR or raises
the
% existing singleton*. Starting from the
left, property value pairs are
% applied to the GUI before
masterguijefriseminar_OpeningFcn gets called.
An
% unrecognized property name or invalid
value makes property application
% stop. All inputs are passed to
masterguijefriseminar_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu.
Choose "GUI allows only one
% instance to run (singleton)".
i
%
% See also: GUIDE, GUIDATA, GUIHANDLES
if nargout
[varargout{1:nargout}] =
gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
iii
% eventdata reserved - to be defined in a
future version of MATLAB
% handles structure with handles and user
data (see GUIDATA)
close all force ;
iv
% eventdata reserved - to be defined in a
future version of MATLAB
% handles structure with handles and user
data (see GUIDATA)
if ~isequal(name_file1,0)
handles.data1 =
imread(fullfile(name_path1,name_file1));
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1)
else
return;
end
viii
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject,
eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a
future version of MATLAB
% handles structure with handles and user
data (see GUIDATA)
I = handles.data1;
I2=imresize(I, [550 748]);
GreenC=I2(:,:,2);
%=====BlOodVeSsEl======
for x=1:30 for y=1:60
GreenC(x,y)=0; %255=white, 0=black
end
end
Ginv2=imcomplement(GreenC);
Gadpt_his3=adapthisteq(Ginv2);
se = strel('ball',8,8);
Gopen4=imopen(Gadpt_his3,se);
G_Odisk_R5=Gadpt_his3-Gopen4;
G_BW6 = im2bw(G_Odisk_R5,0.105);
G_BWareaopen7 = bwareaopen(G_BW6,65);
%Border formation to enclose the the image
for x=1:5 for y=1:748 %for top bar
box_5pix(x,y)=1; %1->white
end
end
for x=492:550 for y=1:748 %for bottom bar
box_5pix(x,y)=1; %1->white
end
end
for x=1:550 for y=1:5 %for left bar
box_5pix(x,y)=1; %1->white
end
end
for x=1:550 for y=733:748 %for right bar
box_5pix(x,y)=1; %1->white
end
end
box_5pixel = logical(box_5pix);
Grayscale_8 = rgb2gray (I2);
ix
Grayscale_brighten_9 = imadjust(Grayscale_8);
outline_border=edge(Grayscale_brighten_9,
'canny', 0.09);
for x=2:5 for y=100:748 %for top bar 4x520
outline_border(x,y)=1; %1->white
end
end
for x=492:495 for y=100:748 %for bottom bar
4x520
outline_border(x,y)=1; %1->white
end
end
Grayscale_imfill_10 = imfill(outline_border,
'holes');
se = strel('disk',6);
Grayscale_imerode = imerode(Grayscale_imfill_10,
se);
Grayscale_imdilate=
imdilate(Grayscale_imfill_10, se);
A = imclose(Grayscale_imfill_10, se);
Grayscale_C_border = Grayscale_imdilate -
Grayscale_imerode;
Grayscale_C_border_L =
logical(Grayscale_C_border);
area_Cborder = 0;
area_new_Cborder=0;
for x = 1:550 for y = 1:748
if Grayscale_C_border_L(x,y) == 1
area_Cborder = area_Cborder+1;
end
end
end
%===============================================
=================
if area_Cborder > 50000
clear Grayscale_C_border_L
G_invert_G_B_9 =
imcomplement(Grayscale_brighten_9);
black_filled_10 = im2bw(G_invert_G_B_9,
0.94);
se = strel('disk',6);
x
black_imerode = imerode(black_filled_10,
se); %reduce size
black_imdilate= imdilate(black_filled_10,
se);
black_new_Cborder = black_imdilate -
black_imerode;
Grayscale_C_border_L =
logical(black_new_Cborder);
area_new_Cborder = 0;
for x = 1:550 for y = 1:748
if Grayscale_C_border_L(x,y) == 1
area_new_Cborder =
area_new_Cborder+1;
end
end
end
end
%Finding Optical Disk
===========================================
max_GB_column=max(Grayscale_brighten_9);
max_GB_single=max(max_GB_column);
[row,column] =
find(Grayscale_brighten_9==max_GB_single);
median_row = floor(median(row));
median_column = floor(median(column));
%Drawing the mask
===============================================
radius = 50;
[x,y]=meshgrid(1:748,1:550);
mask = sqrt( (x - median_column).^2 + (y -
median_row).^2 )<= radius; %optic disk
Gadpt_his_X1 = adapthisteq(GreenC);
Gadpt_his_X2 = adapthisteq(Gadpt_his_X1);
Gadpt_his_X3 = adapthisteq(Gadpt_his_X2);
Gadpt_X2_bright_2 = ~im2bw(Gadpt_his_X3,0.3);
Gadpt_X2_bright_3 =
bwareaopen(Gadpt_X2_bright_2,100); %pengilang
optic disk
Gadpt_X2_bright_4mask = Gadpt_X2_bright_3 +
mask;
finetune_blood = logical(GreenC * 0);
xi
finetune_blood (G_BWareaopen7 &
Gadpt_X2_bright_4mask) = 1;
bloodvessels_final = finetune_blood - box_5pixel
- Grayscale_C_border_L;
axes(handles.axes3);
imshow(bloodvessels_final);
bloodvessels = 0;
for x = 1:550 for y = 1:748
if bloodvessels_final(x,y) == 1
bloodvessels = bloodvessels+1;
end
end
end
%=======MiCrOaNeUrysMs========
Grayscale = rgb2gray (I2);
Grayscale_brighten = imadjust(Grayscale);
%remove date (upper left corner)
for x=1:30 for y=1:60
Grayscale_brighten(x,y)=0; %255=white, 0=black
GreenC(x,y)=0; %255=white, 0=black
end
end
Gadpt_his_X1 = adapthisteq(GreenC);
Gadpt_his_X2 = adapthisteq(Gadpt_his_X1);
outline_border=edge(Grayscale_brighten, 'canny',
0.09);
for x=2:5 for y=100:648 %for top bar 4x520
outline_border(x,y)=1; %1->white
end
end
for x=492:495 for y=100:648 %for bottom bar
4x520
outline_border(x,y)=1; %1->white
end
end
Grayscale_imfill = imfill(outline_border,
'holes');
se = strel('disk',6);
Grayscale_imerode = imerode(Grayscale_imfill,
se);
xii
Grayscale_imdilate= imdilate(Grayscale_imfill,
se);
Grayscale_C_border = Grayscale_imdilate -
Grayscale_imerode;
Grayscale_C_border_L =
logical(Grayscale_C_border);
%Area Calculation for Grayscale_C_border_L
area_Cborder = 0;
area_new_Cborder = 0;
for x = 1:550 for y = 1:748
if Grayscale_C_border_L(x,y) == 1
area_Cborder = area_Cborder+1;
end
end
end
if area_Cborder > 50000;
clear Grayscale_C_border_L
G_invert_G_B =
imcomplement(Grayscale_brighten);
black_filled = im2bw(G_invert_G_B, 0.94);
se = strel('disk',6);
black_imerode = imerode(black_filled, se);
black_imdilate= imdilate(black_filled,
se);
black_new_Cborder = black_imdilate -
black_imerode;
Grayscale_C_border_L =
logical(black_new_Cborder);
%Area Calculation for new
Grayscale_C_border_L
area_new_Cborder = 0;
for x = 1:550 for y = 1:748
if Grayscale_C_border_L(x,y) == 1
area_new_Cborder =
area_new_Cborder+1;
end
end
end
end
xiii
%Finding the Microaneurysms
============================
edge_Gadpt_his_X1 = edge(Gadpt_his_X1, 'canny',
0.18); %find the outline/Edges of the features
edge_lesscborder = edge_Gadpt_his_X1 -
Grayscale_C_border_L;
edge_imfill = imfill(edge_lesscborder, 'holes');
%Imfilled on the image without Cborder
image_holes = edge_imfill - edge_Gadpt_his_X1;
%getting the area filled with imfill
image_largerarea = bwareaopen(image_holes,70);
%Remove all obj smaller than pixels value
image_microa = image_holes - image_largerarea;
%area of microaneurysms with noise
Gadpt_X2_bright = im2bw(Gadpt_his_X2,0.7);
%removing exduates area ========================
microa_less_ex = image_microa; %setting the size
microa_less_ex (image_microa & Gadpt_X2_bright)
= 0;
Gadpt_X2_bright_2 = ~im2bw(Gadpt_his_X2,0.3);
Gadpt_X2_bright_3 =
bwareaopen(Gadpt_X2_bright_2,100);
%removing blood vessels area
=========================
microa_less_blood = microa_less_ex;
microa_less_blood (microa_less_ex &
Gadpt_X2_bright_3) = 0;
%Finding Optical Disk
=========================================
max_GB_column=max(Grayscale_brighten);
max_GB_single=max(max_GB_column);
[row,column] =
find(Grayscale_brighten==max_GB_single);
median_row = floor(median(row));
%median(a),find 50th percentile (the middle)
then
median_column = floor(median(column)); %use
floor(a),round towards minus infinity
%Drawing the mask
=========================================
radius = 90; %size of the mask
[x,y] = meshgrid(1:748, 1:550);
xiv
mask = sqrt( (x - median_column).^2 + (y -
median_row).^2 )<= radius;
%Getting area of Microaneurysms
=========================================
microa_less_smallarea = bwareaopen
(microa_less_blood,5); %remove small area/
residue of reduction
microa_less_cborder = microa_less_smallarea -
Grayscale_C_border_L; %Remove cborder
microa_image = microa_less_cborder - mask;
axes(handles.axes4);
imshow(microa_image);
%area calcuation
=========================================
micro = 0;
for x = 1:550 for y = 1:748
if microa_image(x,y) == 1
micro = micro+1;
end
end
end
%========ExUdAtEs==========
se2 = strel('ball',10,10); %values use ard 8-12
G_imclose = imclose(Grayscale_brighten, se2);
%Use of Column filter
=========================================
filter_db_G_imclose = double(G_imclose);
filter_colfilt = colfilt(filter_db_G_imclose,[6
6],'sliding',@var);
filter_uint8_colfilt = uint8(filter_colfilt);
filter_image_seg = im2bw(filter_uint8_colfilt,
0.45);
%Finding Optical Disk
=========================================
max_GB_column=max(Grayscale_brighten);
max_GB_single=max(max_GB_column);
[row,column] =
find(Grayscale_brighten==max_GB_single);
median_row = floor(median(row));
%median(a),find 50th percentile (the middle)
then
median_column = floor(median(column));
xv
%Drawing the mask
=========================================
radius = 90;
[x,y]=meshgrid(1:748, 1:550);
mask = sqrt( (x - median_column).^2 + (y -
median_row).^2 )<= radius;
%Removing optical disk portion
image_optical_removed = filter_image_seg - mask;
%Removing Circular and Rectangle border
=========================================
image_od_Cborder_removed=image_optical_removed-
Grayscale_C_border_L;
image_ex = image_od_Cborder_removed -
box_5pixel;
%Expansing the region
=========================================
image_ex_imclose = imclose (image_ex, se);
%Non-exudates region
=========================================
Gadpt_his = adapthisteq(Grayscale_brighten);
dark_region = im2bw(Gadpt_his,0.85);
dark_features = ~dark_region;
%exudates area
=========================================
EX_image = image_ex_imclose;
EX_image (image_ex_imclose & dark_features) = 0;
axes(handles.axes5);
imshow(EX_image);
%area caluation
=========================================
exudates = 0;
for x = 1:550 for y = 1:748
if EX_image(x,y) == 1
exudates = exudates+1;
end
end
end
%%====entropy=====
Igray = rgb2gray(I);
hsv = rgb2hsv(I);
I = double(I);
Image_red = I(:,:,1);
xvi
Image_green = I(:,:,2);
Image_blue = I(:,:,3);
[row,col] = size(I(:,:,1));
for y = 1:row %-->numberof rows in image
for x = 1:col %-->number of columns in the image
Red = Image_red(y,x);
Green = Image_green(y,x);
Blue = Image_blue(y,x);
NormalizedRed = Red /sqrt(Red^2 + Green^2 +
Blue^2);
NormalizedGreen = Green/sqrt(Red^2 + Green^2 +
Blue^2);
NormalizedBlue = Blue /sqrt(Red^2 + Green^2 +
Blue^2);
Image_red(y,x) = NormalizedRed;
Image_green(y,x) = NormalizedGreen;
Image_blue(y,x) = NormalizedBlue;
end
end
I(:,:,1) = (Image_red);
I(:,:,2) = (Image_green);
I = I(:,:,1).*I(:,:,2);
Img = im2uint8(I);
EntropyGreenChannel =
round(entropy(Image_green));
%%
Ih = imhist(Igray);
Ih(Ih == 0) = [];
[p,SI] =
graycomatrix(Igray,'NumLevels',max(max(Igray))+1
,'G',[]);
p(p==0) = [];
p = p/sum(p);
EntropyGray = round(-sum((p).*log2(p)));
%%
s = hsv(:,:,2);
s = im2uint8(s);
shist = imhist(s);
shist = shist(20:220);
shist(shist == 0) = [];
xvii
[p2,SI] =
graycomatrix(s,'NumLevels',max(max(s))+1,'G',[])
;
p2(p2==0) = [];
p2 = p2/sum(p2);
EntropySaturasi = round(-sum((p2).*log2(p2)));
%%
[p2,SI] =
graycomatrix(Img,'NumLevels',max(max(Img))+1,'G'
,[]);
p2(p2==0) = []; p2 = p2/sum(p2);
EnrtropyRGB =round(-sum((p2).*log2(p2)));
eNT=[EntropyGreenChannel, EntropyGray,
EntropySaturasi, EnrtropyRGB];
A =eNT;
set(handles.edit2,'String',bloodvessels)
set(handles.edit3,'String',micro)
set(handles.edit4,'String',exudates)
set(handles.edit5,'String',EntropyGreenChannel)
set(handles.edit6,'String',EntropyGray)
set(handles.edit7,'String',EntropySaturasi)
xix
set(gca,'YTick',[])
axes(handles.axes5)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])
set(handles.edit1,'String','');
set(handles.edit2,'String','');
set(handles.edit3,'String','');
set(handles.edit4,'String','');
set(handles.edit5,'String','');
set(handles.edit6,'String','');
set(handles.edit7,'String','');
xx
if ispc &&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% Hints: contents =
cellstr(get(hObject,'String')) returns
popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns
selected item from popupmenu1
xxii
% --- Executes during object creation, after
setting all properties.
function popupmenu1_CreateFcn(hObject,
eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a
future version of MATLAB
% handles empty - handles not created until
after all CreateFcns called
xxiii
2. Tabel Hasil Ekstrasi Fitur
Nama EGC1 EGRAY2 ESAT3 BV MIC EXU Class
DB_1 6 10 8 25761 188 484 DR
DB_2 6 9 9 17359 272 1119 DR
DB_3 6 9 9 34097 102 188 DR
DB_4 6 9 9 21818 46 292 DR
DB_5 6 9 9 28663 86 1 DR
DB_6 6 9 9 25829 6 49 DR
DB_7 6 9 9 24752 93 901 DR
DB_8 6 9 8 8193 6 0 DR
DB_9 6 9 11 12792 263 892 DR
DB_10 7 10 10 26072 72 421 DR
DB_11 7 9 11 23621 143 105 DR
DB_12 7 10 10 26761 325 723 DR
DB_13 7 10 11 38582 148 88 DR
DB_14 6 10 12 8848 60 2 DR
DB_15 6 10 10 29996 57 0 DR
DB_16 6 9 10 6079 96 1400 DR
DB_17 7 10 10 37898 227 103 DR
DB_18 6 10 9 23239 130 0 DR
DB_19 7 10 8 30967 145 1365 DR
DB_20 6 10 11 29009 96 64 DR
DB_21 7 10 12 29022 382 99 DR
DB_22 6 10 11 24844 126 317 DR
xxiv
DB_23 6 10 10 32214 148 302 DR
DB_24 6 10 9 18009 205 0 DR
DB_25 6 10 11 19866 119 469 DR
DB_26 7 10 9 14881 102 257 DR
DB_27 7 10 10 9686 157 1224 DR
DB_28 7 10 6 12065 94 324 DR
DB_29 6 9 7 18262 223 0 DR
DB_30 6 9 8 21208 160 67 DR
DB_31 6 10 11 32698 561 122 DR
DB_32 6 10 11 18876 60 447 DR
DB_33 6 10 9 319982 301 231 DR
DB_34 7 10 11 27683 170 35 DR
DB_35 6 9 11 33085 328 613 DR
DB_36 6 10 11 34186 356 2456 DR
DB_37 6 10 11 40518 481 1284 DR
DB_38 7 9 8 26869 144 910 DR
DB_39 7 10 11 11788 0 197 DR
DB_40 7 10 11 23678 315 0 DR
DB_41 7 10 8 27820 187 33 DR
DB_42 7 10 12 33887 153 363 DR
DB_43 7 10 10 15766 139 71 DR
DB_44 6 9 6 28778 148 34 DR
DB_45 6 9 9 26889 127 1279 DR
DB_46 6 10 11 34183 120 41 DR
xxv
DB_47 6 10 11 27436 104 33 DR
DB_48 6 10 7 15359 367 0 DR
DB_49 7 10 11 41607 664 176 DR
DB_50 7 10 11 40484 583 15 DR
DB_51 6 10 11 4198 21 503 DR
DB_52 7 10 11 17975 217 227 DR
DB_53 6 10 11 29705 741 1 DR
DB_54 6 10 11 17788 285 1905 DR
DB_55 7 10 11 22876 189 366 DR
DB_56 7 10 6 29759 133 0 DR
NOR_1 6 8 9 18579 9 0 Normal
NOR_2 6 9 8 28636 48 0 Normal
NOR_3 6 8 8 6262 0 135 Normal
NOR_4 6 10 11 27098 128 0 Normal
NOR_5 6 10 10 33844 142 19 Normal
NOR_6 7 10 8 27746 17 20 Normal
NOR_7 7 10 11 30670 90 15 Normal
NOR_8 6 10 9 30750 208 0 Normal
NOR_9 7 10 11 28249 28 312 Normal
NOR_10 7 10 10 34534 0 16 Normal
NOR_11 6 10 10 31316 102 0 Normal
NOR_12 7 10 8 35098 78 0 Normal
N_13 7 10 8 13826 0 0 Normal
NOR_14 6 10 11 29557 5 148 Normal
xxvi
NOR_15 7 10 12 31450 104 494 Normal
NOR_16 6 10 11 32231 51 24 Normal
NOR_17 6 10 11 34159 42 3 Normal
NOR_18 7 10 9 32720 10 1 Normal
NOR_19 7 10 9 20537 17 0 Normal
NOR_20 7 10 10 19623 22 0 Normal
NOR_21 6 10 11 32353 77 4 Normal
NOR_22 7 10 11 32482 97 0 Normal
NOR_23 7 10 11 33217 89 0 Normal
NOR_24 7 10 10 30550 6 19 Normal
NOR_25 7 10 11 29351 11 0 Normal
NOR_26 6 10 11 28007 159 0 Normal
NOR_27 6 10 11 24703 45 2 Normal
NOR_28 6 10 12 33484 11 0 Normal
NOR_29 6 10 11 28465 39 2 Normal
NOR_30 6 10 11 34264 166 1 Normal
NOR_31 6 9 8 9688 0 14 Normal
NOR_32 6 9 11 20526 43 0 Normal
NOR_33 6 10 11 26478 0 0 Normal
NOR_34 7 9 11 18649 99 66 Normal
NOR_35 7 10 11 19767 38 75 Normal
NOR_36 6 9 11 21040 65 37 Normal
NOR_37 6 10 11 29528 64 0 Normal
NOR_38 7 9 9 14511 0 0 Normal
xxvii
Ket :
1. EGC1 = Entropy Green Channel.
2. EGRAY2 = Entropy Grayscale.
3. ESAT3 = Entropy Saturasi.
4. BV = Blood Vessels.
5. MIC = Microaneurysms.
6. EXU = Exudates.
xxviii