morfologi citra

34
Morfologi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo Teknik Informatika Universitas Muhamamdiyah Gresik 2011

Upload: elton-pope

Post on 03-Jan-2016

205 views

Category:

Documents


0 download

DESCRIPTION

Morfologi Citra. Pengolahan Citra Digital Materi 6. Eko Prasetyo Teknik Informatika Universitas Muhamamdiyah Gresik 2011. Konsep Morfologi. Kata morphology  cabang ilmu biologi yang memelajari bentuk dan struktur hewan dan tumbuh-tumbuhan . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Morfologi  Citra

Morfologi Citra

Pengolahan Citra DigitalMateri 6

Eko PrasetyoTeknik Informatika

Universitas Muhamamdiyah Gresik2011

Page 2: Morfologi  Citra

2

Konsep Morfologi Kata morphology cabang ilmu biologi yang

memelajari bentuk dan struktur hewan dan tumbuh-tumbuhan.

Istilah yang sama - dalam konteks mathematical morphology ◦ sebagai tool untuk pengekstrakan komponen citra yang

berguna dalam representasi dan deskripsi bentuk daerah, seperti boundaries, skeletons, dan convex hull.

Teknik morfologi juga digunakan untuk pre atau post-processing, ◦ seperti morfologi filtering, thinning dan pruning.

Operasi dasar dalam pemrosesan morfologi adalah:◦ Dilasi dan Erosi, ◦ Opening dan Closing

Page 3: Morfologi  Citra

3

Refleksi dan Translasi Refleksi himpunan B dinyatakan dengan didefinisikan

dengan:

◦ Jika B adalah sekumpulan piksel (titik-titik 2-D) yang merepresentasikan obyek dalam citra, maka adalah sekumpulan titik dalam B yang berkoordinat (x,y) yang telah diganti dengan (-x,-y)

Translasi adalah himpunan B yang oleh titik z(z1, z2) dinyatakan oleh (B)z, didefinisikan dengan:◦ (B)z = {c|c = b + z. untuk b B}

◦ Jika B adalah himpunan piksel yang merepresentasikan obyek dalam citra, maka (B)z adalah himpunan titik-titik dalam B di mana koordinat (x,y) telah diganti dengan (x + z1, y + z2)

B} buntuk ,|{ bwwB

Page 4: Morfologi  Citra

4

Structure Element (STREL) Strel adalah himpunan sub-image kecil yang

digunakan untuk meneliti citra dalam pembelajaran propertinya.

Untuk elemen yang menjadi anggota strel, origin strel, juga harus ditetapkan.

Origin dari strel ditandai dengan tanda titik hitam. ◦ Jika tidak ada tanda titik hitam maka diasumsikan origin

berada di pusat simetri ◦ Karena origin tidak harus berada di pusat, tetapi juga bisa

berada di pinggir strel.

Contoh strel

Page 5: Morfologi  Citra

5

Dilasi Proses dalam dilasi adalah “penumbuhan” atau

“penebalan” dalam citra biner. Jika A dan B adalah anggota Z2, dilasi antara A dan B

dinyatakan A B dan didefinisikan dengan:

◦ Persamaan ini didasarkan pada perefleksian B terhadap originnya, dan penggeseran refleksi oleh z.

◦ Dilasi A oleh B adalah himpunan semua displacement z, sebagaimana B dan A overlap oleh paling sedikit satu elemen.

Dilasi ini sangat berguna ketika diterapkan dalam obyek-obyek yang terputus dikarenakan hasil pengambilan citra yang terganggu oleh noise, kerusakan obyek fisik yang dijadikan citra digital, atau disebabkan resolusi yang jelek, ◦ misalnya teks pada kertas yang sudah agak rusak sehingga

bentuk hurufnya terputus, dan sebagainya

})(|{ ABzBAz

Page 6: Morfologi  Citra

6

(a) Himpunan obyek; (b) Strel +; (c) Dilasi a oleh b; (d) Strel vertikal; (e) Dilasi a oleh d

Cara pembuatan strel>> SE1 = [0 1 0; 1 1 1; 0 1 0];>> SE2 = [1 0 1; 0 1 0; 1 0 1];>> SE3 = [1 1 1; 1 1 1; 1 1 1];

Dilasi citra f dengan strel SE1>> j = imdilate(f,SE1);

Dilasi citra f dengan strel SE2>> j = imdilate(f,SE2);

Dilasi citra f dengan strel SE3>> j = imdilate(f,SE3);

Toolbox MATLAB untuk membuat strel:SE = strel(tipestrel, parameter)

Tipe Format fungsiArbitrary SE = strel(‘arbitrary’, NHOOD)Diamond SE = strel('diamond',R)Disk SE = strel('disk',R,N)Line SE = strel('line',LEN,DEG)Octagon SE = strel('octagon',R)pair SE = strel('pair',OFFSET)periodicline SE = strel('periodicline',P,V)rectangle SE = strel('rectangle',MN)square SE = strel('square',W)

Page 7: Morfologi  Citra

7

Disk

Diamond

Arbitrary

Line

Octagon

PairPeriodicline

Rectangle

Square

Page 8: Morfologi  Citra

8

0 1 01 1 10 1 0

Hasil dilasi dengan strel:

Citra asli 1 0 10 1 01 0 1

Hasil dilasi dengan strel:

Hasil dilasi dengan strel:1 1 11 1 11 1 1

Page 9: Morfologi  Citra

9

ErosiErosi merupakan proses

mengecilkan atau menipiskan obyek citra biner

Jika A dan B himpunan dalam Z2, erosi A oleh B dinyatakan dengan A Ө B, didefinisikan sebagai:◦A Ө B = {z|(B)z A}

◦Persamaan di atas menunjukkan bahwa erosi A oleh B adalah kumpulan semua titik di mana B ditranslasikan oleh z di dalam isi A.

Page 10: Morfologi  Citra

10

(a) himpunan obyek; (b) strel +; (c) erosi a oleh b; (d) strel vertikal; (e) erosi a oleh d

Toolbox di MATLAB:>> A2 = imerode(A, B)

Page 11: Morfologi  Citra

11

Citra asli Erosi dengan strel disk R=5

Erosi dengan strel disk R=10Erosi dengan strel disk R=20

>> SEdis1 = strel('disk',5);>> SEdis2 = strel('disk',10);>> SEdis3 = strel('disk',20);

>> g1 = imerode(f, SEdis1);>> g2 = imerode(f, SEdis2);>> g3 = imerode(f, SEdis3);

Page 12: Morfologi  Citra

12

Opening dan Closing Opening:

◦ Menghaluskan garis-garis bentuk obyek, ◦ Menghilangkan bagian-bagian yang sempit, dan ◦ Menghilangkan penonjolan-penonjolan yang tipis.

Formula:◦ A ○ B = (A Ө B) B◦ Operasi opening A oleh B adalah erosi A oleh B, diikuti

dengan dilasi hasil tersebut dengan B Padanan fungsi:

◦ A○ B = {(B)z|(B)z A}

Page 13: Morfologi  Citra

13

Opening dan Closing Closing cenderung menghaluskan garis-garis

bentuk tetapi kebalikan dari opening, ◦ Menolak pecahan-pecahan sempit dan teluk yang

panjang dan tipis, ◦ Menghilangkan lubang kecil dan ◦ Mengisi gap pada garis-garis bentuk (contour).

Formula:◦ A ● B = (A B) Ө B◦ Operasi closing A oleh B adalah dilasi A oleh B, diikuti

erosi hasilnya dengan B.

Page 14: Morfologi  Citra

14

Toolbox di MATLAB untuk operasi Opening dan Closing:>> A2 = imopen(A, B)>> A2 = imclose(A, B)

Hasil opening citra a dengan strel disk R=9

Citra asli

Hasil closing citra a dengan strel disk R=9

Hasil closing citra b dengan strel disk R=9

>> f = imread('openclose.tif');>> SE = strel('disk', 9, 0)>> j = imopen(f, SE);>> figure, imshow(j);>> k = imclose(f, SE);>> figure, imshow(k);>> l = imclose(j, SE);>> figure, imshow(l);

Page 15: Morfologi  Citra

15

Transformasi Hit-or-Miss Berguna untuk mengidentifikasi konfigurasi piksel

tertentu, ◦ seperti piksel foreground yang terisolasi, atau piksel yang

berada di akhir garis segmen. Transformasi hit-or-miss A oleh B dinyatakan oleh A

B. B adalah pasangan strel B = (B1, B2). Transformasi hit-or-miss didefinisikan dengan dua

strel sebagai:◦ A ⊛ B = (A Ө B1) (Ac Ө B2)

Contoh pasangan strel

Page 16: Morfologi  Citra

16

Contoh

Pasangan strel yang digunakan

Hasil transformasi Hit or Miss

Toolbox di MATLAB:>> C = bwhitmiss(A, B1, B2)

Page 17: Morfologi  Citra

17

Contoh>> f = imread('square.tif');>> B1 = strel([0 0 0; 1 1 0; 0 1 0]);>> B2 = strel([1 1 1; 0 0 1; 0 0 1]);>> j = bwhitmiss(f, B1, B2);

>> f2 = imdilate(f,SE);>> figure, imshow(f2);>> k = bwhitmiss(f2, B1, B2);>> k2 = imdilate(k,SE);>> figure, imshow(k2);

Citra asli Hasil proses transformasi hit-or-miss

Hasil dilasi citra asli Hasil proses transformasi hit-or-miss citra yang sudah terdilasi

Page 18: Morfologi  Citra

18

Operation Penjelasanbothat “Bottom-hat” operasi yang menggunakan strel 3 x 3; gunakan imbothat untuk strel yang lain

bridge Menghubungkan piksel-piksel yang dipisahkan oleh gap piksel tunggalclean Menghilangkan piksel foreground yang terisolasiclose Closing menggunakan strel 3 x 3; gunakan imclose untuk strel yang laindiag Mengisi sekitar piksel foreground yang terhubung secara diagonaldilate Dilasi menggunakan strel 3 x 3; gunakan imdilate untuk strel yang lainerode Erosi menggunakan strel 3 x 3; gunakan imerode untuk strel yang lainfill Mengisi lubang (piksel background di sekitar piksel foreground) piksel tunggal; gunakan imfill

untuk mengisi lbang yang lebih besarhbreak Menghilangkan H-connected piksel foregroundmajority Membuat piksel p piksel foreground jika paling sedikit 5 piksel dalam N8(p) adalah piksel

foreground; jika sebaliknya maka p adalah piksel backgroundopen Opening menggunakan strel 3 x 3; gunakan imopen untuk strel yang lainremove Menghilangkan piksel “interior” (piksel foreground yang tidak punya tetangg background

shrink Menipiskan obyek dengan tanpa lubang; menipiskan obyek berlubang menjadi ring

skel Men-skeleton citraspur Menghilangkan piksel spurthicken Menebalkan obyek tanpa menggabungkan obyek yang tidak terkoneksithin Menipiskan obyek tanpa lubang menjadi hubungan kerangka secara minimal

tophat Operasi “top-hat” menggunakan strel 3 x 3; gunakan imtophat untuk strel yang lain

Toolbox operasi morfologi g = bwmorph(f, operation, n)

Operation adalah string yang menetapkan operasi yang diinginkan, dan n adalah integer positif yang menetapkan jumlah (berapa kalinya) operasi diulang. Argumen input n bersifat opsional dan dapat diabaikan jika operasi ingin dilakukan satu kali. Jika diberi nilai “Inf” (tanpa petik) maka operasi akan dilakukan sampai obyek citra yang dihasilkan stabil, misalnya pada operasi thinning dan skeletonization, kestabilan obyek adalah saat ketebalan obyek menjadi satu piksel.

Page 19: Morfologi  Citra

19

Boundary ExtractionBoundary himpunan A dinyatakan oleh (A), bisa

didapatkan dengan pertama mengerosi A oleh B dan kemudian melakukan himpunan perbedaan (pengurangan) antara A dan hasil erosi.

Formula:◦ (A) = A – (A Ө B)◦ di mana B adalah strel yang tepat untuk mengerosi A

Page 20: Morfologi  Citra

20

Region Filling Didasarkan pada sejumlah dilasi, komplementasi, dan

interseksi. Dimulai dengan sebuah titik p di dalam boundary, tujuannya

adalah untuk mengisi semua region dengan nilai 1. Jika mengikuti konvensi bahwa semua titik non-boundary

(background) diberi nilai 0, maka p harus diberi nilai 1 untuk memulai.

Prosedur di bawah ini adalah untuk mengisi region dengan nilai 1:◦ Xk = (Xk – 1 B) Ac k = 1, 2, 3, …

◦ di mana X0 = p dan B adalah strel simetrik. Algoritma berhenti pada iterasi langkah ke k jika Xk = Xk – 1.

◦ Himpunan union dari X dan A mengisi daerah isian dan boundary-nya. Toolbox:

◦ Bentuk 1 : BW2 = imfill(BW,locations)◦ Bentuk 2 : BW2 = imfill(BW,'holes')◦ Bentuk 3 : BW2 = imfill(BW)

Page 21: Morfologi  Citra

21

Toolbox:Bentuk 1 : BW2 = imfill(BW,locations)Bentuk 2 : BW2 = imfill(BW,'holes')Bentuk 3 : BW2 = imfill(BW)

Page 22: Morfologi  Citra

22

>> f = imread(‘ballbearing.tif’);>> j = imfill(f);>> figure, inshow(j);

Citra asli Setelah di region filling

Page 23: Morfologi  Citra

23

Thinning (Penipisan) Penipisan himpunan A oleh strel B, yang

dinyatakan dengan A B, dapat didefinisikan dalam transformasi hit-or-miss dengan bentuk:◦ A B = A (A ⊛ B)c

◦ A B = A – (A ⊛ B) Prosesnya adalah:

◦ Menipiskan A oleh satu lewatan dengan B1, ◦ kemudian menipiskan hasilnya dengan satu lewatan B2, ◦ dan seterusnya, sampai A ditipiskan dengan satu

lewatan Bn. ◦ Semua proses ini diulang sampai tidak ada perubahan

yang terjadi. ◦ Setiap penipisan dilewatkan dengan menggunakan

persamaan A B = A (A ⊛ B)c

Page 24: Morfologi  Citra

24

Page 25: Morfologi  Citra

25

Page 26: Morfologi  Citra

26

Citra biner Penipisan 1 kali

Penipisan 2 kali Ditipiskan sampai stabil

>> f = imread('noisy_fingerprint.tif');>> SE = strel('square',3);>> j = imclose(imopen(f,SE), SE);>> figure, imshow(j);>> k1 = bwmorph(j, 'thin', 1);>> k2 = bwmorph(j, 'thin', 2);>> kInf = bwmorph(j, 'thin', Inf);>> figure, imshow(k1);>> figure, imshow(k2);>> figure, imshow(kInf);

Page 27: Morfologi  Citra

27

SkeletonizationSkeletonization adalah cara lain untuk

mengurangi obyek citra biner menjadi himpunan kerangka tipis yang menahan informasi penting mengenai bentuk asli obyek

>> f = imread('legs_bone.tif');>> j = bwmorph(f, 'skel', Inf);>> figure, imshow(f);>> figure, imshow(j);

Hasil operasi skeletonCitra biner

Page 28: Morfologi  Citra

28

Rekonstruksi Citra Biner Rekonstruksi adalah transformasi morfologi yang melibatkan dua

citra dan sebuah strel (sebenarnya adalah sebuah citra dan sebuah strel). ◦ Citra yang satu adalah marker, adalah starting point untuk transformasi. ◦ Citra yang lain adalah mask, yang merupakan constrain transformasi.

Strel digunakan untuk mendefinisikan konektivitas. Dalam sub-bab ini yang digunakan adalah 8-connectivity (default),

◦ yang mengimplikasikan bahwa B adalah matriks 3 x 3 bernilai 1, dengan pusat yang didefinisikan di koordinat (2,2).

Jika g adalah mask dan f adalah marker, rekonstruksi g dari f, dinyatakan Rg(f), didefinisikan dengan prosedur iteratif berikut:◦ Inisialisasi h1 menjadi marker citra f.◦ Buat strel B = ones(3).◦ Ulangi hk+1 = (hk B) g

◦ sampai hk+1 = hk

Marker f harus menjadi bagian dari g; maka: f g Toolbox di MATLAB:

◦ out = imreconstruct(marker, mask)

Page 29: Morfologi  Citra

29

>> i = imread('empat_obyek.tif');>> figure, imshow(i);>> SE = strel('square',3);>> jmarker = zeros(size(i));>> jmarker(122:132,123:133) = 1;>> jmarker(175:185,149:159) = 1;>> figure, imshow(jmarker);>> h0 = jmarker2;

>> for x = 1:30h1 = (imdilate(h0,SE)) & i;h0 = h1;end;>> figure, imshow(h1);>> out = imreconstruct(im2bw(jmarker),i);>> figure, imshow(out);

Citra biner asli marker

Hasil iterasi ke 30 Hasil iterasi ke 50

Hasil iterasi ke 90 Hasil akhir rekonstruksi

Page 30: Morfologi  Citra

30

Opening dengan Rekonstruksi

Dalam morfologi opening, ◦ Erosi biasanya menghilangkan obyek kecil. ◦ Dilasinya cenderung mengembalikan bentuk obyek

yang tersisa. Bagaimanapun akurasi dari restorasi ini

tergantung kesamaan antara bentuk obyek dengan strel.

Metode opening by reconstruction secara pasti mengembalikan bentuk obyek yang tersisa setelah erosi.

Opening dengan rekonstruksi citra f, menggunakan strel B, didefinisikan sebagai Rf(f Ө B)

Page 31: Morfologi  Citra

31

>> f = imread('broken_text.tif);>> SE = ones(1,21);>> jerosi = imerode(f, SE);>> figure, imshow(jerosi);

Citra asli biner Hasil erosi citra a dengan strel line ukuran 21

Hasil opening citra a dengan strel line ukuran 21

Hasil opening dengan rekonstruksi

>> jerodil = imdilate(jerosi, SE);>> figure, imshow(jerodil);

>> jopen = imreconstruct(jerosi, i);>> figure, imshow(jopen);

Page 32: Morfologi  Citra

32

Membersihkan Obyek yang menyentuh Border Aplikasi rekonstruksi lain yang berguna adalah

menghilangkan obyek yang menyentuh border citra. ◦ Kunci dalam aplikasi ini adalah memilih marker dan mask citra

yang tepat untuk mendapatkan efek yang diharapkan. Digunakan citra original sebagai mask dan marker citra

fm, didefinisikan sebagai:

Toolbox di MATLAB;◦ g = imclearborder(f, conn)◦ di mana f adalah citra input dan g adalah hasilnya. ◦ Nilai untuk conn dapat diberi nilai 4 atau 8 (default). ◦ Fungsi ini menekan struktur yang lebih terang daripada

sekitarnya dan yang terhubung ke citra. ◦ Input f boleh citra grayscale atau biner. C◦ itra output adalah citra grayscale atau biner sesuai dengan

inputnya

lainnya0

fborder adalah y)(x, jika),(),(

yxfyxf

m

Page 33: Morfologi  Citra

33

Citra asli biner

Obyek yang menyentuh border Hasil rekonstruksi citra asli

>> j = imclearborder(f,8);>> figure, imshow(j);

Page 34: Morfologi  Citra

34

ANY QUESTION ?To Be Continued … Materi 7 – Segmentasi Citra