Thursday, 27 October 2016

Pengolahan Citra 8: Deteksi Tepi

Pembahasan Pertemuan 8

Mind mapping sebelumnya:


Pada pertemuan 8 ini akan membahas mengenai deteksi tepi. Tepi merupakan suatu perubahan nilai intensitas derajat keabuan yang mendadak dalam jarak yang singkat. Tepi objek merupakan pertemuan antara bagian objek dan bagian latar belakang. Ada tiga jenis tepi yaitu:
  1. Tepi curam: perubahan intensitas tajam
  2. Tepi landai: perubahan intensitas perlahan-lahan
  3. Tepi yang mengandung noise: terdapat pada aplikasi computer vision

Pada metode deteksi tepi, ada tiga cara, yaitu:

1. 
 
Deteksi titik
    Menggunakan high pass filtering dengan koefisien 0
    Kernel yang digunakan adalah


    Maksud dari kernel di atas adalah objek terang yang berbatasan 
    dengan gelap.

2. Deteksi garis
    Membutuhkan 3 buah kernel, yaitu: kernel Horizontal, Vertikal, dan 
    Diagonal.

    Kernel Horizontal:

    Kernel Vertikal:

    Kernel Diagonal Kiri:

    Kernel Diagonal Kanan:

Operator
Ada dua jenis yaitu: Gradien Turunan 1, dan Kompas.

Pada pertemuan ini yang akan kita coba adalah deteksi tepi menggunakan operator gradient. Yaitu operator Robert, Sobel, dan Prewit.ketiganya ini merupakan bagian dari operator gradient. Berikut ini adalah kernel dari masing-masing operator:

Kernel Robert:

Robert-X:


Robert-Y:

Kernel Sobel:

Sobel-X:

Sobel-Y:

Kernel Prewit:

Prewit-X:

Prewit-Y:

Sekarang, langsung kita bahas mengenai pembuatan program untuk melakukan deteksi tepi pada citra. Berikut ini adalah source code dari program deteksi tepi (Tanpa Method).








Source Code DeteksiTepi.java (Dengan Method):







Dari source code di atas, untuk yang menggunakan method dan tidak menggunakan method akan menghasilkan hasil yang sama, hanya perbedaan pada bagaimana cara menyusun program tersebut. Jika menggunakan method, kita haya perlu memanggil fungsi konvolusi() saja pada saat menghitung hasil Robert, Sobel, dan Prewit. Pada pembahasan ini diberikan dua tipe source code agar kita lebih memahami bagaimana pembuatannya. Jika lebih mudah tanpa method, maka gunakan yang tanpa menggunakan method, jika lebih mudah dimengerti dengan menggunakan method, maka gunakan method seperti pada source code di atas.

Untuk mendapatkan hasil deteksi tepi pada masing-masing operator, dibandingkan dari nilai kernel operator X dan Y, setekah dibandingkan diambil nilai yang terbesar untuk dijadikan hasil.

Contoh untuk source code tanpa method:

Berikut ini adalah source code html:


Proses Compile DeteksiTepi.java (Tanpa Method):



Hasil Tampilan (Tanpa Method):


Proses compile DeteksiTepi.java (Dengan Method):



Hasil tampilan (Dengan Method):


Demikian pembahasan pertemuan 8 ini, pada dasarnya menggunakan method atau tidak akan sama saja hasilnya selama perhitungan pada proses konvolusi benar.













    

2 comments: