TA : Segmentasi Kelengkungan Tulang Belakang pada Penderita Skoliosis Menggunakan GVF Snake.

(1)

SEGMENTASI KELENGKUNGAN TULANG BELAKANG PADA PENDERITA SKOLIOSIS MENGGUNAKAN GVF SNAKE

TUGAS AKHIR

Nama : Samuel Sugianto NIM : 09.41020.0003 Program : S1 (Strata Satu) Jurusan : Sistem Komputer

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER SURABAYA


(2)

Skoliosis adalah fenomena kelainan tulang belakang yang akan membengkok membentuk huruf C atau S. Derajat kelengkungan tulang belakang menentukan tingkat keparahan dari skoliosis yang terjadi sehingga diagnosa yang tepat tentu memberikan peluang kesembuhan yang besar bagi penderita. Saat ini diagnosa kelengkungan tulang belakang dilakukan secara manual oleh orthopedic yang memberikan ruang potensi bagi kesalahan pengukuran cobb angle (derajat kelengkungan).

Pengembangan Image Processing yang pesat saat ini memberikan solusi untuk mengatasi masalah diatas. Dalam penelitian ini, dibuat aplikasi untuk segmentasi tulang belakang yang menggunakan Gaussian cropping dan Modified Tophat Filter untuk pre-processing dan GVF Snake untuk segmentasi kelengkungan tulang belakang.

Aplikasi ini dapat melakukan segmentasi kelengkungan tulang belakang pada beberapa bentuk tulang belakang dan membantu mengurangi tingkat kesalahan diagnosa pada penderita skoliosis yang disebabkan oleh pengukuran manual dengan tingkat akurasi rata-rata sebesar 79,355% .

Keywords: GVF Snake, Modified Tophat Filter, Gaussian cropping, Skoliosis, segmentasi, tulang belakang.


(3)

DAFTAR ISI

ABSTRAK ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... ix

DAFTAR TABEL ... xi

DAFTAR GAMBAR ... xii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Perumusan Masalah ... 2

1.3. Pembatasan Masalah ... 2

1.4. Tujuan ... 3

1.5. Kontribusi ... 3

1.6. Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 6

2.1. Struktur Tulang Belakang... 6

2.1.1. Struktur Umum Tulang Belakang ... 7

2.2. Skoliosis ... 8

2.3. Tophat Filter ... 12

2.4. Model Snake Parametrik (Tradisional Snake) ... 13

2.5. Gradient Vector Flow (GVF) ... 17

2.6. OpenCV ... 23

2.7. AUC (Area Under ROC Curve) ... 25

BAB III METODE PENELITIAN ... 26

3.1. Perancangan Sistem dan Blok Diagram Sistem ... 26

3.2. Perancangan Perangkat Lunak ... 27

3.2.1. Perancangan Modified Tophat Filter ... 29

3.2.2. Perancangan Gaussian Cropping ... 32

3.2.3. Perancangan GVF Snake ... 35


(4)

BAB IV

PENGUJIAN SISTEM ... 45

4.1. Pengujian Modified Tophat Filter ... 45

4.1.1. Tujuan ... 45

4.1.2. Alat yang Digunakan ... 45

4.1.3. Prosedur Pengujian ... 46

4.1.4. Hasil Pengujian ... 46

4.2. Pengujian Gaussian Cropping ... 48

4.2.1 Tujuan ... 48

4.2.2. Alat yang Digunakan ... 48

4.2.3. Prosedur Pengujian ... 48

4.2.4. Hasil Pengujian ... 49

4.3. Pengujian GVF Snake ... 51

4.3.1. Tujuan ... 51

4.3.2. Alat yang Digunakan ... 51

4.3.3. Prosedur Pengujian ... 51

4.3.4. Hasil Pengujian ... 52

BAB V PENUTUP ... 59

5.1 Kesimpulan ... 59

5.2 Saran ... 59

DAFTAR PUSTAKA ... 60

LAMPIRAN ... 61


(5)

1. asd

1.1. Latar Belakang Masalah

Skoliosis adalah fenomena kelainan tulang belakang yang akan membengkok membentuk huruf C atau S. Bila dibiarkan, sudut kemiringan tulang belakang (cobb angle) akan menjadi semakin besar. Hal ini dapat mengakibatkan saraf tulang belakang terjepit atau organ-organ dalam terganggu. Penderita stadium awal dapat disembuhkan dengan memasang penyangga eksternal pada tubuh, sedangkan pada penderita dengan cobb angle yang sudah terlalu besar harus dipasangi implan penyangga pada tulang belakangnya melalui proses pembedahan.

Saat ini penentuan cobb angle oleh orthopedic masih memakai cara manual yang mempunyai tingkat presisi yang rendah baik secara inter-observer (antar inter-observer) maupun intra-inter-observer (satu inter-observer dalam pengukuran yang berbeda). Hal ini terjadi karena terdapat noise pada citra sinar x tulang belakang dari pasien penderita skoliosis. Noise itu dapat berupa organ-organ, darah, maupun tulang-tulang yang lainnya.

Snakes atau active contour adalah garis-garis lengkung yang didefiniskan pada citra yang dapat bergerak di bawah pengaruh gaya internal yang berasal dari garis lengkung itu sendiri dan gaya eksternal yang dikomputasikan dari data citra yang diperoleh dari sampel setelah dilakukan proses pre-processing. Proses pre-processing sendiri akan menggunakan metode modified tophat filter (Sardjono, 2007) dan Gaussian cropping yang diadaptasi dari fungsi


(6)

Gaussian. Gaya internal dan eksternal didefinisikan sehingga snake dapat menyesuaikan diri dengan tepi objek atau fitur lain dari citra yang diinginkan. (Xu dan Prince, 1998)

Pengolahan citra pada sampel akan dilakukan sebelum menerapkan metode Gradient Vector Flow (GFV) Snake model. Kemampuan snake untuk bergerak pada tepi suatu obyek itulah yang akan digunakan untuk proses segmentasi kelengkungan tulang belakang melalui metode GVF Snake yang merupakan pengembangan dari metode snake.

Dengan segmentasi metode GVF Snake diharapkan citra sinar x tulang belakang pada penderita skoliosis dapat diperjelas.

1.2. Perumusan Masalah

Dari latar belakang yang telah diuraikan di atas, maka dapat dirumuskan permasalahan sebagai berikut :

1. Bagaimana mengimplementasikan metode GVF Snake untuk segmentasi tulang belakang pada citra sampel.

2. Bagaimana menentukan parameter GVF Snake yang cocok digunakan untuk segmentasi kelengkungan tulang belakang.

1.3. Pembatasan Masalah

Dalam perancangan ini terdapat beberapa pembatasan masalah, antara lain :


(7)

1. Menggunakan citra sampel yang digunakan pada penelitian sebelumnya oleh Sardjono pada penelitian serupa pada tahun 2007 dengan menggunakan Modified CPM.

2. Inisialisasi snake berada di sekitar tulang belakang.

3. Segmentasi dilakukan pada seluruh bagian tulang belakang. 4. Inisialisasi active contour dilakukan secara manual.

1.4. Tujuan

Tujuan dari perancangan dan pembuatan perangkat ini adalah sebagai berikut :

1. Mengimplementasikan metode GVF Snake untuk segmentasi tulang belakang pada citra sampel.

2. Menentukan parameter GVF Snake yang cocok digunakan untuk segmentasi kelengkungan tulang belakang.

1.5. Kontribusi

Teknologi Computer Vision dewasa ini sedang marak dikembangkan. Dengan metode GVF Snake diharapkan citra tulang belakang dapat diperjelas sehingga semakin memudahkan orthopedic dalam mengukur cobb angle dan mengurangi resiko salah diagnosa penyakit skoliosis.

1.6. Sistematika Penulisan

Laporan penelitian tugas akhir ini tersusun atas beberapa bab dengan urutan sebagai berikut :


(8)

BAB I : Pendahuluan

Pada bab satu diuraikan mengenai latar belakang dari topik tugas akhir yang diambil, kemudian dirumuskan menjadi suatu permasalahan yang akan diselesaikan dalam tugas akhir ini, batasan-batasan masalah yang akan diteliti, tujuan dari penelitian tugas akhir ini, kontribusi yang dapat diberikan dari hasil penelitian ini terhadap perkembangan ilmu pengetahuan, serta sistematika penulisan buku Tugas Akhir.

BAB II : Landasan Teori

Bagian landasan teori menguraikan tentang teori-teori yang terkait dengan variabel-variabel penelitian termasuk uraian tentang pemilihan suatu teori yang diterapkan dalam menyelesaikan masalah. Teori yang akan diuraikan adalah tentang sistem yang digunakan yaitu metode pengolahan citra antara lain filtering untuk menghilangkan noise dan metode GVF Snake untuk segmentasi tulang belakang.

BAB III : Metode Penelitian

Dalam bab tiga diuraikan tentang metode penelitian yang digunakan dalam penelitian ini serta alasan dan penjelasan penggunaan metode tersebut dalam penelitian. Pada metode penelitian ini dimuat model sistem yang akan dibuat, perancangan aplikasi serta pembuatannya, yaitu pengaplikasian filter untuk menghilangkan noise dan memperjelas obyek yang diinginkan dan pengolahan citra sesuai


(9)

yang diharapkan, dan model pengujian dan evaluasi sistem yang digunakan.

BAB IV : Pengujian dan Evaluasi Sistem

Dalam bagian pengujian dan evaluasi sistem, diuraikan tentang langkah-langkah pengujian, tujuan pengujian, prosedur pengujian dan hasil pengujian serta analisis hasil pengujian sistem secara keseluruhan.

BAB V : Penutup

Bagian penutup merupakan bagian akhir dari laporan penelitian tugas akhir ini yang menguraikan kesimpulan-kesimpulan yang diperoleh dari proses penelitian, serta saran-saran untuk pengembangan penelitian selanjutnya.


(10)

BAB II

LANDASAN TEORI

2.1. Struktur Tulang Belakang

Tulang belakang atau vertebra adalah tulang tak beraturan yang membentuk punggung yang mudah digerakkan. Seperti yang ditunjukkan pada Gambar 2.1. manusia memiliki 33 ruas tulang belakang, yang terdiri dari empat bagian, yaitu tulang leher (cervical), tulang punggung (thoracic), tulang pinggang (lumbar), dan ekor (sacral). Tiga bagian teratas tersusun dari dan 7 tulang leher, 12 tulang dada, dan 5 tulang pinggang. Sedangkan bagian ekor dibentuk dari tulang ekor (coccyx) yang disusun oleh 4 tulang terbawah dan 5 tulang di atasnya akan bergabung membentuk bagian sacrum.

Gambar 2.1 Struktur tulang belakang manusia. (PT. Theramindo Jaya,2008)


(11)

2.1.1 Struktur Umum Tulang Belakang

Sebuah tulang belakang terdiri atas dua bagian yakni bagian anterior yang terdiri dari badan tulang atau corpus vertebrae, dan bagian posterior yang terdiri dari arcus vertebrae. Arcus vertebrae dibentuk oleh dua “kaki” atau pediculus dan dua lamina, serta didukung oleh penonjolan atau procesus yakni procesus articularis, procesus transversus, dan procesus spinosus. Procesus tersebut membentuk lubang yang disebut foramen vertebrale. Ketika tulang belakang disusun, foramen ini akan membentuk saluran sebagai tempat sumsum tulang belakang atau medulla spinalis. Di antara dua ruas tulang belakang dapat ditemui celah yang disebut foramen intervertebrale.

Tulang leher, secara umum memiliki bentuk tulang yang kecil dengan spina atau procesus spinosus (bagian seperti sayap pada belakang tulang) yang pendek, kecuali tulang ke-2 dan 7 yang procesus spinosusnya pendek. Gambar 2.2 menunjukkan bahwa setiap ruas tulang diberi nomor sesuai dengan urutannya dari C1-C7 (C dari cervical), namun beberapa memiliki sebutan khusus seperti C1 atau atlas, C2 atau aksis.

Procesus spinosus pada tulang punggung akan berhubungan dengan tulang rusuk. Tulang punggung dapat membuat sedikit gerakan memutar. Bagian ini dikenal juga sebagai ‘tulang punggung dorsal’ dalam konteks manusia. Bagian ini diberi nomor T1 hingga T12.


(12)

Gambar 2.2 Struktur ruas-ruas pada tulang belakang. (dari kiri: tampak samping kiri; tampak belakang)

Tulang pinggang merupakan bagian paling tegap konstruksinya dan menanggung beban terberat dari yang lainnya. Bagian ini memungkinkan gerakan fleksi dan ekstensi tubuh, dan beberapa gerakan rotasi dengan derajat yang kecil. Bagian ini diberi nomor L1 hingga L5.

Pada tulang ekor bagian sacrum, terdapat 5 tulang (S1-S5). Tulang-tulang bergabung dan tidak memiliki celah atau diskus intervertebralis satu sama lainnya. Sedangkan bagian ekor (coccygeal), memiliki 3 hingga 5 tulang (Co1-Co5) yang juga saling bergabung dan tanpa celah.

2.2. Skoliosis

Skoliosis adalah sebuah fenomena kelainan tulang belakang di mana tulang belakang akan melengkung membentuk sudut yang tidak seharusnya. Misalnya melengkung sehingga membentuk seperti huruf “C” atau “S” seperti pada Gambar 2.3. Fenomena skoliosis ini pun sebenarnya tidak hanya dipandang dari satu sisi saja, sehingga seolah kelainan ini bersifat 2-dimensi, namun fenomena skoliosis


(13)

dapat terjadi dalam ruang lingkup 3-dimensi. Jadi tulang belakang, selain dapat melengkung dalam sumbu Y, juga dapat melengkung (terputar) dalam sumbu X, dan Z seperti pada Gambar 2.4.

Gambar 2.3 (a) Tulang belakang normal (tampak kiri; belakang;) (b) melengkung membentuk “C” (tampak belakang);

(c) melengkung membentuk “S” (tampak belakang);

Gambar 2.4 Tulang belakang yang melengkung sekaligus terputar. (tampak belakang)


(14)

Tingkat kelengkungan tulang belakang atau derajat skoliosis ditentukan oleh sudut kelengkungan skoliosis. Untuk mengetahui derajat skoliosis dapat dilakukan dengan menggunakan skoliometer atau yang lebih akurat dapat dilakukan dengan melakukan observasi terhadap gambar sinar-x tulang belakang. Sudut kelengkungan skoliosis dapat diukur dengan dua metode, yaitu metode risser-ferguson angle dan cobb angle. Seseorang akan dinyatakan memiliki skoliosis bila cobb angle-nya lebih dari 10°.

Pada dasarnya, skoliosis dapat dikategorikan menjadi skoliosis fungsional (non-struktural) dan skoliosis struktural. Skoliosis fungsional adalah fenomena skoliosis yang terjadi karena postur tubuh ketika duduk atau berdiri tidak tegak lurus, sehingga tulang bahu terlihat tidak sejajar. Namun sesungguhnya cobb angle pada skoliosis fungsional ini tidak signifikan, bahkan dapat dibilang struktur tulang belakangnya normal, dan bila memang ada skoliosis, sifatnya cenderung tidak progresif dan tidak berbahaya. Sedangkan skoliosis struktural adalah fenomena skoliosis yang memang disebabkan karena perkembangan kedua sisi tubuh yang tidak seimbang sehingga tulang belakang jadi melengkung secara permanen dan skoliosis ini bersifat progresif sehingga perlu penanganan. Cara paling mudah membedakan skoliosis fungsional dan skoliosis struktural adalah dengan membungkukkan badan ke depan dan melihat apakah skoliosis masih ada. Bila tidak ada, maka fenomena itu termasuk ke dalam skoliosis fungsional, namun bila ada, fenomena tersebut disebut dengan skoliosis struktural, atau secara singkat orang yang bersangkutan memang menderita skoliosis.

Skoliosis adalah kelainan yang meskipun bukanlah sebuah penyakit, namun bisa saja disebabkan karena penyakit. Penyebab skoliosis bermacam-macam,


(15)

namun yang paling sering terjadi adalah karena faktor kebiasaan sikap tubuh. Pada umumnya skoliosis mulai terjadi pada masa kanak-kanak, yang disebabkan sikap tubuhnya ketika duduk atau berdiri tidak tegak. Penyebab lain dari kasus skoliosis merupakan efek samping yang diakibatkan karena kecelakaan atau menderita kelainan tertentu, seperti distrofi otot, sindrom Marfan, atau pun sindrom Down. Berbagai kelainan tersebut menyebabkan otot atau saraf di sekitar tulang belakang tidak berfungsi sempurna dan menyebabkan bentuk tulang belakang menjadi melengkung.

Bila ditinjau dari waktu skoliosis mulai muncul, ada tiga tipe skoliosis, yaitu infantile, juvenile, dan adolescent. Infantile adalah kondisi ketika skoliosis muncul di antara waktu kelahiran sampai dengan usia 3 tahun. Juvenile adalah kondisi ketika skoliosis mulai muncul di antara usia 4 hingga 9 tahun. Bila skoliosis mulai muncul mulai umur 10 tahun hingga masa pertumbuhan selesai dimasukkan dalam kategori adolescent.

Dampak buruk skoliosis sangatlah besar bagi tubuh. Yang paling jelas terlihat adalah sikap tubuh yang tidak sejajar yang berdampak pada penampilan. Hal ini dapat menyebabkan masalah, seperti timbulnya rasa kurang percaya diri atau ketika melamar pekerjaan. Dampak lain yang sebenarnya lebih buruk adalah skoliosis dapat memicu penyakit yang lain karena tulang belakang yang melengkung dapat menyebabkan saraf tulang belakang terjepit, sehingga penderita akan menjadi lumpuh, bahkan meninggal. Selain itu, organ-organ lain, seperti paru-paru, hati, dan ginjal juga dapat saling terhimpit karena posisi tulang yang tidak benar.


(16)

Penanganan skoliosis ada beberapa macam, yang pertama adalah dengan melakukan observasi tingkat skoliosis tanpa melakukan apa-apa dahulu. Observasi skoliosis dilakukan bila cobb angle tidak lebih dari 20° karena, terutama pada anak-anak, banyak kasus infantile skoliosis yang sembuh dengan sendirinya seiring anak itu tumbuh bila sikap tubuhnya ketika duduk, berdiri, atau tidur baik dan benar. Namun bila cobb angle sudah lebih dari 20°, tulang belakang yang melengkung secara tidak normal perlu diluruskan kembali sedikit demi sedikit melalui beberapa macam cara rehabilitasi, yaitu dengan olahraga, pemasangan penyangga eksternal, dan dengan pemasangan penyangga internal pada tulang belakang melalui operasi.

Rehabilitasi skoliosis yang optimal tergantung pada derajat kemiringan skoliosis. Bila sudut kemiringan skoliosis (cobb angle) kurang dari 40°, rehabilitasi yang perlu dilakukan cukup dengan olahraga ataupun pemasangan penyangga eksternal (bracing). Namun bila cobb angle lebih dari 40° atau meningkat dengan cepat, perlu dilakukan pemasangan penyangga internal pada tulang belakang.

2.3. Tophat Filter

Dalam matematika morfologi dan pengolahan citra digital, transformasi top-hat adalah sebuah operasi yang mengekstrak elemen kecil dan detail dari gambar yang diberikan. Ada dua jenis tophat filter :

1. White Tophat, didefinisikan sebagai perbedaan antara gambar input dan pembukaannya oleh beberapa elemen penataan.


(17)

2. Black Tophat, didefinisikan sebagai perbedaan antara closing dan gambar input.

Tophat filter banyak digunakan untuk berbagai tugas pengolahan gambar, ekstraksi fitur, pemerataan latar belakang, peningkatan citra, dll.

Rumus White Tophat Filter :

Tw(f) = f-f o b ...(1) Rumus Black Tophat Filter :

Tb (f) = f b-f ...(2)

Gambar 2.5 Contoh hasil filtering menggunakan black tophat filter.

2.4. Model Snake Parametrik ( Tradisional Snake )

Snakes atau active contour adalah garis-garis lengkung yang didefiniskan pada citra yang dapat bergerak di bawah pengaruh gaya internal yang berasal dari garis lengkung itu sendiri dan gaya eksternal yang dikomputasikan dari data citra. Gaya internal dan eksternal didefinisikan sehingga snake dapat menyesuaikan diri dengan tepi objek atau fitur lain dari citra yang diinginkan. Snakes digunakan


(18)

secara luas dalam berbagai aplikasi, termasuk deteksi tepi, pemodelan bentuk, segmentasi, dan pendeteksi gerakan.

Gambar 2.6 Tepi batas yang memiliki celah (Xu dan Prince, 1998)

Gambar 2.7 Hasil konvergensi menggunakan snake tradisional (Li dan Acton, 2007)

Ada dua tipe umum dari model active contour, yaitu parametric active contours dan geometric active contours. GVF termasuk ke dalam parametric active contours. Parametric active contour mensintesis garis-garis lengkung parametric dalam sebuah citra dan membuat mereka bergerak pada fitur yang diinginkan. Fitur yang paling umum digunakan adalah tepi. Secara khusus, garis-garis lengkung itu akan diarahkan pada tepi-tepi oleh gaya potensial yang didefinisikan sebagai gradien negatif dari sebuah fungsi potensial. Gaya tambahan lain seperti gaya tekan dan gaya potensial termasuk pada gaya eksternal. Selain itu, ada juga gaya internal yang dirancang untuk menahan garis-garis lengkung itu agar tidak


(19)

lepas (gaya elastis) dan untuk menjaganya agar tidak terlalu melengkung (gaya lengkung).

Ada dua permasalahan pada algoritma parametric active contour. Masalah pertama adalah garis kontur inisial harus dekat dengan batas yang diinginkan atau hasilnya akan menjadi keliru. Masalah kedua adalah active contour masih mengalami kesulitan untuk menyesuaikan diri pada bentuk-bentuk yang memiliki batas-batas bercelah (cekungan) seperti pada Gambar 2.6. Hasil konvergensi yang didapatkan pada Gambar 2.6 dengan menggunakan snake tradisional dapat dilihat pada Gambar 2.7. (Xu dan Prince, 1998)

Snake tradisional adalah sebuah garis lengkung yang didefinisikan sebagai �(�) = [�(�),�(�)], ������� ∈[0,1]... (3) Yang bergerak melalui wilayah spasial dari sebuah citra untuk meminimalisasi fungsional energi yang didefinisikan sebagai:

� = ∫ 1

2����(�)� 2

+���′′(�)�2� 1

0 +������(�)��� ... (4) Di mana α dan β adalah parameter bobot yang mengendalikan tingkat ketegangan dan kekakuan snake. Sedangkan x'(s) dan x''(s) mendefinisikan turunan pertama dan kedua dari x(s). Fungsi energi eksternal Eext diturunkan dari citra yang

diambil dari nilai yang lebih kecil daripada fitur yang diinginkan atau tepi. Dengan mempertimbangkan citra grayscale I(x,y) yang dianggap sebagai fungsi dari sebuah variabel posisi yang kontinyu (x,y), energi eksternal yang serupa didesain supaya mengarahkan active contour untuk mendekati tepi citra. Energi eksternal tersebut dinyatakan sebagai:

���(1)

(�,�) =−|∇�(�,�)|2 ... (5) ����(2)


(20)

Di mana Gσ(x,y) adalah fungsi Gaussian dua dimensi dengan standar deviasi σ dan adalah operator gradien. Bila gambar yang ada di citra adalah gambar garis hitam di latar putih, maka energi eksternal yang sesuai harus mengikut-sertakan: ����(3)

(�,�) =�(�,�) ... (7) ����(4)

(�,�) =�(�,�)∗ �(�,�) ... (8) Dapat dilihat dengan jelas dari definisi tersebut bahwa semakin besar nilai σ akan menyebabkan batas tepi menjadi kabur. Namun kadang nilai σ yang besar diperlukan untuk meningkatkan jarak tangkap dari active contour.

Snake yang meminimalisasi E harus memenuhi persamaan Euler:

��′′(�)− ��′′′′(�)− ∇���� = 0 ... (9) Persamaan 9 dapat dianggap sebagai persamaan keseimbangan gaya:

���� +����(�) = 0 ... (10) di mana:

���� =��′′(�)− ��′′′′(�) ... (11) dan

���(�)

= −∇���� ... (12) Gaya internal Fint berguna untuk mengurangi peregangan dan

pelengkungan garis-garis kontur snake, sedangkan gaya potensial eksternal ����(�) menarik snake untuk menyesuaikan diri pada tepi-tepi citra yang diinginkan.

Untuk mencari solusi dari aturan Euler pada Persamaan 9, snake dibuat dinamis dengan menganggap x sebagai fungsi dari t sebagaimana s menjadi x(s,t). Kemudian turunan parsial dari x yang berhubungan dengan t dibuat bernilai sama dengan sisi sebelah kiri Persamaan 9 sebagai berikut:


(21)

��(�,�) =��′′(�,�)− ��′′′′(�,�)− ∇���� ... (13) Ketika solusi x(s,t) sudah stabil, xt(s,t) akan hilang dan akan didapatkan

solusi dari Persamaan 9. Solusi numerik dari Persamaan 13 dapat diperoleh dengan mendiskritkan persamaan dan menyelesaikan sistem diskrit tersebut secara berulang-ulang. Kebanyakan implementasi snake menggunakan parameter yang mengalikan xt untuk mengendalikan step-size sementara atau parameter untuk

mengalikan ∇Eext, yang mengakibatkan kekuatan gaya eksternal dapat mengendalikannya. Untuk membuat agar magnitudo maksimumnya setara dengan satu, gaya eksternal perlu dinormalisasi. (Kaas dkk, 1987)

2.5. Gradient Vector Flow (GVF)

Untuk mengatasi 2 kekurangan yang dimiliki oleh Snake Tradisional maka dikembangkanlah sebuah metode baru yang menggunakan gaya eksternal yang disebut dengan medan gradient vector flow (GVF) yang merupakan bidang vektor yang rapat yang diturunkan dari citra dengan meminimalisasi fungsional energi tertentu pada kerangka yang bervariasi. Proses minimalisasi didapatkan dengan menyelesaikan pasangan persamaan diferensial parsial linier secara terpisah yang menyebarkan vektor-vektor gradien tepi citra biner atau grayscale yang dihitung dari citra. Active contour yang menggunakan medan GVF sebagai gaya eksternal tersebut disebut dengan GVF snake. GVF snake berbeda dengan hampir seluruh formulasi snake sebelumnya dalam hal gaya eksternalnya tidak dapat didefinisikan sebagai gradien negatif dari fungsi potensial. Karena itu, GVF snake tidak dapat diformulasikan menggunakan kerangka minimalisasi energi yang


(22)

standar. Untuk itu, hal tersebut harus dispesifikkan secara langsung dari kondisi keseimbangan gaya.

Gambar 2.8 Inisialisasi garis kontur GVF Snake (Li dan Acton, 2007)

Kelebihan utama dari GVF snake dibandingkan dengan snake tradisional adalah tidak terlalu bergantung pada inisialisasi dan dapat bergerak pada tepi yang berbentuk cekungan. Inisialisasi GVF snake dapat dilakukan di dalam, di luar, atau bahkan melewati tepi objek seperti pada Gambar 2.8. GVF snake tidak perlu diberi pengaturan apakah harus mengerut atau mengembang untuk menyesuaikan diri pada tepi objek. GVF snake juga memiliki jarak tangkap yang besar yang berarti bahwa selama tidak ada objek lain yang menginterferensi, garis kontur inisialisasi dapat diletakkan sangat jauh dari tepi objek. Peningkatan jarak tangkap ini didapatkan melalui penyebaran proses yang tidak mengaburkan tepi-tepinya sendiri. (Xu dan Prince, 1998)

Sebuah gaya eksternal tipe baru untuk snake yang tidak berubah terhadap waktu ataupun bergantung pada posisi snake itu sendiri memiliki dasar matematis dari teorema Helmholtz yang menyatakan bahwa medan vektor statis yang paling


(23)

umum dapat didekomposisi menjadi dua komponen, yaitu komponen yang irrotational (bebas lingkaran) dan komponen solenoidal (bebas perbedaan). Gaya potensial eksternal yang dihasilkan dari variasi formulasi snake tradisional harus dimasukkan dulu ke dalam persamaan keseimbangan gaya sebagai sebuah medan irrotational yang statis karena ini adalah fungsi potensial gradien. Oleh karena itu, medan statis yang lebih umum ����(�) dapat diperoleh dengan memertimbangkan kemungkinan yang meliputi komponen irrotational dan komponen solenoidal. Medan gaya eksternal didesain supaya memiliki properti yang diinginkan, baik dari jarak tangkap yang besar maupun adanya gaya yang mengarah pada celah tepi objek. Hasil formulasi tersebut menghasilkan medan gaya eksternal yang dapat diperkirakan memiliki komponen irrotational maupun solenoidal. Pendekatan yang dilakukan adalah dengan menggunakan kondisi keseimbangan gaya sebagai poin awal untuk mendesain snake. Medan gaya eksternal statis didefinisikan sebagai

���(�)

=�(�,�) ... (14) Untuk mendapatkan persamaan snake dinamis yang berkaitan gaya potensial −∇���� pada persamaan 10 harus digantikan dengan �(�,�) menurut:

��(�,�) = ��′′(�,�)− ��′′′′(�,�) +� ... (15) Lengkungan parametrik yang menyelesaikan persamaan dinamis tersebut disebut dengan GVF snake. Persamaan tersebut dapat diselesaikan secara numerik dengan membuatnya menjadi diskrit dan berulang-ulang dengan cara yang sama seperti pada snake tradisional.

Meskipun konfigurasi akhir GVF snake memenuhi persamaan keseimbangan gaya, persamaan ini tidak merepresentasikan persamaan Euler tentang masalah


(24)

minimalisasi energi secara umum pada persamaan 3. Hal ini disebabkan karena �(�,�) tidak akan menjadi medan irrotational. Namun kekurangan ini dikompensasi dengan adanya peningkatan performa yang signifikan dari GVF snake.

Langkah awal implementasi GVF snake dimulai dengan mendefinisikan edge map �(�,�) yang diturunkan dari citra �(�,�) yang memiliki properti yang semakin mendekati tepi citra nilainya semakin besar. Edge map yang digunakan dapat berupa citra biner maupun grayscale. Contohnya:

�(�,�) =−����(�)(�,�),������� = 1, 2, 3,���� 4 ... (16) Tiga properti umum dari edge map sangat penting dalam konteks ini. Pertama, gradien dari edge map ∇� memiliki vektor-vektor yang menunjuk kepada tepi-tepi citra yang normal pada tepi. Kedua, vektor-vektor ini memiliki magnitudo yang besar hanya di dekat tepi citra. Ketiga, di area yang homogen di mana �(�,�) mendekati konstan, nilai ∇� akan mendekati nol.

Bila gradien dari sebuah edge map sebagai sebuah gaya eksternal pada snake tradisional, properti pertamanya akan membuat snake yang diinisialisasi dekat dengan tepi akan menjadi konvergen pada konfigurasi stabil di dekat tepi. Properti kedua akan menyebabkan jarak tangkap menjadi sangat kecil. Sedangkan properti ketiga akan menyebabkan daerah-daerah yang homogen tidak memiliki gaya eksternal. Efek yang dihasilkan properti pertama adalah efek yang menguntungkan, sedangkan efek dari dua properti lainnya tidak menguntungkan. Untuk itu harus dibuat properti yang memiliki gradien tinggi di sekitar tepi namun dapat mengembangkan peta gradien lebih jauh dari tepi hingga ke daerah homogen menggunakan proses penyebaran yang terkomputasi. Hal ini juga akan


(25)

menyebabkan keuntungan lain, yaitu proses difusi akan menimbulkan vektor-vektor yang mengarah pada tepi-tepi yang bercelah.

Medan gradient vector flow didefinisikan sebagai medan vektor v(�,�) = [�(�,�),�(�,�)] yang meminimalisasi fungsi energi:

� =∬ ���2+�2+�2 +�2�+ |∇�|2|v− ∇�|2���� ... (17) Variasi formulasi ini mengikuti prinsip standar untuk membuat hasil yang halus ketika tidak ada data yang tersedia. Ketika |∇�| bernilai kecil, energi didominasi oleh penjumlahan kuadrat dari turunan parsial medan vektor mengikuti medan yang bervariasi pelan-pelan. Di sisi lain, ketika |∇�| bernilai besar, operan yang kedua akan mendominasi integral dan diminimalisasi dengan pengaturan ketika v = ∇�. Hal ini membuat efek yang diinginkan dengan menjaga nilai v agar sama dengan gradien edge map ketika nilainya menjadi besar. Namun hal itu juga akan memaksa medan untuk bervariasi secara pelan di area yang homogen. Parameter � adalah parameter reguler yang mengatur timbal balik antara operan pertama dan kedua dalam integral. Parameter ini harus diatur sesuai dengan jumlah noise yang ada di dalam citra. Semakin banyak noise, maka nilai � harus semakin besar.

Dengan menggunakan variasi kalkulus medan GVF dapat ditemukan dengan menyelesaikan persamaan Euler berikut ini:

�∇2� −(� − �

�)���2+��2�= 0 ... (18) �∇2� − �� − �

�����2+��2�= 0 ... (19) Di mana ∇2 adalah operator Laplacian. Persamaan ini memberikan intuisi yang lebih jauh daripada formulasi GVF. Pada area homogen, di mana �(�,�) bernilai konstan, operan kedua di tiap persamaan bernilai nol karena gradien �(�,�) juga


(26)

bernilai nol. Oleh karena itu, di dalam area tersebut masing-masing nilai u dan v ditentukan oleh persamaan Laplace dan GVF yang dihasilkan diinterpolasikan dari tepi area dengan merefleksikan semacam kompetisi di antara vektor-vektor tepi. Inilah sebabnya GVF menghasilkan vektor-vektor yang dapat menunjuk pada tepi-tepi yang bercelah. Sehingga hasil yang didapatkan oleh GVF snake adalah seperti pada Gambar 2.9. (Li dan Acton, 2007)

Permasalahan yang muncul dari GVF snake ini adalah kegagalan pada lengkungan dan boundary leakage seperti pada Gambar 2.8 yang disebabkan karena ketiadaan energi citra. Masalah kedua adalah masih terlalu sensitif pada proses inisialisasi yang harus simetris. Yang ketiga adalah kegagalan bila ada celah yang terlalu sempit dan dalam karena gaya eksternal pada celah tersebut terlalu lemah. Permasalahan keempat adalah kemungkinan terjadinya local minima karena syarat energi global minimal tidak kunjung terpenuhi. Permasalahan terakhir adalah ketidak-mampuannya beradaptasi pada perubahan topologi yang terjadi pada citra untuk kasus-kasus tertentu. (Jalba dkk, 2004)


(27)

Gambar 2.10 Hasil konvergensi menggunakan GVF snake (Li dan Acton, 2007)

2.6 OpenCV

OpenCV (Open Computer Vision) adalah sebuah API (Application Programming Interface) library yang sudah sangat familiar pada pengolahan citra computer vision. Computer vision itu sendiri adalah salah satu cabang dari bidang ilmu pengolahan citra (Image Processing) yang memungkinkan komputer dapat melihat seperti manusia. Dengan computer vision tersebut komputer dapat mengambil keputusan, melakukan aksi, dan mengenali terhadap suatu objek. Beberapa pengimplementasian dari computer vision adalah face recognition, face detection, face/pbject tracking, road tracking, dll.

OpenCV adalah library open source untuk computer vision untuk C/C++, OpenCV didesain untuk aplikasi real-time, memiliki fungsi-fungsi akuisisi yang baik untuk image/video.


(28)

Fitur yang dimiliki OpenCV antara lain :

1. Manipulasi data citra (alocation, copying, setting, convert).

2. Citra dan video I/O (file dan kamera based input, image/video file output). 3. Manipulasi Matriks dan Vektor beserta rutin-rutin aljabar linear (products,

solvers, eigenvalues, SVD).

4. Data struktur dinamis (lists, queues, sets, trees, graphs).

5. Pemroses citra fundamental (filtering, edge detection, corner detection, sampling and interpolation, color conversion, morphological operations, histograms, image pyramids).

6. Analisis struktur (connected components, contour processing, distance Transform, various moments, template matching, Hough Transform, polygonal approximation, line fitting, ellipse fitting).

7. Kalibrasi kamera (calibration patterns, estimasi fundamental matrix, estimasi homography, stereo correspondence).

8. Analisis gerakan (optical flow, segmentation, tracking). 9. Pengenalan obyek (eigen-methods, HMM).

10. Graphical User Interface (display image/video, penanganan keyboard dan mouse handling, scroll-bars).

OpenCV terdiri dari 3 library, yaitu:

1. CV : Untuk algoritma Image Processing dan Vision 2. Highgui : Untuk GUI, Image dan Video I/O


(29)

2.7 AUC (Area Under ROC Curve)

ROC (Receive Operating Characteristics) adalah hasil pengukuran klasifikasi dalam bentuk 2 dimensi. Penggunaan kurva ROC semakin popular dalam berbagai aplikasi terutama dalam bidang image processing. Berikut ada empat peluang yang dapat diformulasikan dalam table kontingensi 2 × 2 untuk menganalisis ROC :

Tabel 2.1 Tabel Kontingensi ROC Untuk tingkat akurasi dapat diuraikan dari table diatas.

�������������� = (��+��)

(��+��+��+��) × 100 %……...(20)

AUC adalah luas daerah di bawah kurva ROC. Bila nilainya mendekati satu, maka model yang di dapat lebih akurat. Karakteristik dari AUC adalah sebagai berikut:

1. Area maksimum adalah 1.

2. Jika ROC = 0.5 maka model yang dihasilkan belum terlihat optimal. 3. Sedangkan jika ROC > 0.5 maka model yang dihasilkan akan lebih

baik.

Kelas prediksi Kelas sebenarnya

Benar salah

Positif Benar positif Salah positif Salah Benar negatif Salah negatif


(30)

3.1. Perancangan Sistem dan Blok Diagram Sistem

Model penelitian yang akan dilakukan adalah model penelitian pengembangan. Untuk mempermudah dalam memahami sistem yang akan dibuat dapat dijelaskan melalui blok diagram pada Gambar 3.1.

Gambar 3.1 Blok Diagram

Pada Gambar 3.1 terdapat 2 buah bagian utama, yaitu pre-processing dan segmentasi menggunakan GVF Snake.

Citra x-ray tulang belakang

Start

Modified Tophat Filter

Gaussian Cropping

Segmentasi menggunakan GVF

Snake

Hasil

End


(31)

1. Pre-processing

Pada proses pre-processing dilakukan filtering. Filtering digunakan untuk memisahkan bagian yang dibutuhkan dari background sebuah citra sehingga setelah proses ini selesai, didapat sebuah citra baru yang berisi bagian-bagian yang diperlukan saja.

2. Segmentasi menggunakan GVF Snake.

Setelah proses filtering, didapat citra biner yang berbentuk tulang belakang tanpa objek yang lain, barulah proses pembentukan imitasi siluet tulang belakang melalui titik-titik yang telah diinisialisasikan sambil menjaga kelenturan dan bentuk sesuai citra dengan memanfaatkan energi internal dan eksternal.

3.2. Perancangan Perangkat Lunak

Dalam perancangan GVF Snake, compiler yang digunakan adalah Microsoft Visual C++ 2008. Untuk library yang digunakan pada pengolahan citra yaitu library OpenCV v1.1. yang menyediakan fungsi untuk pengolahan citra.

Dalam penulisannya atau dalam pembuatan program, akan meliputi bagian-bagian penting dalam setiap langkah-langkah per bagian sesuai dengan algoritma atau logika sekuensial dari awal sampai output. Berikut adalah flowchart program secara global :


(32)

Gambar 3.2 Flowchart Program Deskripsi flowchart :

1. Dimulai dari input citra yang akan diproses.

2. Dilanjutkan pre-processing dengan menggunakan filter modified tophat kemudian menggunakan Gaussian cropping untuk mengekstrak edge map, mereduksi noise dan bagian-bagian dari citra sinar x yang tidak diperlukan.


(33)

3. Selanjutnya proses inisialisasi membuat titik-titik yang nanti akan bergerak menuju tepi citra.

4. Selanjutnya kalkulasikan medan gaya GVF field dan simpan pada variabel array dan set iterasi berjumlah 60 kali.

5. Hitung nilai energi eksternal dari citra yang telah terfilter dan energi internal dari active contour yang telah diinisialisasi.

6. Lakukan proses perhitungan gaya yang melibatkan energi internal dari GVF Snake dengan energi eksternal dari citra agar titik-titik yang telah diinisialisasi bergerak mendekati tepi citra dan menambah counter iterasi. 7. Ulangi langkah kelima sampai memenuhi jumlah iterasi yang di tentukan.

3.2.1. Perancangan Modified Tophat Filter

Tahap pertama dari proses pre-processing adalah proses filtering untuk memperjelas citra tulang belakang dan mengurangi noise di sekitar tulang belakang menggunakan Modified Tophat Filter.

Rumus modified tophat filter adalah : modTH= � ∘ �−�

�•� × Ɣ...(21)

Dimana : f = citra gambar b = struktur elemen

∘ = operator morfologi closing • = operator morfologi opening Ɣ = attenuation factor


(34)

Gambar 3.3 Flowchart Modified Tophat Filter

Jika diprogram menggunakan rumus modified tophat filter, maka dapat ditulis code program sebagai berikut :

int disk = 5;

IplConvKernel *strel =cvCreateStructuringElementEx(2*disk+1, 2*disk+1, disk, disk, CV_SHAPE_ELLIPSE, 0);

norMat(edge, f32Image, 1);

cvMorphologyEx(f32Image,TH,tempMat,strel,CV_MOP_OPEN,1); cvSub(TH,f32Image,TH);

cvMorphologyEx(f32Image,CL,tempMat,strel,CV_MOP_CLOSE,1); cvDiv(TH, CL, modTH,11);

norMat(modTH,modTH); cvCopyImage(modTH,edge);


(35)

Gambar 3.4 Hasil modified tophat filter.

Perancangan modified tophat filter dimulai dengan melakukan operasi opening , yaitu proses erosi dilanjutkan dengan dilasi pada citra gambar dengan struktur elemen bertipe disk dengan ukuran 5. Hasil dari proses opening kemudian dikurangkan dengan citra awal dari citra gambar sehingga menyisakan tepi dari objek saja. Selanjutnya dilakukan proses closing menggunakan citra awal, yaitu proses dilasi yang dilanjutkan dengan erosi dengan menggunakan struktur elemen berukuran sama. Proses opening menyebabkan citra menjadi lebih mengembang, sebaliknya proses closing menyebabkan citra menyusut.Kemudian hasil dari opening dikurangi citra awal dibagi dengan hasil closing untuk menghilangkan sisa noise selanjutnya dikalikan dengan attenuation factor untuk memperjelas bentuk tepi.


(36)

3.2.2. Perancangan Gaussian Cropping

Tahap kedua dari proses pre-precessing adalah dengan menghilangkan untuk mereduksi noise dan bagian-bagian dari citra sinar x yang tidak diperlukan khususnya bagian kanan dan kiri dari citra tulang belakang menggunakan Gaussian cropping.

Rumus Gaussian Cropping adalah :

( ) ( )       − − = 2 2 2 exp c a b Gaussian ...(22) Keterangan : a = koordinat piksel pada citra

b = koordinat center of peak dari fungsi Gaussian c = standar deviasi.

Gambar 3.5 Kurva fungsi Gaussian

Alur dari penggunaan gaussian cropping bisa dilihat pada gambar 3.6 : c

a b


(37)

Gambar 3.6 Flowchart Gaussian cropping

Jika diprogram menggunakan rumus gaussian cropping, maka dapat ditulis code program sebagai berikut :

int counter=0;

int jmlh_baru=jmlh;

//baris atas

for (int i=1;i<=koordinat[1][2];i++)

for (int j=0;j<=edge->width;j++)

edge->imageData[edge->widthStep * i + j* edge->nChannels]=0;


(38)

//baris tengah int index=1;

for (int y=koordinat[1][2];y<=koordinat[jmlh_baru][2];y++) {

if (y==koordinat[index][2]) {

y=koordinat[index][2];

float nilai=0;

for (int x=0;x<=edge->width;x++) {

double gaussian=0;

gaussian=((koordinat[index][1]- x)*(koordinat[index][1]-x)) / ((2*10)*(2*10));

gaussian=exp(-(gaussian)); nilai=(uchar)edge -> imageData [edge->widthStep*y +

x*edge->nChannels];

edge->imageData[edge->widthStep * y + x* edge->nChannels]=nilai*

gaussian; } index=index+1; } else {

for (int x=0;x<edge->width;x++)

edge->imageData[edge->widthStep * y + x* edge->nChannels]=(uchar)edge ->

imageData [edge->widthStep*(y-1) + x*edge->nChannels];

} }

//baris bawah

for (int y=koordinat[jmlh_baru][2];y<=edge->height-1;y++)

for (int x=0;x<=edge->width;x++)

edge->imageData[edge->widthStep * y + x* edge->nChannels]=0;

cvDestroyWindow("Gaussian Filter"); cvNamedWindow("Gaussian Filter",1); cvShowImage("Gaussian Filter",edge);

//kosongkan SLL

while (!InitContour.empty()) {

InitContour.pop_back(); }

std::cout<<"kosong"<<std::endl;

Diawali dengan membuat inisialisasi pada citra tulang belakang menggunakan gerakan mouse dan menyimpan setiap titik yang dilewati oleh mouse. Untuk setiap titik tersebut akan menjadi titik puncak dari fungsi gaussian sehingga semakin kekanan dan kekiri dari koordinat x dari titik puncak akan menghasilkan nilai gaussian yang mendekati nilai 0, nilai gaussian tersebut kemudian dikalikan


(39)

dengan nilai pixel awal untuk menghasilkan nilai piksel yang baru. Penentuan nilai variabel c disesuaikan dengan lebar dari tulang belakang.

Hasil yang diperoleh ditunjukan oleh Gambar 3.4.

Gambar 3.7 Hasil Gaussian cropping.

3.2.3. Perancangan GVF Snake

Perancangan GVF Snake meliputi perancangan kalkulasi energi internal (active contour) dan energi eksternal citra edge map.

1. Perancangan Energi Eksternal

GVF Field adalah medan yang digunakan untuk menunjukan arah gaya. Medan ini digunakan sebagai penentu arah partikel active contour untuk bergerak


(40)

menuju edge map dari citra tulang belakang. Sesuai dengan rumus yang ada pada persamaan 17 :

�= ∬ ����+��+��+���+ |��|�|� − ��|�����...(23) Sesuai dengan artikel yang ditulis oleh (Cartas,A. dan Ayala, -) berjudul Gradient Vector Flow Snakes, rumus energi eksternal pada persamaan 17 diatas telah di sederhanakan menjadi :

ut= ���� −(� − �)���+���...(24) Dan

vt= ���� − �� − �����+���...(25) Dimana

ut = koordinat x untuk setiap iterasi vt = koordinat y untuk setiap iterasi

∇ = Laplacian factor µ = mu

fx = matrik x fy = matrik y b = fx2 + fy2 c1 = b × fx c2 = b × fy


(41)

Gambar 3.8 Flowchart energi eksternal

Yang jika diimplementasikan dalam bentuk program ditulis seperti di bawah ini: void GVFC(IplImage * edge_map,CvMat * out_u,CvMat * out_v,float

mu,int max_ite ) {

CvSize size = cvGetSize(edge_map);

CvMat * fx = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * fy = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * f = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * b = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * c1 = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * c2 = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * u = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * v =cvCreateMat(size.height,size.width,CV_32FC1); CvMat * lu = cvCreateMat(size.height,size.width,CV_32FC1); CvMat * lv = cvCreateMat(size.height,size.width,CV_32FC1); normMat(edge_map,f);


(42)

CvSepFilter Px; Px.init_deriv(f->width,f->type,fx->type,1,0,1); Px.process(f,fx); cvConvertScale(fx,fx,0.5); CvSepFilter Py; Py.init_deriv(f->width,f->type,fy->type,0,1,1); Py.process(f,fy); cvConvertScale(fy,fy,0.5);

for(int y=0;y<size.height;y++)

for(int x=0;x<size.width;x++) {

float fx_t = CV_MAT_ELEM(*fx,float,y,x);

float fy_t = CV_MAT_ELEM(*fy,float,y,x); CV_MAT_ELEM(*u,float,y,x) = fx_t;

CV_MAT_ELEM(*v,float,y,x) = fy_t;

float bxy = fx_t*fx_t + fy_t*fy_t; CV_MAT_ELEM(*b,float,y,x) = bxy;

CV_MAT_ELEM(*c1,float,y,x) = bxy*fx_t; CV_MAT_ELEM(*c2,float,y,x) = bxy*fy_t; }

for(int i=0;i<max_ite;i++) {

cvLaplace(u,lu,1); cvLaplace(v,lv,1);

for(int y=0;y<size.height;y++)

for(int x=0;x<size.width;x++) {

float tempu = (1.0f - CV_MAT_ELEM (*b,float,y,x) )*

CV_MAT_ELEM(*u,float,y,x) +mu*CV_MAT_ELEM(*lu,float,y,x) +CV_MAT_ELEM(*c1,float,y,x);

CV_MAT_ELEM(*u,float,y,x) =tempu;

float tempv = (1.0f -CV_MAT_ELEM

(*b,float,y,x) )*CV_MAT_ELEM(*v,float,y,x) +mu*CV_MAT_ELEM(*lv,float,y,x)

+CV_MAT_ELEM(*c2,float,y,x);

CV_MAT_ELEM(*v,float,y,x) = tempv; }

}

cvCopy(u,out_u); cvCopy(v,out_v);

Penggunaan cvSepFilter digunakan untuk memisah matrik edge_map dalam 2 bagian, yaitu fx dan fy. Kemudian dilanjutkan dengan menghitung nilai b, c1 dan c2. Untuk menghitung fungsi laplace digunakan cvLaplace yang ada OpenCV.


(43)

Kemudian melakukan perhitungan nilai gaussian untuk setiap piksel menggunakan fungsi gaussian untuk menentukan nilai piksel yang baru dengan mengkalikan nilai gaussian yang didapat dengan nilai awal dari piksel.

2. Perancangan Energi Internal

Energi internal didefinisikan pada persamaan 15 sebagai :

���

=

��

′′

(

)

− ��

′′′′

(

)

...(26)

Merujuk pada jurnal (Luengo C, 2009) dimana energi internal dijabarkan dalam bentuk matrik berukuran N x N seperti di bawah ini :

-2

α

-6

β

α

+4

β

-

β

0

0

0

-

β

α

+4

β

α

+4

β

-2

α

-6

β

α

+4

β

-

β

0

0

0

-

β

-

β

α

+4

β

-2

α

-6

β

α

+4

β

-

β

0

0

0

0

-

β

α

+4

β

-2

α

-6

β

α

+4

β

-

β

0

0

0

0

-

β

α

+4

β

-2

α

-6

β

α

+4

β

0

0

-

β

0

0

0

0

0

-2

α

-6

β

α

+4

β

α

+4

β

-

β

0

0

0

0

α

+4

β

-2

α

-6

β

Dari matriks diatas dapat diketahui bahwa hanya 5 diagonal saja yang mempunyai nilai, sisanya bernilai 0. Matrik ini yang kemudian disebut sebagai cyclic pentadiagonal banded matrix. Implementasi energi internal dapat dilihat pada flowchart dibawah ini.


(44)

Gambar 3.9 Flowchart energi internal

Kalkulasi energi internal memakai rumus pada persamaan 15 dimana pada program ditulis sebagai berikut :

void snakeDeform( std::vector<CvPoint>& points,double alpha,double

beta,double gamma,double kappa,CvMat * u,CvMat * v,int max_ite) {

assert(points.size()>5); CvSize size = cvGetSize(u);

float a = beta;

float b = -alpha-4*beta;

float c = 2*alpha+6*beta;


(45)

float e = beta;

int y,x,i,k;

int len = points.size();

CvMat * A = cvCreateMat(len,len,CV_32FC1); cvZero(A);

for( y = 0;y<len;y++) {

int index = (2*len-2 + y )%len; CV_MAT_ELEM(*A,float,y,index) = a; index = (index+1)%len;

CV_MAT_ELEM(*A,float,y,index) = b; index = (index+1)%len;

CV_MAT_ELEM(*A,float,y,index) = c; index = (index+1)%len;

CV_MAT_ELEM(*A,float,y,index) = d; index = (index+1)%len;

CV_MAT_ELEM(*A,float,y,index) = e; }

//A = inv(A+gamma*I); for( y=0;y<len;y++)

for( x=0;x<len;x++) {

if(y==x)

CV_MAT_ELEM(*A,float,y,x) = CV_MAT_ELEM(*A,float,y,x); }

cvInvert(A,A);

Implementasi energi internal dilakukan dengan membuat matrik pentadiagonal dari komponen alpha, beta dan gamma sesuai dengan format matrik pentadiagonal. Kemudian dilakukan invers pada matrik A.

3. Pengujian Parameter

Pengujian parameter dilakukan untuk mengetahui efek dari masing-masing parameter yang ada, dan menentukan parameter yang paling cocok untuk digunakan pada sampel. Pengujian ini dilakukan dengan memakai citra berbentuk S-shaped.


(46)

Gambar 3.10 Template S-shaped Ada tiga parameter yang akan diuji :

3.1Parameter Alpha

3.2Parameter Beta

3.3Parameter Gamma

Parameter-parameter diatas mempunyai nilai antara 0-1.

3.1 Parameter Alpha

Pengujian pada parameter yang mengatur elastisitas partikel Snake dilakukan dengan mengatur parameter alpha dengan nilai 0 sampai dengan 1 sedangkan parameter beta dan gamma secara berturut-turut bernilai 0,2 dan 0,2.

3.2 Parameter Beta

Pengujian pada parameter yang mengatur kekakuan partikel Snake dilakukan dengan mengatur parameter beta dengan nilai 0 sampai dengan


(47)

1 sedangkan parameter alpha dan gamma secara berturut-turut bernilai 0,9 dan 0,2.

3.3 Parameter Gamma

Pengujian pada parameter yang mengatur kelekatan antara partikel snake dengan citra dilakukan dengan mengatur parameter gamma dengan nilai 0 sampai dengan 1 sedangkan parameter alpha dan beta secara berturut- turut bernilai 0,9 dan 0,2.

Pengujian akurasi dilakukan menggunakan citra S-shaped dengan metode ROC dimana nilai piksel dari hasil GVF Snake dibandingkan dengan nilai piksel pada template yang dibuat sebagai pembanding.

(a) (b)

Gambar 3.11 Citra sampel ke 8 (a) Hasil GVF Snake (b) Citra pembanding. Hasil pengujian ketiga parameter dalam persen menggunakan ROC ditunjukan pada tabel 3.1


(48)

Tabel 3.1 Hasil pengujian akurasi pada parameter alpha, beta dan gamma.

Dari Tabel 3.1 dapat diketahui hasil pengujian akurasi menggunakan metode ROC yang menunjukan nilai persentase akurasi pada parameter alpha, beta, dan gamma dengan nilai mulai dari 0 sampai 1 dengan kenaikan 0,1. Dari Tabel 3.1 dapat diketahui nilai untuk setiap parameter yang dapat memberikan akurasi terbaik untuk segmentasi tulang belakang berturut-turut adalah alpha 0.9, beta 0.2, dan gamma 0.2.


(49)

BAB IV PENGUJIAN SISTEM

Pengujian sistem yang dilakukan merupakan pengujian terhadap pre-processing dan GVF Snake yang telah selesai dibuat. Dimulai dari modified tophat filter, Gaussian cropping, dan GVF Snake.

4.1. Pengujian Modified Tophat Filter

Pengujian modified tophat filter dilakukan dengan mengekstrak egde map atau tepi objek pada citra input tulang belakang dikarenakan GVF Snake tidak bisa digunakan pada citra yang berobjek padat. Pengujian dilakukan beberapa kali dengan nilai disk dan attenuation factor yang berbeda sampai menemukan hasil citra yang memperlihatkan bentuk tulang belakang terjelas.

4.1.1. Tujuan

Tujuan pengujian ini yaitu mengetahui apakah modified tophat filter mampu mengekstrak edge map dari citra tulang belakang. Mengetahui apakah Modified Tophat Filter dapat memperjelas citra tulang belakang dan menghilangkan bagian lain yang tidak diperlukan.

4.1.2. Alat yang Digunakan

1. OpenCV v1.1

2. Microsoft Visual C++ 2008 3. Personal Computer (PC)

4. Sampel citra x-ray tulang belakang.


(50)

4.1.3. Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008 2. Input citra sampel x-ray tulang belakang.

3. Menjalankan program Modified Tophat Filter. 4. Jalankan program.

4.1.4. Hasil Pengujian

Tophat filter yang sudah dimodifikasi dapat memperjelas edge map tulang belakang pada citra x-ray dan menghilangkan sebagian besar noise pada sekitar bagian tulang belakang.

Hasil pengujian Modified Tophat Filter pada 10 buah sampel yang ada ditunjukan pada gambar 4.1 – 4.3


(51)

Gambar 4.2 Hasil Modified Tophat Filter pada sampel 5 – 8


(52)

Dari hasil pengujian diatas modified tophat filter mampu memperjelas edge map tulang belakang dan menghilangkan sebagian besar noise di sekitar tulang belakang.

4.2. Pengujian Gaussian Cropping

Pengujian dilakukan dengan mengaplikasikan rumus Gaussian cropping pada seluruh piksel citra untuk menghilangkan noise yang menghalangi partikel snake pada sisi kanan dan sisi kiri dari citra tulang belakang. Pengujian dilakukan beberapa kali sambil mengubah nilai parameter disk dan attenuation factor pada komponen Gaussian cropping untuk mencari nilai yang sesuai dengan bentuk tulang belakang pada sampel yang ada.

4.2.1 Tujuan

Tujuan pengujian Gaussian cropping adalah untuk menghilangkan noise yang menghalangi partikel snake pada sisi kanan dan sisi kiri dari citra tulang belakang serta mencari nilai parameter yang sesuai untuk bentuk tulang belakang.

4.2.2. Alat yang Digunakan

1. OpenCV v1.1

2. Microsoft Visual C++ 2008 3. Personal Computer (PC)

4. Sampel citra x-ray tulang belakang.

4.2.3. Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008. 2. Menjalankan program modified tophat filter.


(53)

3. Pada citra dari hasil modified tophat filter kemudian di buat marking / tanda menggunakan mouse secara perlahan mengikuti bentuk tulang belakang sehingga membentuk garis tengah pada citra tulang belakang.

4. Tekan tombol ‘s’ ato ‘S’ pada keyboard.

5. Lihat hasil yang tampak pada window baru yang muncul.

6. Jika hasil yang tampak berbeda jauh dengan bentuk tulang belakang pada hasil modified tophat filter atau ada bagian pada citra hasil yang menggaris kebawah , ulangi proses 1 dan gerakan mouse secara perlahan.

4.2.4. Hasil Pengujian

Hasil dari pengujian Gaussian cropping tampak pada gambar-gambar di bawah ini :


(54)

Gambar 4.5 Hasil Gaussian cropping pada sampel 5 – 7


(55)

Dengan demikian dapat disimpulkan bahwa Gaussian cropping dapat digunakan untuk menghilangkan noise pada sisi kanan dan kiri dari citra tulang belakang.

4.3. Pengujian GVF Snake

Pengujian sampel citra tulang belakang dilakukan dengan menggunakan nilai parameter alpha, beta, dan gamma yang mempunyai hasil paling baik dan nilai parameter tersebut digunakan untuk pengujian pada semua sampel yang ada dengan jumlah iterasi yang telah ditentukan.

4.3.1. Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah dengan nilai parameter alpha, beta, dan gamma yang dipakai mampu membuat active contour bergerak menuju edge map citra tulang belakang dengan iterasi yang telah ditentukan.

4.3.2. Alat yang Digunakan

1. Microsoft Visual C++ 2008 2. Personal Computer (PC) 3. OpenCV v1.1

4. Sampel citra x-ray tulang belakang.

4.3.3. Prosedur Pengujian


(56)

2. Input citra sampel x-ray tulang belakang. 3. Menjalankan program modified tophat filter. 4. Menjalankan program .

5. Membuat inisiasi partikel snake disekitar tulang belakang.

6. Tekan ‘s’ atau ‘S’ untuk menjalankan proses segmentasi tulang belakang. 7. Melihat hasil data citra pada window.

8. Ulangi proses pertama untuk semua sampel yang ada.

4.3.4. Hasil Pengujian

Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah hasil yang didapatkan di bawah ini:


(57)

Gambar 4.8 Hasil GVF Snake pada sampel 2.

Gambar 4.9 Hasil GVF Snake pada sampel 3

Pada sampel 1,2, dan 3 hasil segmentasi GVF Snake menunjukan active contour menyusut ke dalam edge map dari tulang belakang, hal ini dikarenakan gaya


(58)

eksternal yang ada di dalam ruas tulang belakang lebih besar sehingga menarik active contour untuk masuk lebih ke dalam.

Gambar 4.10 Hasil GVF Snake pada sampel 4


(59)

Untuk hasil pada sampel 4, ada bagian pada active contour yang bending keluar hal ini dikarenakan pada citra tulang belakang pada sampel 5 terdapat bagian mempunyai lengkungan yang tajam.

Gambar 4.12 Hasil GVF Snake pada sampel 6


(60)

Gambar 4.14. Hasil GVF Snake pada sampel 8


(61)

Gambar 4.16. Hasil GVF Snake pada sampel 10.

Untuk sampel 6-10, hasil segmentasi tulang belakang menunjukan hasil yang bagus, yaitu seluruh titik active contour dapat menuju edge map tanpa ada bagian yang bending keluar. Dari seluruh sampel didapat tingkat akurasi hasil segmentasi menggunakan ROC seperti yang ditampilkan pada tabel di bawah ini :

Tabel 4.1 Tabel hasil pengukuran akurasi segmentasi GVF Snake pada 10 sampel tulang belakang menggunakan ROC.


(62)

Dari tabel diatas dapat dihitung akurasi rata-rata dari 10 sampel tulang belakang yang ada menggunakan rumus :

Rata-rata Akurasi =∑ Akurasi Sampel...(27) n

Dimana : akurasi sampel adalah nilai akurasi dari tiap sampel. n adalah jumlah sampel yang digunakan.

Menggunakan persamaan 27 dan hasil pengukuran akurasi segmentasi GVF Snake pada tabel 4.1 dapat diketahui rata-rata akurasi dari 10 sampel adalah : Rata-rata akurasi = (79,93+81,89+77,9+76,18+77,91+78,57+79,76+82,42 +76,78

+ 82,21 )/10 = 79,355 %


(63)

5.1 Kesimpulan

Setelah melakukan penelitian dan pengujian terhadap sistem yang dibuat, dapat diambil kesimpulan sebagai berikut :

1. Aplikasi ini dapat melakukan segmentasi kelengkungan tulang belakang pada beberapa bentuk tulang belakang dengan tingkat akurasi rata-rata sebesar 79,355 % , dengan menggunakan modified tophat filter dan Gaussian cropping untuk pre-processing dan GVF Snake untuk segmentasi kelengkungan tulang belakang.

2. Nilai parameter alpha, beta, dan gamma yang memberikan hasil akurasi terbaik untuk digunakan dalam segmentasi tulang belakang menggunakan metode GVF Snake berturut-turut adalah 0.9, 0.2, dan 0.2.

5.2 Saran

Agar pada penelitian selanjutnya sistem ini dapat dikembangkan lebih sempurna, maka penulis memberikan saran sebagai berikut:

1. Penggunaan PC yang mempunyai spesifikasi yang tinggi, kartu grafis yang lebih modern dan teknologi prosesor terbaru dapat mempercepat proses kalkulasi dalam kepentingan segmentasi.

2. Penelitian ini bisa dikembangkan pada tahap berikutnya yaitu determinasi kelengkungan tulang belakang dengan memanfaatkan hasil pada penelitian ini.


(64)

A.Cartas-Ayala. “Gradient Vector Flow Snakes”.(Online) (http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV 1011/cartas.pdf). Diakses Tanggal 27 Juni 2013

David K. Wolpert. 2006. Scoliosis Surgery: The Definitive Patient's Reference. Swordfish Communications.

Jalba, A.C. dkk. 2004. CPM: A Deformable Model for Shape Recovery and Segmentation Based on Charger Particles. IEEE Transactions on Pattern Analysis and Machine Intelligence vol. 26, no. 10. Kass, M. dkk. 1988. Snakes : Active Contour Models. International Journal

of Computer Vision, 321-331(1998).

Li, B. Dan Acton, C.S. 2007. Active Countour External Force Using Vector Field Convolution for Image Segmentation. IEEE Transactions on Image Processing vol. 16, no. 8.

Sardjono, T.A. 2007. Spinal X-ray Image Analysis in Scoliosis.

Sardjono, T.A. dkk. 2007. Spinal Curvature Determination from an X-Ray Image Using a Deformable Model. IFMBE Proceedings Vol. 15. Serra, J. 1988. Image Analysis and Mathematical Morphology, Volume 2:

Theoretical Advances. Academic Press; 1st edition.

Xu, C. dan Prince, J.L. 1998. Snakes, Shapes, and Gradient Vector Flow. IEEE Transactions on Image Processing vol. 2, no. 3.

PT. Theramindo Jaya.2008. Disk Dr Waist nyeri pinggang, sakit pinggang , sakit lutut, nyeri lutut, sakit leher.Online(http://www.diskdr-online.com/products/1/0/?o=terbaru)


(1)

Untuk hasil pada sampel 4, ada bagian pada active contour yang bending keluar hal ini dikarenakan pada citra tulang belakang pada sampel 5 terdapat bagian mempunyai lengkungan yang tajam.

Gambar 4.12 Hasil GVF Snake pada sampel 6


(2)

56

Gambar 4.14. Hasil GVF Snake pada sampel 8


(3)

Gambar 4.16. Hasil GVF Snake pada sampel 10.

Untuk sampel 6-10, hasil segmentasi tulang belakang menunjukan hasil yang bagus, yaitu seluruh titik active contour dapat menuju edge map tanpa ada bagian yang bending keluar. Dari seluruh sampel didapat tingkat akurasi hasil segmentasi menggunakan ROC seperti yang ditampilkan pada tabel di bawah ini :

Tabel 4.1 Tabel hasil pengukuran akurasi segmentasi GVF Snake pada 10 sampel tulang belakang menggunakan ROC.


(4)

58

Dari tabel diatas dapat dihitung akurasi rata-rata dari 10 sampel tulang belakang yang ada menggunakan rumus :

Rata-rata Akurasi =∑ Akurasi Sampel...(27) n

Dimana : akurasi sampel adalah nilai akurasi dari tiap sampel. n adalah jumlah sampel yang digunakan.

Menggunakan persamaan 27 dan hasil pengukuran akurasi segmentasi GVF Snake pada tabel 4.1 dapat diketahui rata-rata akurasi dari 10 sampel adalah : Rata-rata akurasi = (79,93+81,89+77,9+76,18+77,91+78,57+79,76+82,42 +76,78

+ 82,21 )/10 = 79,355 %


(5)

5.1 Kesimpulan

Setelah melakukan penelitian dan pengujian terhadap sistem yang dibuat, dapat diambil kesimpulan sebagai berikut :

1. Aplikasi ini dapat melakukan segmentasi kelengkungan tulang belakang pada beberapa bentuk tulang belakang dengan tingkat akurasi rata-rata sebesar 79,355 % , dengan menggunakan modified tophat filter dan Gaussian cropping untuk pre-processing dan GVF Snake untuk segmentasi kelengkungan tulang belakang.

2. Nilai parameter alpha, beta, dan gamma yang memberikan hasil akurasi terbaik untuk digunakan dalam segmentasi tulang belakang menggunakan metode GVF Snake berturut-turut adalah 0.9, 0.2, dan 0.2.

5.2 Saran

Agar pada penelitian selanjutnya sistem ini dapat dikembangkan lebih sempurna, maka penulis memberikan saran sebagai berikut:

1. Penggunaan PC yang mempunyai spesifikasi yang tinggi, kartu grafis yang lebih modern dan teknologi prosesor terbaru dapat mempercepat proses kalkulasi dalam kepentingan segmentasi.

2. Penelitian ini bisa dikembangkan pada tahap berikutnya yaitu determinasi kelengkungan tulang belakang dengan memanfaatkan hasil pada penelitian ini.


(6)

DAFTAR PUSTAKA

A.Cartas-Ayala. “Gradient Vector Flow Snakes”.(Online) (http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV 1011/cartas.pdf). Diakses Tanggal 27 Juni 2013

David K. Wolpert. 2006. Scoliosis Surgery: The Definitive Patient's Reference. Swordfish Communications.

Jalba, A.C. dkk. 2004. CPM: A Deformable Model for Shape Recovery and Segmentation Based on Charger Particles. IEEE Transactions on Pattern Analysis and Machine Intelligence vol. 26, no. 10. Kass, M. dkk. 1988. Snakes : Active Contour Models. International Journal

of Computer Vision, 321-331(1998).

Li, B. Dan Acton, C.S. 2007. Active Countour External Force Using Vector Field Convolution for Image Segmentation. IEEE Transactions on Image Processing vol. 16, no. 8.

Sardjono, T.A. 2007. Spinal X-ray Image Analysis in Scoliosis.

Sardjono, T.A. dkk. 2007. Spinal Curvature Determination from an X-Ray Image Using a Deformable Model. IFMBE Proceedings Vol. 15. Serra, J. 1988. Image Analysis and Mathematical Morphology, Volume 2:

Theoretical Advances. Academic Press; 1st edition.

Xu, C. dan Prince, J.L. 1998. Snakes, Shapes, and Gradient Vector Flow. IEEE Transactions on Image Processing vol. 2, no. 3.

PT. Theramindo Jaya.2008. Disk Dr Waist nyeri pinggang, sakit pinggang , sakit lutut, nyeri lutut, sakit leher.Online(http://www.diskdr-online.com/products/1/0/?o=terbaru)