Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

OPERASI SEGMENTASI DAN MORFOLOGI

Presentasi serupa


Presentasi berjudul: "OPERASI SEGMENTASI DAN MORFOLOGI"— Transcript presentasi:

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

34

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

72

73 Proses pembentukan convex hull


Download ppt "OPERASI SEGMENTASI DAN MORFOLOGI"

Presentasi serupa


Iklan oleh Google