Pendeteksian Tepi Canny
IMPLEMENTASI DAN PENGUJIAN
Setelah melalui tahap perancangan, tahap selanjutnya untuk mengembangkan suatu perangkat lunak adalah tahap implementasi. Untuk mengetahui apakah hasil implementasi perangkat lunak tersebut telah berhasil atau tidak, diperlukan pengujian. Berikut ini hasil implementasi dan pengujian dari aplikasi perangkat lunak yang telah dibangun:
Implementasi
Dalam pengembangan aplikasi pendeteksi tepi citra dengan metode Sobel, LoG, dan Canny ini bahasa pemrograman yang digunakan adalah Matlab 7.5.0 (R2007b). Listing program dari aplikasi ini dapat dilihat pada halaman Lampiran. Dalam implementasinya, aplikasi ini terdiri atas 6 (enam) buah tampilan utama, yang dalam Matlab dikenal sebagai figur. Figur-figur tersebut terdiri atas:
1. Figur PendeteksianTepi 2. Figur MetodeSobel 3. Figur MetodeLoG 4. Figur MetodeCanny
5. Figur InfoProgrammer, dan 6. Figur InfoProgram
Figur PendeteksianTepi
Figur PendeteksianTepi ini merupakan tampilan utama dari aplikasi yang telah dibanguan. Figur ini menghubungkan pengguna untuk dapat menggunakan aplikasi pendeteksian tepi. Figur ini diimplementasikan dengan tampilan seperti Gambar 4.1.
Gambar 4.1 Tampilan Figur PendeteksianTepi
Figur PendeteksianTepi ini dirancang dengan 2 (dua) buah menu utama, yaitu Metode dan Info. Menu Metode terdiri atas sub-menu Sobel, LoG, Canny, dan Keluar. Sub-menu Sobel menghubungkan pengguna dengan figur MetodeSobel, sub-menu LoG menghubungkan pengguna dengan figur MetodeLoG, dan sub-menu Canny menghubungkan pengguna dengan figur MetodeCanny, dan sub-menu Keluar menghubungkan pengguna dengan pilihan untuk meninggalkan aplikasi atau tidak. Tampilan penjabaran menu Metode ini dapat dilihat dari Gambar 4.2.
Gambar 4.2 Menu Metode pada Figur PendeteksianTepi
Menu Info tediri atas 2 (dua) sub-menu, yaitu Programmer dan Program. Sub- menu Programmer menghubungkan pengguna dengan figur InfoProgrammer, dan sub- menu Program menghubungkan pengguna dengan figur InfoProgram. Gambar 4.3 memperlihatkan tampilan dari menu Info pada figur Pendeteksian Tepi.
Figur MetodeSobel
Figur MetodeSobel merupakan figur yang menghubungkan pengguna dengan metode Sobel untuk mendeteksi tepi citra. Untuk menjangkau figur ini, pengguna dapat mengklik menu Metode, kemudian memilih sub-menu Sobel yang terdapat pada figur PendeteksianTepi. Tampilan dari figur MetodeSobel diperlihatkan pada Gambat 4.4.
Gambar 4.4 Tampilan Figur MetodeSobel
Pada figur ini, terdapat 2 (dua) pilihan menu, yaitu menu File dan menu Keluar. Dari menu File, pengguna dapat melakukan beberapa operasi yang dapat dipilih dengan mengklik tiap pilihan sub-menu dari menu File. Operasi-operasi tersebut terdiri atas :
1. Buka, dan 2. Proses
Sub-menu Buka merupakan pilihan untuk menampilkan file citra yang diambil dari salah satu alamat direktori, dan akan diproses dengan metode pendeteksi tepi Sobel, dan sub-menu proses merupakan pilihan beberapa proses yang ingin dilakukan terhadap file citra yang telah dipilih untuk diporses. Operasi-operasi yang dapat dilakukan dari sub-menu proses ini adalah Deteksi Sobel untuk melakukan deteksi tepi terhadap citra masukan dengan metode Sobel, Timing Run untuk menghitung kecepatan proses deteksi metode Sobel, dan Sensitivity Rate untuk mengetahui nilai kesensitifan metode Sobel terhadap noise. Gambar 4.5 memperlihatkan penjabaran sub-menu dari menu File yang terdapat pada figur MetodeSobel.
Gambar 4.5 Menu File pada Figur MetodeSobel
Dengan mengklik menu File dan sub-menu Buka pada figur MetodeSobel, citra yang dipilih sebagai citra masukan (citra asli) akan ditampilkan pada kolom yang terdapat di bawah label ’Citra Asli’ pada figur. Begitu juga dengan nama dan ukuran
dari file citra asli tersebut akan ditampilkan pada kolom ’Nama File’ dan ’Ukuran’ yang telah tersedia di bawah kolom tersebut. Informasi ini berguna untuk menandakan perbedaan antara setiap file yang menjadi input dalam aplikasi. Sedangkan kolom di bawah label ’Citra Tepi’ akan menampilkan citra hasil deteksi tepi dengan metode Sobel, jika pengguna mengklik menu File, sub-menu Proses, dan sub-menu Deteksi Sobel.
Untuk memperoleh nilai ’Timing Run’ dan ’Sensitivity Rate’ dari hasil pendeteksian tepi dengan metode Sobel dan menampilkan pada kolom yang terdapat di bagian bawah figur dapat dilakukan dengan memilih menu File, sub-menu Proses dan sub-menu Timing Run (untuk nilai Timing Run) dan Sensitivity Rate (untuk nilai Sensitivity Rate).
Figur MetodeLoG
Figur MetodeLoG merupakan figur yang menghubungkan pengguna dengan proses pendeteksian tepi citra dengan metode Laplacian of Gaussian (LoG). Untuk menampilkan figur ini pengguna dapat mengklik menu Metode dan sub-menu LoG pada figur PendeteksianTepi. Hampir keseluruhan tampilan figur LoG ini memiliki tampilan yang sama dengan figur MetodeSobel. Gambar 4.6 memperlihatkan tampilan dari figur MetodeLoG.
Gambar 4.6 Tampilan Figur MetodeLoG
Perbedaan antara figur MetodeSobel dengan MetodeLoG terdapat pada pilihan sub-menu yang tersedia. Jika pada figur MetodeSobel pada menu File dan sub-menu Proses salah satu pilihan sub-menu selanjutnya adalah ‘Deteksi Sobel’, pada figur MetodeLoG pilihan ini diganti dengan ‘Deteksi LoG’. Selain dari perbedaan pilihan sub-menu tersebut, seluruh tampilan kedua figur ini sama. Gambar 4.7 memperlihatkan penjabaran sub-menu dari figur MetodeLoG yang membedakannya dengan figur MetodeSobel.
Gambar 4.7 Menu File pada Figur MetodeLoG
Figur MetodeCanny
Figur MetodeCanny merupakan figur yang menghubungkan pengguna dengan proses pendeteksian tepi citra dengan metode Canny. Untuk menampilkan figur ini pengguna dapat mengklik menu Metode dan sub-menu Canny pada figur PendeteksianTepi. Seperti halnya pada figur MetodeLoG, hampir keseluruhan tampilan figur MetodeCanny juga memiliki tampilan yang sama dengan kedua figur sebelumnya, yaitu MetodeSobel dan MetodeLoG. Gambar 4.8 memperlihatkan tampilan dari figur Metode Canny.
Gambar 4.8 Tampilan Figur MetodeCanny
Figur MetodeCanny pun memiliki perbedaan yang sama dengan perbedaan antara figur MetodeSobel dengan MetodeLoG. Perbedaan tersebut terletak pada pilihan sub-menu yang tersedia. Jika pada figur MetodeSobel pada menu File dan sub- menu Proses salah satu pilihan sub-menu selanjutnya adalah ‘Deteksi Sobel’ dan pada figur MetodeLoG pilihan ini diganti dengan ‘Deteksi LoG’, maka pada figur MetodeCanny pilihan ini diubah menjadi ‘Deteksi Canny’. Selain dari perbedaan pilihan sub-menu tersebut, seluruh tampilan ketiga figur ini sama. Gambar 4.9 memperlihatkan penjabaran sub-menu dari figur MetodeCanny yang membedakannya dengan figur MetodeSobel dan MetodeLoG.
Gambar 4.9 Menu File pada Figur MetodeCanny
Figur InfoProgrammer
Figur InfoProgrammer merupakan figur yang berfungsi untuk memberikan informasi mengenai programmer dari aplikasi pendeteksi tepi ini. Informasi tersebut terdiri atas data diri dari programmer. Figur ini dapat dipilih dengan mengklik menu Info dan sub-menu Programmer pada figur PendeteksianTepi. Gambar 4.10 memperlihatkan Figur InfoProgrammer.
Gambar 4.10 Tampilan Figur InfoProgrammer
Figur InfoProgram
Untuk menampilkan figur InfoProgram, pengguna dapat mengklik menu Info dan sub- menu Program dari menu yang terdapat pada figur PendeteksianTepi. Figur ini berisi informasi mengenai gambaran umum dari aplikasi pendeteksian tepi citra ini. Gambar 4.11 memperlihatkan tampilan dari figur InfoProgram.
Gambar 4.11 Tampilan Figur InfoProgram
Selain dari 6 (enam) figur yang telah dijabarkan di atas, dalam aplikasi ini juga terdapat 1 (satu) buah figur question dialog yang akan tampil ketika pengguna mengklik pilihan untuk ’Keluar’ dari setiap figur yang ada. Gambar 4.12 memperlihatkan tampilan dari figur ’Keluar’.
Pengujian
Untuk melihat keberhasilan sebuah sistem yang telah dibangun sebagai sarana untuk menyelesaikan suatu permasalahan, sistem tersebut harus diuji dengan beberapa kasus yang berbeda. Jika sistem yang telah diuji dianggap dapat memenuhi kebutuhan pengguna maka sistem itu dapat dikatakan sebagai sebuah sistem yang sukses.
Dalam penulisan Tugas Akhir ini, pengujian terhadap aplikasi pendeteksi tepi yang telah dibangun dilakukan dengan menguji kinerja tiap metode yang ada dengan empat jenis citra masukan yang berbeda kualitas resolusinya. Citra-citra tersebut untuk selanjutnya disebut sebagai Citra_asli1 untuk jenis citra dengan resolusi 0,3 megapiksel, Citra_asli2 untuk citra dengan resolusi 2 megapiksel, Citra_asli4 untuk citra dengan resolusi 7 megapiksel dan Citra_asli4 untuk citra dengan resolusi 10 megapiksel.
Hasil
Berikut ini hasil yang diperoleh dari pengujian terhadap aplikasi pendeteksian tepi citra dengan tiga metode pendeteksi tepi yang diuji dengan empat jenis citra masukan yang memiliki tingkat kualitas resolusi yang berbeda:
Metode Sobel
Dari hasil pengujian yang dilakukan terhadap metode Sobel dengan empat jenis citra masukan yang berbeda, yaitu Citra_asli1, Citra_asli2, Citra_asli3, dan Citra_asli4, serta menetapkan nilai Alfa yang dipakai sebagai variabel yang mempengaruhi kualitas citra hasil keluaran metode ini dengan nilai 8,0, maka diperoleh hasil sebagai berikut:
1. Citra_asli1
Dari pengujian yang dilakukan terhadap metode Sobel dengan Citra_asli1 sebagai masukannya, diperoleh hasil:
Kualitas citra tepi:
a. Terdapat beberapa piksel bukan tepi yang didefenisikan sebagai tepi. b. Tepi yang dihasilkan adalah tepi ganda (double edge).
Nilai timing run = 2,064 detik
Nilai sensitivity rate = 0,752373 piksel
Gambar 4.13 memperlihatkan figur yang menunjukkan hasil pengujian Citra_asli1 untuk metode Sobel.
Gambar 4.13 Hasil Pengujian Metode Sobel untuk Citra_asli1
2. Citra_asli2
Dari pengujian metode Sobel dengan Citra_asli2 sebagai citra masukannya, diperoleh hasil sebagai berikut :
Kualitas citra tepi:
a. Banyak piksel yang bukan tepi didefenisikan sebagai tepi.
b. Tepi yang terbentuk terdiri atas tepi ganda dan tepi tunggal (single edge). Nilai timing run = 27,2725 detik
Nilai sensitivity rate = 1,8075 piksel.
Gambar 4.14 memperlihatkan figur hasil pengujian terhadap metode Sobel untuk Citra_asli2.
Gambar 4.14 Hasil Pengujian Metode Sobel untuk Citra_asli2
3. Citra_asli3
Pengujian terhadap metode Sobel dengan Citra_asli3 sebagai citra masukannya, menghasilkan:
Kualitas citra tepi:
a. Terdapat banyak piksel yang dianggap bukan tepi didefenisikan sebagai tepi. b. Terdiri atas tepi-tepi tunggal, namun beberapa merupakan tepi ganda.
Nilai timing run = 195,761 detik Nilai sensitivity rate = 2,52927 piksel
Gambar 4.15 memperlihatkan figur yang menunjukkan hasil pengujian Citra_asli3 dengan metode Sobel.
Gambar 4.15 Hasil Pengujian Metode Sobel untuk Citra_asli3
4. Citra_asli4
Untuk pengujian metode Sobel dengan masukan Citra_asli4, hasil yang diperoleh adalah sebagai berikut:
a. Beberapa piksel tepi tidak terdefenisi.
b. Beberapa piksel bukan tepi didefenisikan sebagai tepi. c. Tepi yang dihasilkan adalah tepi tunggal (single edge). Nilai timing run = 338,237 detik
Nilai sensitivity rate = 2,92088 piksel.
Gambar 4.16 memperlihatkan hasil pengujian metode Sobel dengan Citra_asli4.
Gambar 4.16 Hasil Pengujian Metode Sobel untuk Citra_asli4
Metode LoG
Setelah melakukan pengujian terhadap metode LoG dengan nilai variabel Sigma = 0,5 dan Alfa = 0,23, diperoleh hasil untuk keempat citra masukan, sebagai berikut:
1. Citra_asli1
Dari hasil pengujian terhadap metode LoG dengan Citra_asli1 sebagai citra masukan, diperoleh hasil sebagai berikut:
Kualitas citra tepi:
a. Terdiri atas tepi-tepi tunggal.
b. Beberapa piksel tepi tidak terdefenisi.
c. Beberapa piksel bukan tepi didefenisikan sebagai tepi. Nilai timing run = 0,571387 detik
Nilai sensitivity rate = 3,08445 piksel
Hasil pengujian metode LoG untuk Citra_asli1 diperlihatkan pada Gambar 4.17.
2. Citra_asli2
Untuk pengujian Citra_asli2 dengan metode LoG, hasil yang diperoleh adalah sebagai berikut:
Kualitas citra tepi:
a. Banyak piksel bukan tepi didefenisikan sebagai tepi.
b. Piksel yang didefenisikan sebagai tepi merupakan tepi tunggal, namun tidak semuanya terdefenisi sebagai tepi.
Nilai timing run = 2,46148 detik Nilai sensitivity rate = 3,091 piksel.
Gambar 4.18 memperlihatkan hasil pengujian metode LoG untuk Citra_asli2.
3. Citra_asli3
Hasil pengujian metode LoG untuk Citra_asli3 sebagai berikut: Kualitas citra tepi:
a. Objek yang seharusnya menjadi objek tepi, tidak terdefenisi.
b. Tepi yang terbentu merupakan noise-noise yang terdeteksi oleh metode LoG. Nilai timing run = 62,8449 detik
Nilai sensitivity rate = 3,65482 piksel.
Gambar 4.19 memperlihatkan hasil pengujian metode LoG dengan Citra_asli3.
Gambar 4.19 Hasil Pengujian Metode LoG untuk Citra_asli3
4. Citra_asli4
Hasil pengujian yang dilakukan terhadap Citra_asli4 dengan metode LoG adalah sebagai berikut:
Kualitas citra tepi:
a. Hampir seluruh piksel yang terdefenisi sebagai tepi bukan merupakan objek yang seharusnya dideteksi.
Nilai timing run = 125,612 detik Nilai sensitivity rate = 3,86956 piksel.
Gambar 4.20 memperlihatkan hasil pengujian metode LoG untuk Citra_asli4.
Gambar 4.20 Hasil Pengujian Metode LoG untuk Citra_asli4
Metode Canny
Dari pengujian terhadap metode Canny dengan nilai Sigma = 0,7 dan Alfa = 0,07. Maka, hasil yang diperoleh untuk keempat citra masukannya adalah sebagai berikut:
1. Citra_asli1
Dari pengujian Citra_asli1 dengan metode Sobel, hasil yang diperoleh adalah: Kualitas citra tepi:
a. Tepi yang dihasilkan adalah tepi tunggal.
b. Tepi yang dideteksi lebih akurat dibanding dua metode lain. Nilai timing run = 58,8907 detik
Nilai sensitivity rate = 0,997956 piksel.
Gambar 4.21 menunjukkan figur hasil pengujian metode Canny dengan masukan Citra_asli1.
2. Citra_asli2
Hasil pengujian yang diperoleh dari Citra_asli2 pada metode Canny adalah sebagai berikut:
Kualitas citra tepi:
a. Tepi yang dihasilkan adalah tepi tunggal.
b. Terdapat beberapa piksel tepi yang tidak terdefenisi. Nilai timing run = 246,61 detik
Nilai sensitivity rate = 0,996275 piksel.
Gambar 4.22 memperlihatkan figur hasil pengujian metode Canny untuk Citra_asli2.
3. Citra_asli3
Dari pengujian metode Canny dengan citra masukan Citra_asli3, diperoleh hasil sebagai berikut:
Kualitas citra tepi:
a. Semakin banyak tepi yang tidak terdefenisi.
b. Tidak terdapat piksel bukan tepi yang didefenisikan sebagai tepi. Nilai timing run = 776,576 detik
Nilai sensitivity rate = 0,993497 piksel.
Gambar 4.23 memperlihatkan figur hasil pengujian metode Canny dengan Citra_asli3.
4. Citra_asli4
Untuk Citra_asli4 yang diuji dengan metode Canny, diperoleh hasil seperti berikut ini:
Kualitas citra tepi:
a. Banyak piksel tepi yang tidak terdefenisi.
b. Tidak terdapat piksel bukan tepi yang didefenisikan sebagai tepi. Nilai timing run = 1815,93 detik
Nilai sensitivity rate = 0,992519 piksel
Gambar 4.24 memperlihatkan figur hasil pengujian metode Canny untuk Citra_asli4.
Pembahasan
Untuk mendapatkan suatu hasil citra deteksi tepi yang maksimal dari tiap-tiap metode, nilai variabel yang mempengaruhi kinerja tiap metode tersebut harus ditentukan dengan benar.
Dari hasil pengujian yang dilakukan, untuk metode Sobel, variabel yang mempengaruhi kinerja metode ini adalah nilai Alfa (faktor pengali pada proses pengambangan). Selain mempengaruhi hasil keluaran citra tepi, nilai Alfa juga berpengaruh pada waktu dan kesensitifan metode terhadap noise. Semakin tinggi nilai Alfa yang digunakan, semakin besar waktu pemrosesan yang diperlukan, nilai sensitivitasnya juga semakin besar. Karena itu, nilai Alfa yang digunakan harus sesuai, artinya tidak terlalu besar, agar waktu yang diperlukan untuk pemrosesan tidak terlalu lama. Dan tidak terlalu kecil, agar kualitas citra yang dihasilkannya, lebih baik. Nilai Alfa yang paling tepat digunakan untuk mendeteksi tepi keempat jenis citra masukan dengan metode Sobel untuk penelitian ini adalah 8,0. Dengan nilai Alfa 8,0, tepi citra untuk keempat jenis citra masukan berhasil terdeteksi. Citra_asli1 menghasilkan keluaran yang paling baik. Selain citra tepi yang terdeteksi dengan baik, waktu yang dibutuhkan untuk pemrosesan juga tidak terlalu lama, hanya saja nilai sensitivity ratenya tidak terlalu besar. Pada citra masukan lain, citra tepi yang dihasilkan kurang begitu baik, hal ini dikarenakan banyak noise yang terdeteksi sebagai tepi.
Pada metode LoG, selain dipengaruhi oleh nilai Alfa, metode ini juga dipengaruhi oleh nilai Sigma yang merupakan standar deviasi pada fungsi Gaussian. Setelah menguji metode ini dengan beberapa nilai Sigma dan Alfa, maka diperoleh nilai Sigma = 0,5 dan Alfa = 0,23 sebagai nilai terbaik. Namun nilai ini hanya baik untuk mendeteksi tepi citra dengan tingkat resolusi rendah, yaitu Citra_asli1 dan Citra_asli2, namun dengan kualitas yang tidak begitu baik. Pada Citra_asli3 dan Citra_asli4 tepi citra tidak terdeteksi, pada jenis citra ini metode LoG mendefenisikan noise sebagai tepi. Dengan nilai Sigma dan Alfa lain, tepi citra untuk Citra_asli3 dan Citra_asli4 juga tetap tidak terdeteksi. Hal ini dikarenakan proses konvolusi dengan kernel Laplacian, yang membuat metode ini sangat sensitif terhadap keberadaan noise.
Sama seperti pada metode Sobel, penentuan nilai variabel pada metode LoG juga berpengaruh pada nilai timing run dan sensitivity ratenya. Semakin besar nilai Sigma dan Alfa yang digunakan, timing run untuk setiap citra masukan juga semakin besar. Nilai sensitivity ratenya juga semakin besar untuk setiap citra masukan.
Dibanding metode Sobel dan LoG, metode Canny merupakan metode yang menghasilkan citra tepi paling baik. Namun, metode ini memerlukan waktu paling lama dalam pemrosesannya. Hal ini dipengaruhi oleh banyaknya tahapan yang dilakukan dalam memproses citra untuk menghasilkan citra tepi. Kualitas citra tepi yang dihasilkan metode ini juga bergantung pada nilai variabel yang ditentukan sendiri oleh pengguna. Variabel yang mempengaruhi kinerja metode Canny sama dengan variabel pada metode LoG, yaitu Sigma dan Alfa. Dalam penelitian ini, nilai Sigma yang sesuai untuk keempat jenis citra adalah 7,0 dan Alfa yang sesuai adalah 0,7. Pada metode ini, kualitas antar satu citra masukan dengan citra masukan yang lain tidak terlalu berbeda. Pada citra masukan dengan resolusi rendah, seluruh tepian citra berhasil dideteksi, namun pada citra masukan dengan resolusi tinggi, beberapa piksel yang merupakan tepi tidak berhasil dideteksi.
Untuk ketiga metode yang digunakan, semuanya paling baik digunakan untuk mendeteksi tepi citra yang memiliki kualitas resolusi rendah (Citra_asli1 dan Citra_asli2), untuk mendeteksi tepian citra dengan resolusi tinggi (Citra_asli3 dan Citra_asli4), metode Sobel dan Canny masih dapat digunakan. Namun, metode LoG tidak mampu mendeteksi tepian citra dengan resolusi tinggi. Pada semua metode, waktu yang diperlukan untuk pendeteksian tepi citra akan semakin besar untuk citra masukan dengan resolusi yang semakin tinggi. Untuk ketiga metode, citra hasil deteksi tepi dengan kualitas terbaik memiliki nilai sensitivity rate paling besar dibanding citra hasil deteksi tepi lainnya. Pada metode Sobel dan LoG, tingkat sensitivitas terhadap noise akan semakin besar untuk citra dengan kualitas resolusi yang lebih tinggi, berbeda dengan metode Canny yang semakin tinggi tingkat resolusi citranya, sensitivitasnya terhadap noise semakin kecil.
BAB 5