Linux Fun
Konsep Dasar Deteksi Tepi
Teknik deteksi tepi telah banyak dikembangkan terutama yang berbasiskan dari turunan pertama (first order derivative), diantaranya Operator Robert, Operator Sobel, Operator Prewitt, Operator Krisch dan Operator Canny. Konsep dasar dari perhitungan deteksi tepi menggunakan turunan pertama adalah memanfaatkan perbedaan pixel antara pixel satu dengan pixel tetangganya, seperti persamaan berikut ini.
Proses Konvolusi Citra
Perhitungan di atas dapat disederhanakan dengan proses konvolusi citra menggunakan matriks 2 x 1 seperti berikut :
Demikian juga dengan,
dapat disederhanakan dengan konvolusi menggunakan matriks 1 x 2 seperti berikut:
Hc dan Hr adalah detector kolom dan baris. Kombinasi keduanya menghasilkan nilai gradient yang dapat dicari dengan menggunakan persamaan sebagai berikut:
Orientasi dari tepian citra bermacam-macam. Ada yang lurus ada yang seperti kurva. Untuk mendeteksi berbagai macam jenis tepian tersebut terdapat berbagai macam teknik untuk deteksi tepi. Setiap teknik memiliki keunggulan masing-masing. Satu teknik deteksi tepi mungkin dapat bekerja sangat baik dalam suatu aplikasi namun sebaliknya belum tentu dapat bekerja secara maksimal dalam aplikasi yang berbeda (kadang untuk sebuah aplikasi dilakukan penelitian agar diperoleh teknik deteksi tepi yang dapat bekerja dengan baik dalam aplikasi terntentu).
Tepian citra dapat dilihat melalui perubahan intensitas pixel pada suatu area. Dari berbagai macam perbedaan perubahan intensitas dapat dikelompokkan menjadi empat jenis tepian.
Step
Tepian jenis step merupakan tepian citra yang terbentuk dari perubahan intensitas citra secara signifikan dari tinggi ke rendah ataupun sebaliknya. Tepian step dapat digambarkan seperti berikut ini.
Ramp
Tepian jenis ini terbentuk dari perubahan intensitas citra secara perlahan. Perubahan secara perlahan dapat dilihat pada bentuk kurva yang semakin tinggi dengan perubahan kontinu. Tepian ramp dapat dilihat pada gambar berikut.
Line
Tepian jenis ini ditandai dengan perubahan intensitas secara drastis dari intensitas rendah-tinggi-rendah atau sebaliknya. Tepian line dapat ditunjukkan pada gambar berikut.
Step Line
Tepian step-line merupakan gabungan dari tepian jenis step dan line. Tepian jenis ini ditandai dengan peningkatan intesitas yang tajam dalam interval tertentu, dan kemudian ditandai dengan penurunan yang tidak signifikan, sehingga perubahan intensitas selanjutnya berlangsung stabil. Tepian step-line dapat ditunjukkan pada gambar berikut.
Tepian Citra
Tepian dari suatu citra mengandung banyak informasi dari citra tersebut. Tepian citra dapat merepresentasikan objek-objek yang terkandung dalam citra tersebut, bentuk dan ukurannya, dan terkadang juga informasi mengenai teksturnya. Tepian citra adalah posisi di mana intensitas dari citra tersebut berubah dari nilai rendah ke nilai tinggi atau sebaliknya.
Deteksi Tepi
Deteksi tepi umumnya adalah langkah awal melakukan segmentasi citra. Segmentasi citra adalah salah satu bagian dari analisis citra yang digunakan untuk mengelompokkan pixel-pixel tertentu ke dalam suatu wilayah atau region untuk menentukan komposisi citra.
Operasi Erosi
Operasi erosi memiliki sifat sama dengan operasi pengurangan pada operasi Minkowski yaitu menggunakan operasi himpunan irisan (intersection).Β Erosi dapat dinyatakan sebagai :
Proses Erosi
Proses erosi merupakan kebalikan dari proses dilasi. Jika dalam proses dilatasi menghasilkan objek yang lebih luas, maka dalam proses erosi akan menghasilkan objek yang menyempit (mengecil). Lubang pada objek juga akan tampak membesar seiring menyempitnya batas objek tersebut. Sama seperti dilasi, proses erosi membandingkan setiap pixel citra input dengan nilai pusat tapis dengan cara melapiskan (superimpose) tapis denganΒ citra sehingga pusat tapis tepat dengan posisi pixel citra yang diproses. Jika semua pixel pada tapis sama dengan semua nilai pixel objek (foreground) citra maka pixel input di set nilainya dengan nilai pixel foreground, bila tidak maka input pixel di beri nilai pixel background. Proses serupa dilanjutkan dengan menggerakkan tapis pixel demi pixel pada citra input.
Ilutrasi Erosi
Gambar berikut ini mengilustrasikan citra sebelum dan sesudah proses erosi dengan tapis berukuran 3 x 3 dengan semua elemen tapis bernilai 1.
Dari gambar di atas terlihat hasil proses erosi menyebabkan objek mengecil. Semakin besar tapis yang digunakan maka hasil yang akan didapatkan akan semakin kecil. Begitu juga apabila proses erosi dilakukan berulang-ulang akan terus mengecilkan objek walaupun hanya menggunakan tapis berukuran kecil.
Operasi Dilasi
Operasi dilasi memiliki sifat sama dengan operasi penambahan pada operasi Minkowski yaitu menggunakan operasi himpunan gabungan (union).Β Dilasi dapat dinyatakan sebagai :
Proses Dilasi
Efek dilasi terhadap citra biner adalah memperbesar batas dari objek yang ada sehingga objek terlihat semakin besar dan lubang-lubang yang terdapat di tengah objek akan tampak mengecil. Prosesnya adalah membandingkan setiap pixel citra input dengan nilai pusat tapis dengan cara melapiskan (superimpose) tapis denganΒ citra sehingga pusat tapis tepat dengan posisi pixel citra yang diproses. Jika paling sedikit ada 1 pixel pada tapis sama dengan nilai pixel objek (foreground) citra maka pixel input di set nilainya dengan nilai pixel foreground, dan bila semua pixel yang berhubungan adalah background maka input pixel di beri nilai pixel background. Proses serupa dilanjutkan dengan menggerakan tapis pixel demi pixel pada citra input.
Ilustrasi Dilasi
Gambar berikut ini mengilustrasikan suatu citra sebelum dan sesudah proses dilasi dengan menggunakan tapis berukuran 3 x 3 dengan setiap elemen tapis bernilai 1.
Semakin besar ukuran tapis maka semakin besar perubahan yang terjadi. tapisΒ berukuran kecil juga dapat memberikan hasil yang sama dengan tapis berukuran besar dengan cara melakukan dilasi berulang kali.
Tapis Gaussian
Tapis Gaussian secara meluas telah digunakan dalam bidang analisis citra terutama untuk proses penghalusan (smoothing), pengaburan (bluring), menghilangkan detil, dan menghilangkan derau (noise).
Fungsi Gaussian (1-D)
Fungsi Gaussian satu dimensi (1-D) dapat dinyatakan sebagai
dengan Ο menyatakan standar deviasi dari distribusi. Fungsi di atas diasumsikan memiliki mean 0 (pusat distribusi pada garis x=0).
Distribusi Gaussian 1-D
Semakin besar nilai Ο maka kurva distribusi Gaussian semakin melebar dan puncaknya menurun (Gambar Distribusi Gaussian 1-D).
Tapis Gaussian 1-D. (a), (b), (c) dan (d) adalah Tapis Gaussian 1-D
dengan Ο adalah 1, 2, 3, dan 10
Angka 0.399 pada gambar di atas diperoleh dari
Distribusi Gaussian 1-D. (a), (b), (c)dan (d) berturut-turut
distribusi Gaussian dengan Ο adalah 1, 2, 3, dan 10
Fungsi Gaussian (2-D)
Bentuk 2-D dari fungsi Gaussian adalah
Tapis distribusi Gaussian 2-D dengan Ο =1 dan ukuran tapis 5 x 5
Angka 0.1592 pada gambar di atas diperoleh dari
Proses penghalusan terhadap citra dapat dilakukan dengan proses konvolusi citra input dengan Tapis Gaussian. Tingkat atau derajat kehalusan citra hasil Tapis Gaussian dapat diatur dengan mengubah-ubah nilai Ο.
| 0.000 | 0.004 | 0.054 | 0.242 | 0.399 | 0.342 | 0.054 | 0.004 | 0.000 |
Proses Konvolusi
Pada pengolahan citra digital proses konvolusi merupakan perkalian konvolusi antara matrik citra asal dengan matrik tapis atau tapis atau mask. Operasi konvolusi sebagai fungsi diskrit 2 dimensi dapat didefinisikan dengan persamaan berikut ini.
Ilustrasi Proses Konvolusi
Ilustrasi proses konvolusi dari Persamaan di atas ditunjukkan pada gambar di bawah :
Operasi konvolusi dilakukan dengan menggeser mask konvolusi pixel per pixel mulai dari posisi kiri atas sampai posisi kanan bawah yang sering disebut dengan sliding window. Hasil dari proses konvolusi disimpan pada matrik yang baru dengan posisi koordinat yang sama.
Kontras Citra
Kontras suatu citra adalah distribusi pixels terang dan gelap. Citra gray scale dengan kontras rendah maka akan terlihat terlalu gelap, terlalu terang, atau terlalu abu-abu. Histogram citra dengan kontras rendah, semua pixels akan terkonsentrasi pada sisi kiri, sisi kanan, atau di tengah (Gambar 2.17(c)). Semua pixels akan terkelompok secara rapat pada suatu sisi tertentu, dan menggunakan sebagian kecil dari semua kemungkinan nilai pixel.
Citra dengan kontras tinggi memiliki daerah gelap dan terang yang luas. Histogram citra dengan kontras tinggi memiliki dua puncak besar. Satu puncak terkonsentrasi pada sisi kiri, dan yang satunya terkonsentrasi pada sisi kanan histogram.
Citra dengan kontras yang bagus menampilkan rentangan nilai pixel yang lebar. Histogramnya relatif menunjukkan distribusi nilai pixel yang seragam, tidak memiliki puncak utama atau tidak memiliki lembah.
Perenggangan Kontras
Perenggangan kontras adalah teknik yang sangat berguna untuk memperbaiki kontras citra terutama citra yang memiliki kontras rendah. Teknik ini bekerja dengan baik pada citra yang memiliki distribusi Gaussian atau mendekati distribusi Gaussian.
Citra Asli
Citra hasil perenggangan kontras dengan nilai c = 79, d=136
Histogram citra asli
Histogram citra hasil perenggangan kontras dengan nilai c = 79, d=136
Formula Perenggangan Kontras
Pada perenggangan kontras, setiap pixel pada citra U ditransformasi dengan menggunakan fungsi berikut:
dengan o(i,j) dan u(i,j) berturut-turut pixel sesudah dan sebelum ditransformasi pada koordinat (i,j), c dan d berturut-turut menyatakan nilai maksimum dan minimum dari pixel pada citra masukan, dan L menyatakan nilai gray scale maksimum. Bila nilai pixel lebih kecil dari 0 maka akan dijadikan 0, dan bila lebih besar dari (L-1) maka akan dijadikan (L-1).
Gambar di atas menunjukkan contoh perenggangan kontras. Citra masukkan memiliki kontras rendah, terlalu abu-abu (histogram terpusat di tengah), kemudian direnggangkan dengan nilai c = 79, dan d = 136, sehingga citra keluaran lebih jelas (histogram lebih menyebar).
Permasalahan yang muncul dengan menggunakan formula di atas adalahΒ bila nilai maksimum (d) pixel terlalu tinggi, dan nilai minimum (c) pixel terlalu rendah, akan tetapi kehadiran pixel dengan nilai maksimum atau nilai minimum sangat sedikit (atau mungkin hanya 1) maka penskalaan yaitu pembagi (d β c) pada formula di atas menjadi kurang representatif. Untuk menyelesaikan permasalahan ini dapat dilakukan dengan memilih nilai c dan d berdasarkan persentase tertentu, misalnya c diberi nilai dengan nilai pixel dimana terdapat sekitar p% pixel lebih kecil dari c, demikian juga untuk nilai d diberi nilai pixel dimana terdapat sekitar q% pixel lebih besar dari d. Sudah tentu nilai p dapat sama atau berbeda dengan q. Nilai p dan q dapat ditentukan dengan membuat histogram citra masukan, danΒ berdasarkan sebaran nilai pixel pada histogram, nilai p dan q yang representatif dapat dipilih.
dengan plow dan phigh berturut-turut menyatakan nilai pixel yang berkaitan dengan nilai p% dan q%.
Operasi Pixel
Pengaturan kontras dan intensitas cahaya atau normalisasi dilakukan dengan mengurangi perbedaan kekuatan penerangan dan dampak dari derau (noise) pada sensor. Metode operasi pixel berikut dapat digunakan untuk mengatasi hal tersebut.
Dengan
dengan Iβ adalah citra hasil, I adalah citra asal, Ο danΒ adalah rata-rata dan varians dari citra asal, sertaΒ dan adalah rata-rata dan varians citra hasil yang diinginkan (diinputkan).
Proses Normalisasi
Gambar di bawah menunjukan hasil proses normalisasi dari tiga telapak tangan milik orang yang berbeda, dengan menggunakan fd = 100, rd = 100, fd = 180, rd = 180, dan fd = 220, rd = 220.Β Hasil ini menunjukkan meskipun citra asli memiliki tingkat kecerahan yang berbeda (seperti gambar berikut ini).
Gambar A
dengan normalisasi akan mampu menghasilkan citra obyek yang memiliki tingkat kecerahan yang seragam. Pemilihan nilai fd, rd sangat menentukan hasil proses normalisasi. Bila fd, rd terlalu rendah, maka citra hasil normalisasi akan gelap (seperti gambar berikut ini).
Gambar B
dan bila fd, rd terlalu tinggi, maka citra hasil normalisasi akan terlalu cerah (seperti gambar D)
Gambar C
Gambar D
Histogram Proses Normalisasi
Proses normalisasi intensitas dilakukan terhadap setiap pixel (pixel wise operation) pada citra asli sehingga pengaruh dari proses ini dapat dilihat dari histogramnya. Gambar di bawah ini menunjukkan histogram dari citra telapak tangan pada gambar di atas.
Histogram Gambar A
Histogram Gambar B
Histogram Gambar C
Histogram Gambar D
Pada histogram citra asli yang ditunjukkan pada Histogram Gambar A, tampak sebaran nilai intensitas untuk ketiga telapak tangan berbeda-beda yang menunjukkan tingkat kecerahan (pencahayaan) berbeda-beda, sedangkan pada histogram citra hasil normalisasi yang ditunjukkan pada Histogram A, B, C, dan DΒ tampak sebaran intensitas menjadi seragam.
Dari histogram yang ditunjukkan pada Histogram Gambar A,B,C, dan D dapat dilihat bahwa proses normalisasi sebenarnya menggeser histogram citra asli yang memiliki sebaranΒ intensitas berbeda-beda menjadi histogram yang memiliki sebaran sama (seragam). Bila hasil normalisasi terlalu gelap,maka histogramnya akan bergeser ke kiri, dan bila terlalu cerah maka histogramnya akan bergeser ke kanan.
Proses Pengambangan
Proses pengambangan akan menghasilkan citra biner, yaitu citra yang memiliki dua nilai tingkat keabuan yaitu hitam dan putih. Secara umum proses pengambangan citra grayscale untuk menghasilkan citra biner adalah sebagai berikut.
dengan g(x,y) adalah citra biner dari citra grayscale f(x,y), dan T menyatakan nilai ambang. Nilai T memegang peranan yang sangat penting dalam proses pengambangan. Kualitas hasil citra biner sangat tergantung pada nilai T yang digunakan..
Global Thresolding dan Locally Adaptive Thresolding
Terdapat dua jenis pengambangan, yaitu pengambangan global (global thresolding) dan pengambangan secara lokal adaptif (locally adaptive thresolding). Pada pengambangan global, seluruh pixel pada citra dikonversikan menjadi hitam atau putih dengan satu nilai ambang T. Kemungkinan besar pada pengambangan global akan banyak informasi hilang karena hanya menggunakan satu nilai T untuk keseluruhan pixel. Untuk mengatasi masalah ini dapat digunakan pengambangan secara lokal adaptif. Pada pengambangan lokal, suatu citra dibagi menjadi blok-blok kecil, dan kemudian dilakukan pengambangan lokal pada setiap blok dengan nilai T yang berbeda.