1 / 34

Morfologi Citra

Morfologi Citra. Computer Vision Materi 5. Eko Prasetyo Teknik Informatika UBHARA 2012. Konsep Morfologi. Kata morphology  cabang ilmu biologi yang memelajari bentuk dan struktur hewan dan tumbuh-tumbuhan . Istilah yang sama - dalam konteks mathematical morphology

tevin
Download Presentation

Morfologi Citra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Morfologi Citra Computer Vision Materi 5 EkoPrasetyo TeknikInformatika UBHARA 2012

  2. KonsepMorfologi • Kata morphology cabangilmubiologi yang memelajaribentukdanstrukturhewandantumbuh-tumbuhan. • Istilah yang sama - dalamkonteksmathematical morphology • sebagai tool untukpengekstrakankomponencitra yang bergunadalamrepresentasidandeskripsibentukdaerah, seperti boundaries, skeletons, dan convex hull. • Teknikmorfologijugadigunakanuntuk pre atau post-processing, • sepertimorfologi filtering, thinning dan pruning. • Operasidasardalampemrosesanmorfologiadalah: • DilasidanErosi, • Opening dan Closing

  3. RefleksidanTranslasi • Refleksihimpunan B dinyatakandenganB’ didefinisikandengan: • Jika B adalahsekumpulanpiksel (titik-titik 2-D) yang merepresentasikanobyekdalamcitra, maka B’ adalahsekumpulantitikdalam B yang berkoordinat (x,y) yang telahdigantidengan (-x,-y) • Translasiadalahhimpunan B yang olehtitik z(z1, z2) dinyatakanoleh (B)z, didefinisikandengan: • (B)z = {c|c = b + z. untuk b  B} • Jika B adalahhimpunanpiksel yang merepresentasikanobyekdalamcitra, maka (B)zadalahhimpunantitik-titikdalam B dimanakoordinat (x,y) telahdigantidengan (x + z1, y + z2)

  4. Structure Element (STREL) • Streladalahhimpunan sub-image kecil yang digunakanuntukmeneliticitradalampembelajaranpropertinya. • Untukelemen yang menjadianggotastrel, origin strel, jugaharusditetapkan. • Origin daristrelditandaidengantandatitikhitam. • Jikatidakadatandatitikhitammakadiasumsikan origin beradadipusatsimetri • Origin tidakharusberadadipusat, jugabisaberadadipinggirstrel. Contohstrel

  5. Dilasi • Prosesdalamdilasiadalah “penumbuhan” atau “penebalan” dalamcitrabiner. • Jika A dan B adalahanggota Z2, dilasiantara A dan B dinyatakan A  B dandidefinisikandengan: • Persamaaninididasarkanpadaperefleksian B terhadaporiginnya, danpenggeseranrefleksioleh z. • Dilasi A oleh B adalahhimpunansemua displacement z, sebagaimana B dan A overlap oleh paling sedikitsatuelemen. • Dilasiinisangatbergunaketikaditerapkandalamobyek-obyek yang terputusdikarenakanhasilpengambilancitra yang tergangguoleh noise, kerusakanobyekfisik yang dijadikancitra digital, ataudisebabkanresolusi yang jelek, • misalnyatekspadakertas yang sudahagakrusaksehinggabentukhurufnyaterputus, dansebagainya

  6. Toolbox MATLAB untukmembuatstrel: SE = strel(tipestrel, parameter) Cara pembuatanstrel >> 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]; Dilasicitra f denganstrel SE1 >> j = imdilate(f,SE1); Dilasicitra f denganstrel SE2 >> j = imdilate(f,SE2); Dilasicitra f denganstrel SE3 >> j = imdilate(f,SE3); (a) Himpunanobyek; (b) Strel +; (c) Dilasi a oleh b; (d) Strelvertikal; (e) Dilasi a oleh d

  7. Rectangle Arbitrary Octagon Periodicline Pair Diamond Square Disk Line

  8. Citra asli Hasildilasidenganstrel: Hasildilasidenganstrel: Hasildilasidenganstrel:

  9. Erosi • Erosimerupakanprosesmengecilkanataumenipiskanobyekcitrabiner • Jika A dan B himpunandalamZ’, erosi A oleh B dinyatakandengan A Ө B, didefinisikansebagai: • A Ө B = {z|(B)z A} • Persamaandiatasmenunjukkanbahwaerosi A oleh B adalahkumpulansemuatitikdimana B ditranslasikanoleh z didalamisi A.

  10. Toolbox di MATLAB: >> A2 = imerode(A, B) (a) himpunanobyek; (b) strel +; (c) erosi a oleh b; (d) strelvertikal; (e) erosi a oleh d

  11. >> SEdis1 = strel('disk',5); >> SEdis2 = strel('disk',10); >> SEdis3 = strel('disk',20); >> g1 = imerode(f, SEdis1); • >> g2 = imerode(f, SEdis2); • >> g3 = imerode(f, SEdis3); Citra asli Erosidenganstrel disk R=5 Erosidenganstrel disk R=10 Erosidenganstrel disk R=20

  12. Opening dan Closing • Opening: • Menghaluskangaris-garisbentukobyek, • Menghilangkanbagian-bagian yang sempit, dan • Menghilangkanpenonjolan-penonjolan yang tipis. • Formula: • A ○ B = (A Ө B)  B • Operasi opening A oleh B adalaherosi A oleh B, diikutidengandilasihasiltersebutdengan B • Padananfungsi: • A○ B = {(B)z|(B)z A}

  13. Opening dan Closing • Closing cenderungmenghaluskangaris-garisbentuktetapikebalikandari opening, • Menolakpecahan-pecahansempitdanteluk yang panjangdantipis, • Menghilangkanlubangkecildan • Mengisi gap padagaris-garisbentuk (contour). • Formula: • A ● B = (A  B) Ө B • Operasi closing A oleh B adalahdilasi A oleh B, diikutierosihasilnyadengan B.

  14. Toolbox di MATLAB untukoperasi Opening dan Closing: >> A2 = imopen(A, B) >> A2 = imclose(A, B) Citra asli Hasil opening citra a denganstrel 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); Hasil closing citra a denganstrel disk R=9 Hasil closing citra b denganstrel disk R=9

  15. Transformasi Hit-or-Miss • Bergunauntukmengidentifikasikonfigurasipikseltertentu, • sepertipiksel foreground yang terisolasi, ataupiksel yang beradadiakhirgarissegmen. • Transformasi hit-or-miss A oleh B dinyatakanoleh A  B. • B adalahpasanganstrel B = (B1, B2). • Transformasi hit-or-miss didefinisikandenganduastrelsebagai: • A ⊛ B = (A Ө B1)  (Ac Ө B2) Contohpasanganstrel

  16. Contoh Pasanganstrel yang digunakan Toolbox di MATLAB: >> C = bwhitmiss(A, B1, B2)  Hasiltransformasi Hit or Miss

  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); Hasilprosestransformasi hit-or-miss >> f2 = imdilate(f,SE); >> figure, imshow(f2); >> k = bwhitmiss(f2, B1, B2); >> k2 = imdilate(k,SE); >> figure, imshow(k2); Citra asli Hasilprosestransformasi hit-or-miss citra yang sudahterdilasi Hasildilasicitraasli

  18. g = bwmorph(f, operation, n) Toolbox operasimorfologi Operation adalah string yang menetapkanoperasi yang diinginkan, dan n adalah integer positif yang menetapkanjumlah (berapakalinya) operasidiulang. Argumen input n bersifatopsionaldandapatdiabaikanjikaoperasiingindilakukansatu kali. Jikadiberinilai “Inf” (tanpapetik) makaoperasiakandilakukansampaiobyekcitra yang dihasilkanstabil, misalnyapadaoperasi thinning danskeletonization, kestabilanobyekadalahsaatketebalanobyekmenjadisatupiksel.

  19. Boundary Extraction • Boundary himpunan A dinyatakanoleh(A), bisadidapatkandenganpertamamengerosi A oleh B dankemudianmelakukanhimpunanperbedaan (pengurangan) antara A danhasilerosi. • Formula: • (A) = A – (A Ө B) • dimana B adalahstrel yang tepatuntukmengerosi A

  20. Region Filling • Didasarkanpadasejumlahdilasi, komplementasi, daninterseksi. • Dimulaidengansebuahtitik p didalam boundary, tujuannyaadalahuntukmengisisemua region dengannilai 1. • Jikamengikutikonvensibahwasemuatitik non-boundary (background) diberinilai 0, maka p harusdiberinilai 1 untukmemulai. • Prosedurdibawahiniadalahuntukmengisi region dengannilai 1: • Xk = (Xk – 1  B)  Ac k = 1, 2, 3, … • dimana X0 = p dan B adalahstrelsimetrik. • Algoritmaberhentipadaiterasilangkahke k jikaXk = Xk – 1. • Himpunan union dari X dan A mengisidaerahisiandan boundary-nya. • Toolbox: • Bentuk 1 : BW2 = imfill(BW,locations) • Bentuk 2 : BW2 = imfill(BW,'holes') • Bentuk 3 : BW2 = imfill(BW)

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

  22. Citra asli Setelahdi region filling >> f = imread(‘ballbearing.tif’); >> j = imfill(f); >> figure, inshow(j);

  23. Thinning (Penipisan) • Penipisanhimpunan A olehstrel B, yang dinyatakandengan A  B, dapatdidefinisikandalamtransformasi hit-or-miss denganbentuk: • A  B = A  (A ⊛ B)c • A  B = A – (A ⊛ B) • Prosesnyaadalah: • Menipiskan A olehsatulewatandengan B1, • kemudianmenipiskanhasilnyadengansatulewatan B2, • danseterusnya, sampai A ditipiskandengansatulewatan Bn. • Semuaprosesinidiulangsampaitidakadaperubahan yang terjadi. • Setiappenipisandilewatkandenganmenggunakanpersamaan A  B = A  (A ⊛ B)c

  24. Citra biner Penipisan 1 kali Penipisan 2 kali Ditipiskansampaistabil >> 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);

  25. Skeletonization • Skeletonizationadalahcara lain untukmengurangiobyekcitrabinermenjadihimpunankerangkatipis yang menahaninformasipentingmengenaibentukasliobyek >> f = imread('legs_bone.tif'); >> j = bwmorph(f, 'skel', Inf); >> figure, imshow(f); >> figure, imshow(j); Citra biner Hasiloperasi skeleton

  26. Rekonstruksi Citra Biner • Rekonstruksiadalahtransformasimorfologi yang melibatkanduacitradansebuahstrel (sebenarnyaadalahsebuahcitradansebuahstrel). • Citra yang satuadalahmarker, adalahstarting pointuntuktransformasi. • Citra yang lain adalahmask, yang merupakan constrain transformasi. Streldigunakanuntukmendefinisikankonektivitas. • Dalam sub-babini yang digunakanadalah 8-connectivity (default), • yang mengimplikasikanbahwa B adalahmatriks 3 x 3 bernilai 1, denganpusat yang didefinisikandikoordinat (2,2). • Jika g adalah mask dan f adalah marker, rekonstruksi g dari f, dinyatakanRg(f), didefinisikandenganproseduriteratifberikut: • Inisialisasi h1 menjadi marker citra f. • Buatstrel B = ones(3). • Ulangi hk+1 = (hk B)  g • sampai hk+1 = hk • Marker f harusmenjadibagiandari g; maka: f  g • Toolbox di MATLAB: • out = imreconstruct(marker, mask)

  27. >> 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; Citra binerasli marker >> for x = 1:30 h1 = (imdilate(h0,SE)) & i; h0 = h1; end; >> figure, imshow(h1); >> out = imreconstruct(im2bw(jmarker),i); >> figure, imshow(out); Hasiliterasike 50 Hasiliterasike 30 Hasiliterasike 90 Hasilakhirrekonstruksi

  28. Opening denganRekonstruksi • Dalammorfologi opening, • Erosibiasanyamenghilangkanobyekkecil. • Dilasinyacenderungmengembalikanbentukobyek yang tersisa. • Akurasidarirestorasiinitergantungkesamaanantarabentukobyekdenganstrel. • Metodeopening by reconstructionsecarapastimengembalikanbentukobyek yang tersisasetelaherosi. • Opening denganrekonstruksicitra f, menggunakanstrel B, didefinisikansebagaiRf(f Ө B)

  29. >> f = imread('broken_text.tif); >> SE = ones(1,21); >> jerosi = imerode(f, SE); >> figure, imshow(jerosi); Citra aslibiner Hasilerosicitra a denganstrel line ukuran 21 Hasil opening citra a denganstrel line ukuran 21 Hasil opening denganrekonstruksi >> jerodil = imdilate(jerosi, SE); >> figure, imshow(jerodil); >> jopen = imreconstruct(jerosi, i); >> figure, imshow(jopen);

  30. MembersihkanObyek yang menyentuh Border • Aplikasirekonstruksi lain yang bergunaadalahmenghilangkanobyek yang menyentuh border citra. • Kuncidalamaplikasiiniadalahmemilih marker dan mask citra yang tepatuntukmendapatkanefek yang diharapkan. • Digunakancitra original sebagai mask dan marker citra fm, didefinisikansebagai: • Toolbox di MATLAB; • g = imclearborder(f, conn) • dimana f adalahcitra input dan g adalahhasilnya. • Nilaiuntukconndapatdiberinilai 4 atau 8 (default). • Fungsiinimenekanstruktur yang lebihterangdaripadasekitarnyadan yang terhubungkecitra. • Input f bolehcitra grayscale ataubiner. • Citra output adalahcitra grayscale ataubinersesuaidenganinputnya

  31. >> j = imclearborder(f,8); >> figure, imshow(j); Citra aslibiner Obyek yang menyentuh border Hasilrekonstruksicitraasli

  32. To Be Continued … Materi 6 – Segmentasi Citra ANY QUESTION ?

More Related