Anda di halaman 1dari 65

Segmentasi Citra

Tujuan
 Memberikan pemahaman kepada
mahasiswa tentang:
 karakteristik dasar dari berbagai algoritma
segmentasi
 proses filtering untuk mendeteksi titik, garis,
dan tepi
Gambaran Umum
 Segmentasi membagi citra menjadi
region-region atau objek-objek.
 Level sampai sejauh mana pembagian
bisa dilakukan tergantung pada
permasalahan yang diselesaikan.
Gambaran Umum
 Secara umum algoritma-algoritma segmentasi
didasarkan pada satu di antara dua buah
karakteristik intensitas, yaitu diskontinuitas dan
similaritas. Pada kategori pertama, pendekatan
yang dilakukan adalah mempartisi citra
berdasarkan pada perubahan intensitas yang
cukup cepat, seperti tepian citra. Kategori kedua
didasarkan pada kemiripan area citra menurut
kriteria yang sudah ditentukan. Thresholding,
region growing, dan region splitting/merging
adalah contoh-contoh metode pada kategori
dua.
Deteksi Diskontinyuitas
 Ada beberapa teknik untuk mendeteksi tiga macam
diskontinyuitas tingkat keabuan dalam citra, yaitu : titik,
garis dan tepi.
 Cara yang paling umum digunakan untuk mencari
diskontinyuitas adalah dengan menjalankan suatu
filter/mask pada seluruh area citra.
Deteksi Diskontinyuitas
 Respon dari mask pada sembarang titik dihitung
dengan:
R  w1 z1  w2 z 2  ...  w9 z 9
9
  wi z i
i 1

zi adalah tingkat keabuan dari piksel yang diasosiasikan


dengan koefisien mask wi.
 Respons mask didefinisikan di lokasi titik pusat mask.
Deteksi Titik
 Suatu titik dinyatakan ada di pusat mask jika
|R|T, dengan T adalah threshold nonnegatif.
 Idenya adalah, bahwa suatu titik terisolasi ( titik
dengan tingkat keabuan yang sangat berbeda
dengan background dan berlokasi di area yang
homogen atau hampir homogen) akan sangat
berbeda dengan sekitarnya, sehingga akan
mudah dideteksi menggunakan tipe mask
seperti pada gambar 10.2.a.
 Koefisien mask jika dijumlahkan adalah nol. Hal
ini menunjukkan bahwa respon mask adalah nol
pada area dengan tingkat keabuan konstan.
Deteksi Titik
Deteksi Garis

 Jika mask sebelah kiri dipindahkan pada seluruh citra,


maka responnya akan lebih kuat pada garis dengan
ketebalan satu piksel dan berorientasi horisontal.
 Koefisien mask jika dijumlahkan adalah nol. Hal ini
menunjukkan bahwa respon mask adalah nol pada area
dengan tingkat keabuan konstan.
Deteksi Garis
 Misalkan R1, R2, R3, dan R4, menyatakan respons dari
mask. Anggaplah bahwa setiap mask dijalankan sendiri-
sendiri pada suatu citra. Jika, pada satu titik citra,
|Ri|>|Rj|, untuk semua ji, titik tersebut dikatakan lebih
berasosiasi dengan garis dengan arah mask i. Contoh,
jika sebuah titik |Ri|>|Rj|, dimana j=2,3,4, maka dapat
dikatakan bahwa titik tersebut lebih berasosiasi dengan
garis horisontal.
 Jika kita ingin mendeteksi garis dengan arah yang sudah
ditentukan, kita bisa menggunakan mask yang sesuai
dengan arah tersebut dan melakukan thresholding
terhadap outputnya.
Deteksi Garis
Deteksi Tepi
 Tepi (edge) adalah himpunan piksel terhubung yang terletak
pada boundary di antara dua region.
 Tepi ideal seperti diilustrasikan pada gambar 10.5.a adalah
himpunan piksel terhubung (dalam arah vertikal), masing-
masing terletak pada transisi step orthogonal dari tingkat
keabuan.
 Pada prakteknya, ketidaksempurnaan optik, sampling, dan
proses pengambilan data citra, akan menghasilkan tepi-tepi
yang kabur, dengan derajat kekaburan ditentukan oleh faktor-
faktor seperti kualitas peralatan yang digunakan untuk
mengambil data citra, rata-rata sampling, dan kondisi
pencahayaan. Akibatnya, tepi lebih banyak dimodelkan
seperti “ramp” (lihat gambar fig 10.5.b). Ketebalan tepi
ditentukan oleh panjang ramp. Panjang ramp ditentukan oleh
kemiringan (slope), dan slope ditentukan oleh derajat
kekaburan. Tepian yang kabur cenderung lebih tebal, dan
tepian yang tajam cenderung lebih tipis.
Deteksi Tepi
Deteksi Tepi

• first derivative, bernilai positif ketika awal sampai akhir ramp, bernilai nol untuk
daerah dengan gray level konstan.
• second derivative, bernilai positif ketika transisi pada sisi gelap dari edge,
bernilai negatif pada transisi sisi terang dan bernilai nol di daerah ramp dan
gray level konstan.
Deteksi Tepi
 Magnitude dari turunan pertama bisa digunakan
untuk mendeteksi keberadaan edge pada suatu titik
dalam citra (misalnya, menentukan apakah suatu
titik berada pada ramp atau tidak).
 Tanda dari turunan kedua bisa digunakan untuk
menentukan apakah suatu piksel edge terletak pada
sisi gelap atau sisi terang dari edge.
 Property zero-crossing (garis lurus imajiner yang
menghubungkan nilai ekstrim positif dan negatif dari
turunan kedua akan melintasi nol di pertengahan
edge) cukup berguna untuk menentukan pusat dari
edge yang tebal.
Deteksi Tepi
Deteksi Tepi
 Agar dapat diklasifikasikan sebagai titik tepi, transisi tingkat
keabuan pada titik tersebut harus cukup kuat dibandingkan
background di sekitarnya.
 Untuk menentukan apakah suatu nilai “cukup signifikan” atau tidak,
bisa digunakan threshold.
 Jadi, suatu titik di dalam citra merupakan bagian dari edge, jika
turunan pertama 2-D nya lebih besar dari threshold.
 Himpunan titik-titik yang terhubung menurut kriteria keterhubungan
tertentu didefinisikan sebagai edge.
 Istilah segmen edge digunakan jika ukuran edge relatif pendek
dibanding ukuran citra.
 Permasalahan dalam segmentasi adalah bagaimana cara
merangkai segmen-segmen edge ini menjadi edge yang lebih
panjang.
 Edge juga bisa ditentukan menggunakan property zero crossings
dari turunan kedua.
Operator Gradient
 Turunan pertama citra digital bisa menggunakan berbagai aproksimasi dari
gradien 2-D. Gradien suatu citra f(x,y) pada lokasi (x,y) didefinisikan
sebagai vektor :
 f 
G x   
f      fx 
G y   
 y 
 Magnitude vektor adalah :


mag (f )  G x2  G y2  1
2

 Arah gradien pada (x,y) adalah :

 Gy 
 ( x, y)  tan 1  

 Gx 
Operator Gradient
 Perhitungan gradien citra dilakukan dengan menghitung
turunan parsial pada setiap lokasi piksel.
 Misalkan area 3x3 pada gambar 10.8.a menyatakan
tingkat keabuan neighborhood suatu citra. Cara paling
sederhana untuk mengimplementasikan turunan parsial
order pertama pada titik z5 adalah dengan menggunakan
operators gradient Roberts :
Gx=(z9-z5) dan Gy=(z8-z6)
 Mask berukuran 2x2 menyulitkan untuk
diimplementasikan karena tidak memiliki titik pusat.
Pendekatan yang lebih sering digunakan adalah
menggunakan mask berukuran 3x3.
Operator Gradient
Mask Prewitt
Gx=(z7+z8+z9) – (z1+z2+z3)
Gy=(z3+z6+z9) – (z1+z4+z7)

Mask Sobel
Gx=(z7+2z8+z9) – (z1+2z2+z3)
Gy=(z3+2z6+z9) – (z1+2z4+z7)
Operator Gradient
 Hasil penjumlahan semua koefisien dalam mask adalah
nol, yang menunjukkan bahwa mask akan memberikan
respon 0 pada area dengan tingkat keabuan konstan.
 Pendekatan berikut sering digunakan untuk
mengaproksimasi magnitude dari gradient :
f|Gx|+|Gy|
 Mask memberikan hasil yang invariant hanya untuk edge
vertikal dan horisontal, tetapi tidak isotropic (invariant
terhadap rotasi)
 Dimungkinkan untuk memodifikasi mask berukuran 3x3
sehingga mask memiliki respon paling kuat pada arah
diagonal.
Operator Gradient
Operator Gradient
Operator Gradient
Operator Gradient
Laplacian
 Laplacian fungsi 2-D f(x,y) adalah turunan kedua yang
didefinisikan sebagai berikut :
2 f 2 f
 f  2  2
2

x y
 Mask Laplacian pada gambar 10.13 bersifat isotropic untuk
pertambahan rotasi 90 dan 45.
 2 f  4 z5  ( z2  z 4  z6  z8 ) (10.13.a)
 2 f  8 z5  ( z1  z 2  z3  z4  z6  z 7  z8  z9 ) (10.13.b)
 Laplacian biasanya tidak digunakan dalam bentuk aslinya
untuk deteksi tepi karena :
 Sangat sensitif terhadap noise
 Magnitude dari Laplacian menghasil tepi ganda, hal ini adalah
efek yang tidak diinginkan karena menjadikan proses segmentasi
semakin kompleks
 Arah edge tidak dapat diketahui
Laplacian

 Peranan Laplacian pada proses segmentasi adalah :


 Penggunaan “property zero crossing” untuk mendeteksi lokasi
edge
 Untuk mengetahui apakah suatu piksel berada pada sisi gelap
atau sisi terang dari edge
Laplacian
 Pada kategori pertama, Laplacian dikombinasikan dengan proses
penghalusan untuk menemukan edge dengan menggunakan property zero
crossing. Fungsi Gaussian berikut :
r2

h(r )  e 2 2

r2=x2+y2 dan  is deviasi standard. Mengkonvolusikan fungsi Gaussian


dengan citra akan mengaburkan citra, dengan derajat pengkaburan yang
ditentukan oleh nilai . Laplacian dari h (turunan kedua dari h berkaitan
dengan r) adalah :
r2
 r     2 2
2 2
 h( r )   
2
e
 
4

 Fungsi di atas disebut dengan “Laplacian of a Gaussian” (LoG).
Laplacian
Laplacian
 Karena turunan kedua adalah operasi
linier, maka mengkonvolusikan citra
dengan 2h sama halnya dengan
mengkonvolusikan citra dengan fungsi
penghalusan, diikuti dengan menghitung
Laplacian dari hasil penghalusan.
Laplacian
Tujuan
 Memberikan pemahaman kepada
mahasiswa tentang algoritma untuk
menggabungkan edge dan mendeteksi
boundary, baik proses lokal maupun
global.
Penggabungan Edge
dan Deteksi Boundary
 Idealnya, metode-metode yang didiskusikan
sebelumnya seharusnya menghasilkan piksel-piksel
yang terletak pada edge.
 Tetapi, pada prakteknya, himpunan piksel yang
dihasilkan jarang membentuk edge yang lengkap,
karena keberadaan noise, pencahayaan yang tidak
sama, atau sebab lain yang menyebabkan terjadinya
diskontinuitas intensitas.
 Jadi, algoritma edge biasanya diikuti dengan prosedur
penggabungan untuk merangkai piksel-piksel edge
menjadi sebuah edge yang lengkap.
Pemrosesan Lokal
 Pendekatan yang paling sederhana untuk menggabung
titik-titik edge adalah dengan menganalisis karakteristik
piksel pada neighborhood berukuran kecil (3x3 atau
5x5) di sekitar titik (x,y) pada sebuah citra yang telah
menjadi bagian dari edge.
 Semua titik yang mirip dengan kriteria yang telah
ditentukan akan digabung, sehingga membentuk
kumpulan piksel yang menjadi bagian dari edge.
 Dua hal yang digunakan untuk menetapkan kemiripan
piksel adalah :
1. Kekuatan respon dari operator gradient yang digunakan untuk
menghasilkan piksel edge
2. Arah vektor gradient
Pemrosesan Lokal
 Sebuah piksel edge dengan koordinat (x0, y0) di dalam
neighborhood dari (x, y) dikatakan memiliki magnitude yang
mirip dengan piksel pada (x, y) jika

magf x, y   magf x0 , y0   E


E adalah threshold non negatif.
 Sebuah piksel edge dengan koordinat (x0, y0) di dalam
neighborhood dari (x, y) dikatakan memiliki arah yang mirip
dengan piksel pada (x, y) jika
 x, y    x0  y0   A
A adalah threshold sudut non negatif.
 Sebuah titik pada neighborhood dari (x, y) digabung dengan
piksel pada (x, y) jika memenuhi kriteria magnitude dan arah.
Pemrosesan Lokal
Pemrosesan Global  Teori Graph

 Deteksi dan penggabungan edge dilakukan


dengan merepresentasikan segmen-segmen
edge dalam bentuk graph dan mencari graph
yang memiliki path dengan cost rendah.
 Representasi graph memiliki performance yang
cukup baik dengan keberadaan noise. Tetapi,
prosedurnya lebih kompleks dan memerlukan
waktu proses yang lama.
Pemrosesan Global  Teori Graph
 Graph G=(N,U) adalah himpunan node N yang tidak
kosong dan berhingga, beserta himpunan pasangan tak
berurut U yang terdiri dari elemen-elemen N.
 Tiap pasang (ni,nj) dari U disebut arc.
 Graph yang arc-nya berarah disebut graph berarah.
 Jika arc berarah dari node ni ke node nj, maka nj
dikatakan sebagai successor dari node parent ni.
 Proses pengidentifikasian successors dari sebuah node
disebut ekspansi node.
 Level 0 dari graph terdiri dari satu buah node, yang
disebut node root, dan node pada level terakhir disebut
node goal (tujuan).
Pemrosesan Global  Teori Graph

 Cost c(ni,nj) bisa diasosiasikan dengan setiap


arc(ni,nj).
 Rangkaian node n1, n2, …,nk dengan setiap
node ni menjadi sucessor dari node ni-1,
disebut path dari n1 ke nk. Cost dari
keseluruhan path adalah :
k
c   cni 1 , ni 
i2
Pemrosesan Global  Teori Graph

 Elemen edge didefinisikan sebagai boundary di antara


dua piksel p dan q, sedemikian sehingga p, q adalah
tetangga-4.
 Elemen edge diidentifikasi dengan koordinat xy dari titik
p dan q. Dengan kata lain, elemen edge didefinisikan
sebagai pasangan (xp,yp)(xq,yq).
 Edge adalah serangkaian elemen edge yang terhubung.
Pemrosesan Global  Teori Graph

 Tiap elemen edge, didefinisikan dengan piksel p dan q, memiliki


cost berikut:
c(p,q)=H-[f(p)-f(q)]
H adalah tingkat keabuan tertinggi dalam citra, dan f(p) dan f(q)
adalah tingkat keabuan dari p dan q.
 Ketetapan yang digunakan, titik p berada pada sisi kanan dari arah
lintasan sepanjang elemen-elemen edge.
 Diasumsikan bahwa edge mulai pada baris teratas dan berhenti
pada baris terbawah.
Pemrosesan Global  Teori Graph
Tujuan
 Memberikan pemahaman kepada
mahasiswa tentang
 Berbagai algoritma thresholding untuk
menggabungkan edge dan mendeteksi
boundary
 Algoritma segmentasi berbasis region
Thresholding

 Histogram sebelah kiri mewakili citra f(x,y), yang tersusun atas objek
terang di atas background gelap. Piksel-piksel objek dan
background dikelompokkan menjadi dua mode yang dominan.
 Cara untuk mengekstrak objek dari dari background adalah dengan
memilih threshold T yang memisahkan dua mode tersebut.
 Sembarang titik (x,y) yang memenuhi f(x,y)>T disebut titik objek;
selain itu, titik disebut titik background.
Thresholding
 Histogram sebelah kanan terbagi menjadi tiga
mode. Misalkan, citra terdiri atas dua objek
terang di atas background gelap.

 Thresholding multilevel digunakan untuk


mengklasifikasikan suatu titik (x,y) sebagai
bagian dari sebuah class objek. Titik (x,y)
menjadi bagian dari suatu suatu objek jika
T1<f(x,y)T2, dan menjadi bagian dari objek
yang lain jika f(x,y)>T2, dan menjadi bagian dari
background jika f(x,y) T1.
Thresholding
 Thresholding adalah operasi yang melakukan pengetesan terhadap
fungsi T berikut :
T = T[x,y,p(x,y),f(x,y)]
f(x,y) adalah tingkat keabuan pada titik (x,y) dan p(x,y) menyatakan
property lokal dari titik tersebut– sebagai contoh, tingkat keabuan
rata dari neighborhood dengan pusat di (x,y).

 Citra hasil thresholding g(x,y) didefinisikan sebagai :


1 if f ( x, y )  T
g ( x, y )  
0 if f ( x, y )  T
 Piksel dilabeli 1 (atau tingkat keabuan yang lain) jika menjadi
bagian dari objek, dan dilabeli 0 (atau tingkat keabuan lain yang
berbeda dengan objek) jika piksel tersebut menjadi bagian dari
background.
Thresholding
 Jika T hanya tergantung pada f(x,y),
threshold disebut global.
 Jika T tergantung pada f(x,y) dan p(x,y),
threshold disebut lokal.
 Jika T tergantung pada koordinat spasial x
dan y, threshold disebut dinamik atau
adaptif.
Thresholding Global
 Teknik thresholding yang paling sederhana
adalah mempartisi histogram dengan
menggunakan sebuah threshold global T.
Segmentasi dilakukan dengan memeriksa piksel
demi piksel dari citra dan melabeli setiap piksel
sebagai objek atau sebagai background,
tergantung pada tingkat keabuan dari piksel
tersebut, apakah lebih besar atau lebih kecil dari
T. Sukses dari metode ini tergantung pada
seberapa bagus partisi dari histogram.
Thresholding Global
Thresholding Global
 Thresholding global diharapkan bisa sukses pada lingkungan yang
sangat terkontrol, misalnya pada aplikasi pengawasan industri
(biasanya kontrol cahaya sangat bagus).
 Threshold pada contoh sebelumnya dispesifikasikan menggunakan
pendekatan heuristic, berdasarkan pada pengamatan visual
terhadap histogram.
 Algoritma berikut bisa digunakan untuk mendapatkan nilai T secara
otomatis :
1. Pilih estimasi awal untuk T.
2. Lakukan segmentasi terhadap citra menggunakan T. Proses ini akan
menghasilkan dua kelompok piksel : G1 terdiri dari semua piksel
dengan nilai tingkat keabuan > T dan G2 yang terdiri dari piksel-piksel
dengan nilai  T.
3. Hitung rata-rata tingkat keabuan u1 dan u2 untuk piksel-piksel dalam
region G1 dan G2.
4. Hitung nilai threshold yang baru : T= ½ (u1+u2)
5. Ulangi langkah 2 sampai 4 sampai beda T pada dua iterasi yang
berurutan lebih kecil dari paramater T0 (didefiniskan sebelumnya).
Thresholding Global
 Jika area background dan area objek
perbandingannya hampir sama, nilai awal yang
baik untuk T adalah tingkat keabuan rata-rata
dari citra.
 Jika area objek kecil dibandingkan area
background (atau sebaliknya), satu kelompok
piksel akan mendominasi histogram, sehingga
nilai tengah antara tingkat keabuan maksimum
dan minimum merupakan pilihan awal yang baik
untuk T.
Thresholding Global
Dengan algoritma
iteratif dihasilkan
T=125.4 setelah tiga
iterasi.
T diinisialisasi dengan
tingkat keabuan rata-
rata dan T0=0.
Untuk mensegmentasi
citra, digunakan nilai
T=125.
Thresholding Adaptif
 Faktor imaging seperti pencahayaan yang tidak merata,
menyebabkan histogram tidak bisa dipartisi dengan baik,
sehingga citra tidak bisa disegmentasi dengan
menggunakan sebuah threshold global.
 Untuk mengatasi hal ini, citra asal dibagi menjadi
beberapa sub citra. Pada setiap subcitra, segmentasi
dilakukan dengan menggunakan threshold yang
berbeda.
 Hal penting: Bagaimana cara membagi citra dan
bagaimana mengestimasi threshold untuk setiap
subcitra.
 Karena threshold yang digunakan untuk setiap piksel
tergantung pada lokasi piksel, maka thresholding disebut
adaptif.
Thresholding Adaptif
Thresholding Adaptif
Thresholding Adaptif
 Semua subcitra yang tidak berisi boundary antara objek
dan background memiliki variance kurang dari 75.
 Semua subcitra yang berisi boundary memiliki variance
melebihi 100.
 Tiap subcitra dengan variance lebih besar dari 100
disegmentasi dengan threshold yang dihitung pada
subcitra tersebut dengan algoritma iteratif yang telah
dibahas. Nilai awal untuk T adalah titik tengah antara
tingkat keabuan maksimum dan minimum dalam
subcitra.
 Semua subcitra dengan variance kurang dari 100
diperlakukan sebagai citra komposit, yang disegmentasi
menggunakan threshold tunggal dan diestimasi
menggunakan algoritma yang sama.
Thresholding Adaptif
Thresholding Adaptif dan
Optimal Global
 Threshold optimal adalah threshold yang menghasilkan
rata-rata error segmentasi minimum.
 Permasalahan pada gambar di bawah adalah
menemukan boundary dari rongga jantung secara
otomatis pada cardioangiograms (citra sinar X yang
telah diinjeksi dengan medium kontras).
Thresholding Adaptif dan
Optimal Global
 Sebelum segmentasi, semua citra dipra-proses
sebagai berikut :
1. Tiap piksel dipetakan dengan fungsi log untuk
menghitung efek eksponensial yang disebabkan
penyerapan radioaktif.
2. Citra yang diambil sebelum pemberian medium
kontras dikurangkan dengan citra yang diambil
sesudah pemberian medium kontras, untuk
memindahkan kolom spinal yang ada pada kedua
citra.
3. Beberapa angiogram dijumlahkan untuk mengurangi
noise random.
Thresholding Adaptif dan
Optimal Global
 Untuk menghitung threshold optimal, citra dibagi
menjadi 49 region dengan menempatkan grid
berukuran 7 x 7 dengan overlap masing-masing
citra sebesar 50% (ukuran citra 256 x 256
piksel). Masing-masing dari 49 region yang
overlap berisi 64 x 64 piksel.
 Setelah 49 histogram dihitung, dilakukan tes
bimodality untuk menghilangkan histogram-
histogram yang unimodal.
Segmentasi Berbasis Region
 Tujuan segmentasi adalah mempartisi
citra ke dalam region-region.
 Segmentasi bisa diselesaikan dengan :
 Menemukan boundary di antara region
berdasarkan diskontinuitas tingkat keabuan
 Melakukan thresholding berdasarkan
distribusi tingkat keabuan dari piksel-piksel di
dalam citra
 Menemukan region secara langsung
Segmentasi Berbasis Region
 Misal R menyatakan region citra seluruhnya.
Segmentasi bisa dipandang sebagai proses
mempartisi R mejadi n subregion, R1, R2, …, Rn,
sedemikian sehingga :
n
1.
R i R
i 1

2. Ri adalah region yang terhubung , i=1,2,…,n


3. Ri  Rj =  untuk semua i dan j, i  j
4. P(Ri)=TRUE untuk i=1,2,…,n
5. P(Ri  Rj)=FALSE untuk i  j
Referensi
 Bab 10, “Image Segmentation”, Digital
Image Processing, edisi 2, Rafael C.
Gonzales dan Richard E. Woods, Prentice
Hall, 2002
Final
 Membuat aplikasi editing image dengan menggunakan MATLAB yang memiliki fungsi
antara lain :
 mengubah ke citra grayscale
 mengubah ke citra biner
 penambahan brightness
 invers warna
 rotasi 90 dan 180
 flip horisontal dan vertikal
 smoothing average filter dan median filter
 histogram citra
 histogram equalization
 Citra frekuensi
 menambahkan noise gaussian, salt & pepper
 menambahkan noise speckle, poisson
 Deteksi titik deteksi garis horisontal,
 vertikal, diagonal
 deteksi tepi dengan filter gradien (prewit dan sobel)
 deteksi tepi dengan filter laplacian dan LoG

Anda mungkin juga menyukai