450 likes | 1.03k Views
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 .
E N D
Morfologi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo TeknikInformatika UniversitasMuhamamdiyah Gresik 2011
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
RefleksidanTranslasi • Refleksihimpunan B dinyatakandengandidefinisikandengan: • Jika B adalahsekumpulanpiksel (titik-titik 2-D) yang merepresentasikanobyekdalamcitra, makaadalahsekumpulantitikdalam 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)
Structure Element (STREL) • Streladalahhimpunan sub-image kecil yang digunakanuntukmeneliticitradalampembelajaranpropertinya. • Untukelemen yang menjadianggotastrel, origin strel, jugaharusditetapkan. • Origin daristrelditandaidengantandatitikhitam. • Jikatidakadatandatitikhitammakadiasumsikan origin beradadipusatsimetri • Karena origin tidakharusberadadipusat, tetapijugabisaberadadipinggirstrel. Contohstrel
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
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
Rectangle Arbitrary Octagon Periodicline Pair Diamond Square Disk Line
Citra asli Hasildilasidenganstrel: Hasildilasidenganstrel: Hasildilasidenganstrel:
Erosi • Erosimerupakanprosesmengecilkanataumenipiskanobyekcitrabiner • Jika A dan B himpunandalam Z2, erosi A oleh B dinyatakandengan A Ө B, didefinisikansebagai: • A Ө B = {z|(B)z A} • Persamaandiatasmenunjukkanbahwaerosi A oleh B adalahkumpulansemuatitikdimana B ditranslasikanoleh z didalamisi A.
Toolbox di MATLAB: >> A2 = imerode(A, B) (a) himpunanobyek; (b) strel +; (c) erosi a oleh b; (d) strelvertikal; (e) erosi a oleh d
>> 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
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}
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.
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 Hasilclosing citrab denganstrel disk R=9
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
Contoh Pasanganstrel yang digunakan Toolbox di MATLAB: >> C = bwhitmiss(A, B1, B2) Hasiltransformasi Hit or Miss
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
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.
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
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)
Toolbox: • Bentuk 1 : BW2 = imfill(BW,locations) • Bentuk 2 : BW2 = imfill(BW,'holes') • Bentuk 3 : BW2 = imfill(BW)
Citra asli Setelahdi region filling >> f = imread(‘ballbearing.tif’); >> j = imfill(f); >> figure, inshow(j);
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
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);
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
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)
>> 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
Opening denganRekonstruksi • Dalammorfologi opening, • Erosibiasanyamenghilangkanobyekkecil. • Dilasinyacenderungmengembalikanbentukobyek yang tersisa. • Bagaimanapunakurasidarirestorasiinitergantungkesamaanantarabentukobyekdenganstrel. • Metodeopening by reconstructionsecarapastimengembalikanbentukobyek yang tersisasetelaherosi. • Opening denganrekonstruksicitra f, menggunakanstrel B, didefinisikansebagaiRf(f Ө B)
>> 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);
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. C • itra output adalahcitra grayscale ataubinersesuaidenganinputnya
>> j = imclearborder(f,8); >> figure, imshow(j); Citra aslibiner Obyek yang menyentuh border Hasilrekonstruksicitraasli
To Be Continued … Materi 7 – Segmentasi Citra ANY QUESTION ?