Senin, 16 April 2012

Morfologi Citra


 Perbedaan antara pemrosesan citra secara morfologis dengan pemrosesan biasa :
  • Dulu kita memandang sebuah citra sebagai suatu fungsi intensitas terhadap posisi (x,y)
  • Dengan pendekatan morfologi, kita memandang suatu citra sebagai himpunan
Pemrosesan citra secara morfologi biasanya dilakukan terhadap citra biner (hanya terdiri dari 0 dan 1), walaupun tidak menutup kemungkinan dilakukan terhadap citra dengan skala keabuan 0-255
Contoh citra masukan :


































S



A


 
S = {(0,0),(0,1),(1,0)}
A = {(0,0),(0,1),(0,2),
         (1,0),(1,1),(1,2),
         (2,0),(2,1),(2,2)}
Objek S dan A dapat direpresentasikan dalam bentuk himpunan dari posisi-posisi (x,y) yang bernilai 1 (1=hitam/abu-abu, 0 = putih)

Operasi Morfologi
  • Secara umum, pemrosesan citra secara morfologi dilakukan dengan cara mem-passing sebuah structuring element terhadap sebuah citra dengan cara yang hampir sama dengan konvolusi.
  •  Structuring element dapat diibaratkan dengan mask pada pemrosesan citra biasa (bukan secara morfologi)
Structuring Element
  •  Structuring element dapat berukuran sembarang
  •  Structuring element  juga memiliki titik poros (disebut juga titik origin/ titik asal/titik acuan)
  • Contoh structuring element  seperti objek S dengan titik poros di (0,0) -> warna merah
Beberapa operasi morfologi

Beberapa operasi morfologi yang dapat kita lakukan adalah:
  • Dilasi, Erosi
  • Opening, Closing
  • Thinning, shrinking, pruning, thickening, skeletonizing,  dll

1. Dilasi

       Dilasi merupakan proses penggabungan titik-titik latar (0) menjadi bagian dari objek (1), berdasarkan    structuring element  S yang digunakan.
Cara dilasi adalah:
-   Untuk setiap titik pada A, lakukan hal berikut:
-   letakkan titik poros S pada titik A tersebut
-   beri angka 1 untuk semua titik (x,y) yang terkena / tertimpa oleh struktur S pada posisi tersebut

Contoh dilasi :



































































S



A



D



 
S = {(0,0),(0,1),(1,0)}
   = {poros,(+0,+1),(+1,+0)}
A = {(0,0),(0,1),(0,2), (1,0),(1,1),(1,2), (2,0),(2,1),(2,2)}
 
Posisi poros
( (x,y) A )
Sxy
(0,0)
{(0,0),(1,0),(0,1)}
(0,1)
{(0,1),(1,1),(0,2)}
(0,2)
{(0,2),(1,2),(0,3)}
.....
......
(2,2)
{(2,2),(2,3),(3,2)}


































D





2. Erosi

      Erosi merupakan proses penghapusan titik-titik objek (1) menjadi bagian dari latar (0), berdasarkan structuring element  S  yang digunakan.
Cara erosi adalah:
- Untuk setiap titik pada A, lakukan hal berikut:
- letakkan titik poros S pada titik A tersebut
- jika ada bagian dari S yang berada di luar A,  maka titik poros dihapus / dijadikan latar.

Contoh erosi :














































S



A


E



S = {(0,0),(0,1),(1,0)}
   = {poros,(+0,+1),(+1,+0)}
A = {(0,0),(0,1),(0,2), (1,0),(1,1),(1,2), (2,0),(2,1),(2,2)}
 
Posisi poros
( (x,y) A )
Sxy
Kode
(0,0)
{(0,0),(1,0),(0,1)}
1
(0,1)
{(0,1),(1,1),(0,2)}
1
(0,2)
{(0,2),(1,2),(0,3)}
0
.....
......

(2,2)
{(2,2),(2,3),(3,2)}
0


3. Opening
  Opening adalah proses erosi yang diikuti dengan dilasi. Efek yang dihasilkan adalah menghilangnya
objek-objek kecil dan kurus, memecah objek pada titik-titik yang kurus, dan secara umum
men-smooth-kan batas dari objek besar tanpa mengubah area objek secara signifikan.

Contoh Opening :





























































A
S




























































A












(
A
S
)
S





















































































S













4. Closing
  Closing adalah proses dilasi yang diikuti dengan erosi.
Efek yang dihasilkan adalah mengisi lubang kecil pada objek, menggabungkan objek-objek yang
berdekatan, dan secara umum men-smooth-kan batas dari objek besar tanpa mengubah area objek
secara signifikan

Contoh Closing :













































A










































































A
S



(
A
S
)
S
S



































































5. Hit-or-Miss transform
  Suatu structuring element S dapat direpresentasikan dalam bentuk (S1,S2) dimana S1 adalah kumpulan
titik-titik objek (hitam) dan S2 adalah kumpulan titik-titik latar (putih)
      Hit-or-miss transform
Contoh:
S1= {b,e,h}
S2={a,d,g,c,f,i}
 
a
b
c
d
e
f
g
h
i
Hit-and-misss transform A*S adalah kumpulan titik-titik dimana S1 menemukan match di A dan pada saat yang bersamaan S2 juga menemukan match di luar A.
Varian dari erosi dan dilasi
  • Shrinking : Erosi yang dimodifikasi sehingga piksel single tidak boleh dihapus. Hal ini berguna jika jumlah objek tidak boleh berubah
  • Thinning: Erosi yang dimodifikasi sehingga tidak boleh ada objek yang terpecah. Hasilnya adalah berupa garis yang menunjukkan topologi objek semula.
  •  Thickening, skeletonizing, pruning, dll 
  • Thinning 
  1. Tujuan: me-remove piksel tertentu pada objek sehingga tebal objek tersebut menjadi hanya satu piksel.
  2. Thinning tidak boleh:
    - Menghilangkan end-point
    - Memutus koneksi yang ada
    - Mengakibatkan excessive erosi
  3. Salah satu kegunaan thinning adalah pada proses pengenalan karakter/huruf
  4. Ada banyak cara mengimplementasikan thinning, salah satu diantaranya adalah dengan hit-or-miss transform.
  5. Thinning dapat didefinisikan sebagai:
    Thinning(A,{B}) = A – (A * {B})
                              = A – ((...(A*B1)*B2)..Bn)
    Dengan B1, B2, B3..Bn adalah
    Structuring element.
    Note:
    A-(A*B) berarti kebalikan dari A*B
    à Yang match dihapus
    à Yang tidak match dipertahankan