Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
OPERASI SEGMENTASI DAN MORFOLOGI
Mahasiswa memahami dan mampu menganilsa cara kerja teknik Image Segmentasi CS 3214
2
SUB BAB Pengantar Segmentasi
Teknik Segmentasi Thresholding, Region Growing, Split dan Merge CS 3214
3
Segmentasi Citra Proses untuk memisahkan citra menjadi bagian-bagian pembentuknya (region) Merupakan fase penting dalam analisis citra otomatis pengenalan objek Pendekatan algoritma segmentasi: Berdasar discontinuity perubahan warna mendadak deteksi titik, garis, dan tepi Berdasar similarity Pengelompokan berdasar distribusi properti pixel (warna), contoh: thresholding Mencari region secara langsung berdasar ‘persamaan’ karakteristik suatu area, contoh: region growing, split & merge CS 3214
4
Thresholding Asumsi: antar objek yang akan dipisahkan memiliki intensitas warna yang berlainan masing-masing objek memiliki warna yang hampir seragam Operasi: menempatkan satu atau lebih threshold pada sumbu datar histogram untuk memisahkan kelompok warna pixel yang diduga sebagai penyusun objek CS 3214
5
Contoh thresholding dgn g(x,y)=konstanta
CS 3214
6
Contoh thresholding dgn g(x,y)=rata-rata warna per cluster
CS 3214
7
Jenis threshold Global T hanya tergantung dari f(x,y)
f(x,y): gray level pada titik (x,y) p(x,y): properti lokal dari titik (x,y); misal: gray level rata-rata dari area ketetanggaan yang berpusat di (x,y) Global T hanya tergantung dari f(x,y) Local T dipengaruhi oleh f(x,y) dan p(x,y) Dynamic T tergantung dari koordinat spasial titik (x,y) CS 3214
8
Kelemahan thresholding
Penentuan nilai threshold yang tepat Bermasalah jika kemunculan tiap warna dalam citra cenderung sama tidak bisa diprediksi batas antar objek CS 3214
9
Pendekatan lain dalam proses segmentasi
Segmentasi berorientasi daerah (region) Jika R adalah daerah keseluruhan citra segmentasi membagi R menjadi R1, R2, …, Rn sedemikian sehingga tercapai syarat segmentasi: CS 3214
10
Region Growing Prosedur yang mengelompokkan pixel atau sub-region menjadi region yang lebih besar Pendekatan paling sederhana: pixel aggregation Mulai dengan sekumpulan titik ‘benih’ (seed) Dari titik-titik tsb region diperluas dengan menambahkan titik-titik tetangganya yang memiliki properti yang sama (misal: gray level, tekstur, warna) Jika tidak ada lagi titik tetangga yang dapat ditambahkan lagi, maka proses untuk region tersebut dihentikan CS 3214
11
Ilustrasi CS 3214
12
Masalah dg region growing
Penentuan lokasi seeds yang tepat Tergantung aplikasi Misal: warna yang sering muncul, warna terang dll Penentuan properti yang tepat untuk mengelompokkan titik menjadi region Tergantung masalah dan data citra yang tersedia Misal: intensitas, tekstur, data multispektral dll Kondisi penghenti Dasar: jika tidak ada lagi titik tetangga yang memenuhi syarat Tambahan: ukuran region, bentuk dll CS 3214
13
Split & Merge Membagi citra menjadi sekumpulan region acak yang disjoin kemudian menggabungkan atau kembali membaginya hingga terpenuhi syarat segmentasi (a) – (e) Algoritma bersifat rekursif Memanfaatkan quadtree CS 3214
14
Ilustrasi CS 3214
15
Algoritma rekursif Bagi (split) setiap region Ri menjadi 4 quadran disjoin jika P(Ri)=FALSE Gabung (merge) setiap region Rj dg Rk jika P(Rj Rk)=TRUE Berhenti jika tidak ada split maupun merge yang bisa dilakukan CS 3214
16
Contoh Objek tunggal dg intensitas warna konstan
Intensitas latar belakang konstan P(Ri)=TRUE jika semua pixel dalam Ri memiliki intensitas warna yang sama CS 3214
17
Aplikasi segmentasi: magic wand
Fakultas Informatika IT Telkom CS 3214
18
TERIMA KASIH CS 3214
19
Pengertian Operasi Morfologi
Operasi morfologi merupakan operasi yang umum dikenakan pada citra biner (hitam-putih) mengubah struktur bentuk objek yang terkandung dalam citra CS 3214
20
Contoh aplikasi morfologi citra
Membentuk filter spasial. Memperoleh skeleton (rangka) objek. Menentukan letak objek di dalam citra. Memperoleh bentuk struktur objek
21
Tulang daun dapat dianggap sebagai bagian daun melalui morfologi
CS 3214
22
Daun-daun yang bersinggungan dapat dipisahkan melalui morfologi, yang memperkecil ukurannya
CS 3214
23
Operasi morfologi melibatkan dua larik piksel
Larik pertama berupa citra yang akan dikenai operasi morfologi, Larik kedua dinamakan sebagai kernel atau structuring element (elemen penstruktur) (Shih, 2009). CS 3214
24
Contoh beberapa kernel
CS 3214
25
Operasi kernel terhadap citra
CS 3214
26
Operasi yang mendasari morfologi
dilasi Erosi opening dan closing CS 3214
27
Matematika yang Melatarbelakangi morfologi citra
CS 3214
28
CS 3214
29
…………………..2. Operasi Nalar didasarkan pada aljabar Boolean CS 3214
30
CS 3214
31
Contoh : % NALAR Contoh penggunaan NOT, AND, OR, XOR, dan
% kombinasinya. Lingkaran = imread('C:\Image\lingkaran.png'); Persegi = imread('C:\Image\persegi.png'); close all; Citra1 = Lingkaran; subplot(3,3,1); imshow(Citra1, [0 1]); title('A'); Citra2 = Persegi; subplot(3,3,2); imshow(Citra2, [0 1]); title('B');
32
Citra3 = not(Lingkaran);
subplot(3,3,3); imshow(Citra3, [0 1]); title('not(A)'); Citra4 = and(Lingkaran, Persegi); subplot(3,3,4); imshow(Citra4, [0 1]); title('and(A, B)'); Citra5 = xor(Lingkaran, Persegi); subplot(3,3,5); imshow(Citra5, [0 1]); title('xor(A, B)'); Citra6 = or(Lingkaran, Persegi); subplot(3,3,6); imshow(Citra6, [0 1]); title('or(A, B)'); Citra7 = not(and(Lingkaran, Persegi)); subplot(3,3,7); imshow(Citra7, [0 1]); title('not(and(A, B))'); Citra8 = not(xor(Lingkaran, Persegi)); subplot(3,3,8); imshow(Citra8, [0 1]); title('not(xor(A, B))'); Citra9 = not(or(Lingkaran, Persegi)); subplot(3,3,9); imshow(Citra9, [0 1]); title('not(or(A, B))');
33
1. Operasi Dilasi
35
A B = { (2,2) + (-1, 0) , (2,2) + (0, 0) + (2,2) + (1, 0),
Dengan demikian, A B = { (2,2) + (-1, 0) , (2,2) + (0, 0) + (2,2) + (1, 0), (2,3) + (-1, 0) , (2,3) + (0, 0) + (2,3) + (1, 0), (2,4) + (-1, 0) , (2,4) + (0, 0) + (2,4) + (1, 0), (3,2) + (-1, 0) , (3,2) + (0, 0) + (3,2) + (1, 0), (3,3) + (-1, 0) , (3,3) + (0, 0) + (3,3) + (1, 0), (3,4) + (-1, 0) , (3,4) + (0, 0) + (3,4) + (1, 0), (4,3) + (-1, 0) , (4,3) + (0, 0) + (4,3) + (1, 0) } = { (1,2), (2,2), (3,2), (1,3), (2,3), (3,3), (1,4), (2,4), (3,3), (2,2), (3,2), (4,2), (2,3), (3,3), (4,3), (2,4), (3,4), (4,4), (3,3), (4,3), (5,3) } = { (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,2), (3,3), (3,4), (4,2), (4,3), (4,4), (5,3) } CS 3214
36
CS 3214
37
CS 3214
38
function G = dilasi(F, H, hotx, hoty)
% DILASI Berguna untuk melaksanakan operasi dilasi. % Masukan: % F = citra yang akan dikenai dilasi % H = elemen pentruksur % (hy, hx) koordinat pusat piksel [th, lh]=size(H); [tf, lf]=size(F); if nargin < 3 hotx = round(lh/2); hoty = round(th/2); end Xh = []; Yh = []; jum_anggota = 0; % Menentukan koordinat piksel bernilai 1 pada H for baris = 1 : th for kolom = 1 : lh if H(baris, kolom) == 1 jum_anggota = jum_anggota + 1; Xh(jum_anggota) = -hotx + kolom; Yh(jum_anggota) = -hoty + baris; G = zeros(tf, lf); % Nolkan semua pada hasil dilasi % Memproses dilasi for baris = 1 : tf for kolom = 1 : lf for indeks = 1 : jum_anggota if F(baris, kolom) == 1 xpos = kolom + Xh(indeks); ypos = baris + Yh(indeks); if (xpos >= 1) && (xpos <= lf) && ... (ypos >= 1) && (ypos <= tf) G(ypos, xpos) = 1; CS 3214
39
>> F = [ ]; >> H = [0 1 0; 1 1 1; 0 1 0]; >> G = dilasi(F,H) G = >> G = dilasi(F,H, 2, 1) >> close all; >> Bravo = imread('bravo.png'); >> BW = im2bw(Bravo, 0.5); >> H = ones(4); >> imshow(dilasi(BW, H)); CS 3214
40
CS 3214
41
Operasi Erosi CS 3214
42
Operasi erosi bersifat komutatif. Artinya,
A B = B A Selain itu, operasi erosi bersifat asosiatif. Artinya, (A B) C = A (B C)
43
CS 3214 function G = erosi(F, H, hotx, hoty)
% EROSI Berguna untuk melaksanakan operasi erosi. % Masukan: % F = citra yang akan dikenai dilasi % H = elemen pentruksur % (hy, hx) koordinat pusat piksel [th, lh]=size(H); [tf, lf]=size(F); if nargin < 3 hotx = round(lh/2); hoty = round(th/2); end Xh = []; Yh = []; jum_anggota = 0; % Menentukan koordinat piksel bernilai 1 pada H for baris = 1 : th for kolom = 1 : lh if H(baris, kolom) == 1 jum_anggota = jum_anggota + 1; Xh(jum_anggota) = -hotx + kolom; Yh(jum_anggota) = -hoty + baris; G = zeros(tf, lf); % Nolkan semua pada hasil erosi % Memproses erosi for baris = 1 : tf for kolom = 1 : lf cocok = true; for indeks = 1 : jum_anggota xpos = kolom + Xh(indeks); ypos = baris + Yh(indeks); if (xpos >= 1) && (xpos <= lf) && ... (ypos >= 1) && (ypos <= tf) if F(ypos, xpos) ~= 1 cocok = false; break; else if cocok G(baris, kolom) = 1; CS 3214
44
>> Daun = imread('dedaunan.png');
>> BW = im2bw(Daun, 0.1); >> H = ones(4); >> G = erosi(BW, H); >> imshow(G, [0 1]) CS 3214
45
Contoh penggunaan fungsi erosi dapat dilihat berikut :
]; H = [ ]; G = erosi(F, H)
46
CS 3214
47
>> Img = imread('C:\Image\daun_gray.png');
Operasi erosi dapat dimanfaatkan untuk memperoleh tepi objek. Sebagai contoh, kode berikut dapat dicoba: >> Img = imread('C:\Image\daun_gray.png'); >> BW = im2bw(Img, 0.65); >> BW = not(BW); …… perintah komplemen >> imshow(BW); ATAU >> H = ones(5); >> G = erosi(BW, H); >> Ap = BW - G; >> imshow(Ap); Ap = A – (A B) CS 3214
48
Bentuk dan Ukuran Elemen Penstruktur
Bentuk yang umum digunakan pada operasi morfologi adalah cakram atau lingkaran. Efek yang diberikan merata pada segala arah CS 3214
49
ukuran elemen penstruktur menentukan hasil operasi dilasi.
Selain ukuran, bentuk elemen penstruktur juga menentukan hasil operasi morfologi. Bentuk yang umum digunakan pada operasi morfologi adalah cakram atau lingkaran. Efek yang diberikan merata pada segala arah
50
CS 3214
51
Memperoleh elemen penstruktur
>> strel('disk', 8) >> H = getnhood(strel('disk', 8)) Dengan cara seperti itu, H dapat digunakan pada fungsi erosi atau dilasi. Contoh: >> G=erosi(BW, H); >> imshow(G, [0 1]); >> CS 3214
52
Contoh strel untuk membuat berbagai bentuk elemen penstruktur
Penentu Bentuk Contoh ‘disk’ (berbentuk cakaram) strel(‘disk’, 4) radius 4 ‘diamond’ (berbentuk belah ketupat) strel(‘diamond’, 4) radius 4 ‘line’ (berbentuk garis) strel(‘line’, 3, 0) panjang 3 dan sudut 0 derajat (datar) strel(‘line’, 3, 45) panjang 3 dan sudut 45 derajat (datar) ‘octagon’ (berbentuk segi delapan) strel(‘octagon’, 6) Argumen kedua harus kelipatan 3 ‘rectangle’ (berbentuk persegi panjang) strel(‘rectangle’, [4 2]) 4 baris 2 kolom ‘square’ (berbentuk bujur sangkar) strel(‘square’, 4) bujur sangkar 4 x 4 CS 3214
53
>> Img = imread('C:\Image\struktur.png');
Octave dan MATLAB mendukung fungsi untuk kepentingan dilasi bernama imdilate dan untuk erosi bernama erode. Contoh penggunaannya seperti berikut: >> Img = imread('C:\Image\struktur.png'); >> BW = im2bw(Img, 0.1); >> H = ones(11,11); >> H(1,1)=0;H(1,2)=0;H(2,1)=0; >> H(10,1)=0;H(10,2)=0;H(11,1)=0; >> H(1,10)=0;H(1,11)=0;H(2,11)=0; >> H(10,11)=0;H(11,10)=0;H(11,11)=0; >> G = imerode(BW,H); >> imshow(G, [0 1]); Fakultas Informatika IT Telkom CS 3214
54
3. Operasi Opening Operasi opening adalah operasi erosi yang diikuti dengan dilasi dengan menggunakan elemen penstruktur yang sama berguna untuk menghaluskan kontur objek dan menghilangkan seluruh piksel di area yang terlalu kecil untuk ditempati oleh elemen penstruktur. CS 3214
55
Definisi operasi opening seperti berikut: A B = (A B) B
A B = (A B) B Contoh efek opening dapat diperoleh dengan memberikan perintah berikut: >> Img = imread('C:\Image\struktur.png'); >>BW = im2bw(Img, 0.1); CS 3214
56
>> Img = imread('struktur.png'); >> BW = im2bw(Img, 0.1);
>> H = [ ]; >> G = dilasi(BW, H); >> M = erosi(G, H); >> imshow(M,[0 1]) CS 3214
57
CS 3214
58
filter lolos-rendah (low-pass): A Bh;
Operasi opening sering dikatakan sebagai idempotent. Artinya, jika suatu citra telah dikenai operasi opening, pengenaan opening dengan elemen penstruktur yang sama tidak membawa efek apapun. Sifat ini dapat dituliskan secara matematis seperti berikut: (A B) B = (A B) Operator opening dapat dimanfaatkan sebagai filter lolos-rendah, filter lolos-tinggi, maupun sebagai tapis lolos-bidang apabila elemen penstruktur yang digunakan berupa cakram (Shih, 2009). filter lolos-rendah (low-pass): A Bh; filter lolos-tinggi (high-pass): A – (A Bh); filter lolos-bidang (band-pass): (A Bh1)- (A Bh2), dengan diameter Bh1 < Bh2. CS 3214
59
4. Operasi Closing Operasi closing berguna untuk menghaluskan kontur dan menghilangkan lubang-lubang kecil A B = (A B) B operasi closing dilaksanakan dengan melakukan operasi dilasi terlebih dahulu dan kemudian diikuti dengan operasi erosi. Contoh berikut menunjukkan efek penutupan lubang pada daun: >> Img = imread('C:\Image\daun_gray.png'); >> BW = im2bw(Img, 0.65); >> BW = not(BW); >> imshow(BW, [0 1] ) CS 3214
60
>> Img = imread('C:\Image\daun_gray.png');
>> BW = im2bw(Img, 0.65); >> BW = not(BW); >> H = ones(5); >> G = dilasi(BW, H); >> M = erosi(G, H); >> imshow(M,[0 1]) CS 3214
61
Transformasi Hit-or-Miss
CS 3214
62
>> and(erosi(Citra, H1) , erosi(not(Citra), not(H1)))
interseksi diperoleh dengan menggunakan AND. Jadi, solusi THM secara lengkap sebagai berikut: >> and(erosi(Citra, H1) , erosi(not(Citra), not(H1))) Untuk keperluan menangani transformasi Hit-or-Miss, Octave dan MATLAB menyediakan fungsi bernama bwhitmiss. Bentuk pemakaiannya: bwhitmiss(Citra, SE1, SE2) Dalam hal ini, argumen pertama menyatakan citra dan SE1 serta SE2 menyatakan elemen penstruktur yang merupakan pola untuk pencarian. CS 3214
63
% THM Digunakan untuk menangani transformasi Hit-or-Miss
function G = thm(F, H) % THM Digunakan untuk menangani transformasi Hit-or-Miss % F adalah citra yang akan dikenai operasi % H adalah elemen penstruktur [tinggi, lebar] = size(H); H1 = H; H2 = not(H1); G = and(erosi(F, H1) , erosi(not(F), H2)); >> Kunci = imread('C:\Image\kunci.png'); >> H = [0 1 1; 0 1 1; 0 1 1]; >> G = thm(Kunci, H); imshow(G) >> H = [ 0 0 0; ; 1 1 1]; CS 3214
64
4. Skeleton bentuk unik suatu objek, yang menyerupai rangka suatu objek. Skeleton mempunyai tiga karakteristik seperti berikut (Young, dkk., 1998): ketebalannya 1 piksel, melewati tengah objek, dan menyatakan topologi objek.
65
Contoh gambar yang tidak dapat dipenuhi oleh skeleton
(Sumber: Young, dkk., 1998) Skeleton digunakan untuk representasi dan pengenalan tulisan tangan, pola sidik jari, struktur sel biologis, diagram rangkaian, gambar teknik, rencana jalur robot, dan semacam itu (Shih, 2009). Terkadang istilah skeletonisasi objek disebut sebagai Medial Axis Transform (Myler & Weeks, 1993). CS 3214
66
thinning(A, B) = A B = A ^ B
Salah satu cara untuk mendapatkan skeleton adalah melalui thinning. Thinning (pengurusan) adalah operasi morfologi yang digunakan untuk memperkecil ukuran geometrik objek dengan hasil akhir berupa skeleton atau rangka, dengan definisinya sebagai berikut: thinning(A, B) = A B = A ^ B = A – hit_or_miss(A, B) = A (hit_or_miss)c A adalah citra biner dan B adalah delapan elemen penstruktur B1..Bn. Satu fase perhitungan thinning dilakukan dengan menggunakan delapan elemen penstruktur. CS 3214
67
Contoh 8 elemen penstruktur untuk melakukan operasi thinning
Fase pertama operasi thinning dilakukan sebagai berikut: A B = ((((((((A B1) B2) B3) B4) B5) B6) B7) B8) CS 3214
68
5, Thickening Thickening (penebalan) adalah operasi yang berkebalikan dengan thinning. Fungsinya adalah memperbesar ukuran geometris objek. Operasi ini didefinisikan sebagai berikut: A B = A hit_or_miss(A, B) CS 3214
69
A adalah citra biner dan B adalah delapan elemen penstruktur B1..Bn.
Satu fase perhitungan thickening dilakukan dengan menggunakan delapan elemen penstruktur. Contoh kedelapan elemen penstruktur disajikan pada Gambar 7.36. Gambar Contoh 8 elemen penstruktur untuk operasi thickening Fase pertama operasi thickening dilakukan sebagai berikut: A B = ((((((((A B1) B2) B3) B4) B5) B6) B7) B8) CS 3214
70
Convex Hull Himpunan konveks (cembung) adalah himpunan yang mencakup semua titik yang menghubungkan dua titik yang berada di dalam himpunan. Adapun convex hull adalah bentuk poligon terkecil yang dapat melingkupi objek. Poligon ini dapat dibayangkan sebagai gelang elastis yang dapat melingkupi tepi objek, diperlukan untuk kepentingan mengenali objek, dengan menghilangkan tepian objek yang cekung. CS 3214
71
Convex hull diperoleh dengan melibatkan transformasi Hit_or_Miss (THM) dengan elemen-elemen penstruktur yang dirotasi sebesar 90o. Contoh elemen penstruktur ditunjukkan pada Gambar 7.38 CS 3214
73
Proses pembentukan convex hull
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.