78
BAB 7 Morfologi untuk Pengolahan Citra Setelah bab ini berakhir, diharapkan pembaca memahami berbagai hal berikut dan mampu mempraktikkannya. Pengertian operasi morfologi Matematika yang melatarbelakangi Operasi dilasi Operasi erosi Bentuk dan ukuran elemen penstruktur Operasi opening Operasi closing Transformasi Hit-or-Miss Skeleton Thickening Convex hull Transformasi Top-Hat Transformasi Bottom-Hat

BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

  • Upload
    lycong

  • View
    235

  • Download
    4

Embed Size (px)

Citation preview

Page 1: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

BAB 7

Morfologi untuk

Pengolahan Citra

Setelah bab ini berakhir, diharapkan pembaca memahami

berbagai hal berikut dan mampu mempraktikkannya.

Pengertian operasi morfologi

Matematika yang melatarbelakangi

Operasi dilasi

Operasi erosi

Bentuk dan ukuran elemen penstruktur

Operasi opening

Operasi closing

Transformasi Hit-or-Miss

Skeleton

Thickening

Convex hull

Transformasi Top-Hat

Transformasi Bottom-Hat

Page 2: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

210 Pengolahan Citra, Teori dan Aplikasi

7.1 Pengertian Operasi Morfologi

Operasi morfologi merupakan operasi yang umum dikenakan pada citra

biner (hitam-putih) untuk mengubah struktur bentuk objek yang terkandung dalam

citra. Sebagai contoh, lubang pada daun dapat ditutup melalui operasi morfologi

sebagaimana ditunjukkan pada Gambar 7.1. Objek-objek daun yang saling

berhimpitan pun dapat dipisahkan melalui morfologi, sebagaimana ditunjukkan

pada Gambar 7.2. Beberapa contoh lain aplikasi morfologi adalah sebagai berikut.

Membentuk filter spasial, seperti yang telah dibahas pada Bab 6.

Memperoleh skeleton (rangka) objek.

Menentukan letak objek di dalam citra.

Memperoleh bentuk struktur objek.

Gambar 7.1 Tulang daun dapat dianggap sebagai bagian daun

melalui morfologi

Page 3: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 211

Gambar 7.2 Daun-daun yang bersinggungan dapat dipisahkan

melalui morfologi, yang memperkecil ukurannya

Operasi morfologi sesungguhnya juga dapat dikenakan pada

citra aras keabuan. Pembicaraan mengenai hal ini dilakukan di

bagian akhir di bab ini.

Inti operasi morfologi melibatkan dua larik piksel. Larik pertama berupa

citra yang akan dikenai operasi morfologi, sedangkan larik kedua dinamakan

sebagai kernel atau structuring element (elemen penstruktur) (Shih, 2009). Contoh

kernel ditunjukkan pada Gambar 7.3. Pada contoh tersebut, piksel pusat (biasa

diberi nama hotspot) ditandai dengan warna abu-abu. Piksel pusat ini yang

menjadi pusat dalam melakukan operasi terhadap citra, sebagaimana

diilustrasikan pada Gambar 7.4.

0 1 0

1 1 1

0 1 0

1 1 1

1 1 1

1 1 1

1 1

1 1

1 1 1 1 1 1 1 1 1

1

1

1

1

1

Gambar 7.3 Contoh beberapa kernel

Page 4: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

212 Pengolahan Citra, Teori dan Aplikasi

0 1 0

1 1 1

0 1 0

Kernel

Citra

Hotspot

Gambar 7.4 Operasi kernel terhadap citra

Dua operasi yang mendasari morfologi yaitu dilasi dan erosi. Dua operasi

lain yang sangat berguna dalam pemrosesan citra adalah opening dan closing

dibentuk melalui dua operasi dasar itu.

7.2 Matematika yang Melatarbelakangi

Untuk memahami operasi morfologi, pemahaman terhadap operasi

himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

pemahaman terhadap operasi logika, seperti “atau” dan ‘dan” juga diperlukan.

7.2.1 Teori Himpunan

Misalkan, terdapat himpunan A yang berada di dalam bidang Z2

(berdimensi dua). Apabila a=(a1, a2) adalah suatu elemen atau anggota di dalam

A, a dapat ditulis menjadi

𝑎 ∈ 𝐴 (7.1)

Arti notasi di atas, a adalah anggota himpunan A. kebalikannya, jika a bukan

anggota himpunan A, a ditulis seperti berikut:

𝑎 𝐴 (7.2)

Page 5: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 213

Sebagai contoh, s = (1, 2) dan t = (1, 4), sedangkan himpunan A berisi seperti

berikut:

A = { (1,1), (1,2), (1, 3), (2, 1), (2, 2) }

Pada contoh tersebut, A memiliki 5 anggota. Berdasarkan contoh tersebut, dapat

dituliskan fakta berikut:

𝑠 ∈ 𝐴

𝑡 𝐴

Perlu diketahui, setiap elemen hanya dapat menjadi anggota himpunan satu kali.

Dengan demikian,

A = {(1,1), (1,1), (2,1), (2,3), (2,1)}

sesungguhnya hanya mempunyai 3 anggota, yaitu

A = {(1,1), (2,1), (2,3)}

Notasi biasa terdapat dalam pembicaraan himpunan. Simbol tersebut

menyatakan himpunan kosong, yaitu himpunan yang tidak memiliki anggota

sama sekali.

Apabila A dan B adalah himpunan dan setiap anggota himpunan B

merupakan anggota himpunan A, dikatakan bahwa B adalah subhimpunan A.

Notasi yang biasa digunakan untuk kepentingan ini:

B A (7.3)

Union adalah penggabungan dari dua buah himpunan. Misalnya:

C = A B (7.4)

Page 6: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

214 Pengolahan Citra, Teori dan Aplikasi

yang menyatakan bahwa C memiliki anggota berupa semua anggota A ditambah

dengan semua anggota B. Gambar 7.5 memperlihatkan contoh nilai-nilai piksel

penyusun dua citra biner dan menunjukkan hasil operasi union. Semua nilai 1

pada citra tersebut menyatakan anggota himpunan baru, yang cenderung meluas.

A={(1,2), (2,2), (2,3), (3,2), (3,3), (3,4), (4,2), (4,3), (5,2)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

B={(1,1), (2,1), (2,2), (3,3), (4,2), (5,1)}

C = A B

C={(1,1), (1,2), (2,2), (2,3), (3,2), (3,3),(3,4) (4,2), (4,3), (5,1), (5,2)}

0 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 1 0

0 0

0

1 1 0

0

0 0 1

0 1

0 0

0

0 0

0

0

1 0 0

0 1 0

0 0

0

1 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

1 1 0

0 1 0

0 0

0

Gambar 7.5 Operasi union pada citra biner

Interseksi menyatakan operasi yang menghasilkan himpunan semua

anggota yang terdapat di kedua himpunan. Misalnya:

C = A B (7.5)

berarti bahwa C berisi anggota-anggota yang ada di himpunan A dan juga terdapat

di himpunan B. Hasilnya cenderung menyempit. Contoh dapat dilihat pada

Gambar 7.6.

Page 7: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 215

A={(1,2), (2,2), (2,3), (3,2), (3,3), (3,4), (4,2), (4,3), (5,2)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

B={(1,1), (2,1), (2,2), (3,3), (4,2), (5,1)}

C = A B

C={(1,2), (2,2), (3,3), (4,1)}

1 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

1 1 0

0 1 0

0 0

0

0 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 1 0

0 0

0

1 1 0

0

0 0 1

0 1

0 0

0

0 0

0

0

1 0 0

0 1 0

0 0

0

Gambar 7.6 Operasi interseksi pada citra biner

Komplemen himpunan A biasa dinotasikan dengan Ac dan menyatakan

semua elemen yang tidak terdapat pada A. Secara matematis, komplemen ditulis

seperti berikut:

Ac = { w | w A } (7.6)

Notasi di atas dibaca “semua elemen yang tidak menjadi anggota A”.

Komplemen atau juga disebut inversi dapat dibayangkan seperti saling

menukarkan warna hitam dan putih. Nilai yang semula berupa nol diganti satu dan

nilai satu diganti dengan nol. Contoh dapat dilihat di Gambar 7.7. Di bidang

fotografi dengan film, inversi menghasilkan gambar negatif. Istilah komplemen

juga berarti ”pelengkap”, karena bila A digabung dengan operasi union akan

menyempurnakan citra menjadi citra yang semua pikselnya bernilai 1.

Page 8: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

216 Pengolahan Citra, Teori dan Aplikasi

A={(1,2), (2,2), (2,3), (3,2), (3,3), (3,4), (4,2), (4,3), (5,2)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

Ac = {(1,1), (1,3), (1,4), (1,5), (2,1), (2,4), (2,5), (3,1), (3,5), (4,1), (4,4), (4,5), (5,1), (5,3), (5,4), (5,5)}

0 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 1 0

0 0

0

1 0 1

0

1 0 0

1 0

1 1

1

0 1

1

0

1 0 1

1 0 1

1 1

1

Gambar 7.7 Operasi komplemen

Operasi selisih dua himpunan dapat ditulis seperti berikut:

A – B = { w | w A, w B } = A Bc (7.7)

Contoh ditunjukkan di Gambar 7.8.

Page 9: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 217

A={(1,2), (2,2), (2,3), (3,2), (3,3), (3,4), (4,2), (4,3), (5,2)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

B={(1,1), (2,1), (2,2), (3,3), (4,2), (5,1)}

C = A - B

C = { (2,3), (3,4), (4,3), (5,2) }

C = B - A

C = { (1,1), (5,1) }

0

0

0 0

1

0 0 0

0 0

0 0

0

1 0

0

1

0 1 0

0 0 0

0 0

0

1 0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

1 0 0

0 0 0

0 0

0

1 1 0

0

0 0 1

0 1

0 0

0

0 0

0

0

1 0 0

0 1 0

0 0

0

0 1 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 1 0

0 0

0

Gambar 7.8 Contoh selisih dua himpunan

Contoh di atas menunjukkan bahwa A – B B – A.

Refleksi B dinotasikan dengan �̂� dan didefinisikan sebagai berikut:

�̂� = {𝑤|𝑤 = −𝑏, 𝑢𝑛𝑡𝑢𝑘 𝑏 ∈ 𝐵} (7.8)

Refleksi sebenarnya menyatakan percerminan terhadap piksel pusat. Contoh

ditunjukkan pada Gambar 7.9. Bayangan cermin 2-D terjadi melalui pencerminan

pada arah x dan dilanjutkan pada arah y. namun, ternyata hasilnya sama dengan

pemutaran di bidang citra 180o.

Page 10: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

218 Pengolahan Citra, Teori dan Aplikasi

0 0 0

1

0 1 1

0 1

0 0

0

1 0

0

0

0 0 0

0 0 0

0 0

0

A={(2,2), (2,3), (3,2), (3,3), (3,4)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

𝐴 = {(3,2), (3,3), (3,4), (4,3), (4,4)}

0 0 0

0

0 1 1

0 0

0 0

0

1 0

0

1

0 0 0

0 0 0

0 0

1

Gambar 7.9 Contoh refleksi

Translasi himpunan A terhadap titik z=(z1, z2) disimbolkan dengan (A)z.

Definisinya sebagai berikut:

(𝐴)𝑧 = {𝑐|𝑐 = 𝑎 + 𝑧, 𝑢𝑛𝑡𝑢𝑘 𝑎 ∈ 𝐴} (7.9)

Contoh dapat dilihat pada Gambar 7.10.

A={(2,2), (2,3), (3,2), (3,3), (3,4)}

1 2 3 4 5 1 2 3 4 5

1

2

3

4

5

(A)(2,1) = {(4,3), (4,4), (5,3),

(5,4), (5,5)}

0 0 0

0

0 0 0

0 0

0 0

0

0 0

0

1

0 0 1

0 0 0

1 1

1

0 0 0

1

0 1 1

0 1

0 0

0

1 0

0

0

0 0 0

0 0 0

0 0

0

Gambar 7.10 Contoh translasi satu piksel ke kanan dan

dua piksel ke bawah

7.2.2 Operasi Nalar

Operator nalar didasarkan pada aljabar Boolean. Sebagaimana diketahui,

aljabar Boolean adalah pendekatan matematis yang berhubungan dengan nilai

kebenaran (benar atau salah). Ada tiga operator nalar dasar yang akan dibahas,

Page 11: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 219

yaitu AND, OR, serta NOT. Tabel kebenaran ketiga operator tersebut dapat dilihat

pada Tabel 7.1 dan 7.2.

Operasi AND melibatkan dua masukan dan mempunyai sifat bahwa hasil

operasinya bernilai 1 hanya jika kedua masukan bernilai 1. Pada operasi OR, hasil

berupa 1 kalau ada masukan yang bernilai 1. Berbeda dengan AND dan OR,

operasi NOT hanya melibatkan satu masukan. Hasil NOT berupa 1 kalau masukan

berupa 0 dan sebaliknya akan menghasilkan nilai 0 kalau masukan berupa 1.

Tabel 7.1 Tabel kebenaran AND dan OR

Masukan 1 Masukan 2 AND OR

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 1

Tabel 7.2 Tabel kebenaran NOT

Masukan Keluaran

0 1

1 0

Selain ketiga operator yang disebut di depan, operator lain yang kadang-

kadang digunakan adalah XOR dan NAND. Sifat XOR dan NAND ditunjukkan

pada Tabel 7.3.

Tabel 7.3 Tabel kebenaran XOR dan NAND

Masukan 1 Masukan 2 XOR NAND

0 0 0 1

0 1 1 1

1 0 1 1

1 1 0 0

Page 12: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

220 Pengolahan Citra, Teori dan Aplikasi

Berbagai efek operasi AND, OR, NOT, XOR, dan NAND ditunjukkan

pada Gambar 7.11. Adapun program yang digunakan untuk membentuk operasi

tersebut dapat dilihat pada nalar.m.

Gambar 7.1 Hasil-hasil operasi nalar atas dua buah citra A dan B

Program : nalar.m

% 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');

Page 13: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 221

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))');

Akhir Program

7.3 Operasi Dilasi

Operasi dilasi biasa dipakai untuk mendapatkan efek pelebaran terhadap

piksel yang bernilai 1. Operasi ini dirumuskan seperti berikut (Gonzales &

Woods, 2002):

A B = {𝑧| [(�̂�)𝑧

∩ 𝐴] ∁ 𝐴} (7.10)

Dalam hal ini,

a) �̂� = {𝑤|𝑤 = −𝑏, 𝑢𝑛𝑡𝑢𝑘 𝑏 ∈ 𝐵}

b) (𝐵)𝑧 = {𝑐|𝑐 = 𝑎 + 𝑧, 𝑢𝑛𝑡𝑢𝑘 𝑎 ∈ 𝐴}

c) z=(z1, z2)

Page 14: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

222 Pengolahan Citra, Teori dan Aplikasi

Burger & Burge (2008) mendefinisikan operasi dilasi sebagai berikut:

A B = {𝑧|𝑧 = 𝑎 + 𝑏, dengan 𝑎 ∈ 𝐴 𝑑𝑎𝑛 𝑏 ∈ 𝐵} (7.11)

Hasil dilasi berupa penjumlahan seluruh pasangan koordinat dari I dan H.

Contoh operasi dilasi dengan menggunakan Persamaan 7.11 dapat dilihat

pada Gambar 7.11. Pada contoh tersebut,

A = { (2,2), (2,3), (2,4), (3,2), (3,3), (3,4), (4,3) }

B = { (-1, 0), (0,0), (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) }

Page 15: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 223

A B

AB

Penambahan piksel akibat dilasi

Hotspot vertikal

-1 0 1

-1

0

1

1

2

3

4

5

1 2 3 4 5

Gambar 7.11 Efek dilasi dengan hotspot vertikal

Operasi dilasi bersifat komutatif. Artinya,

A B = B A

Selain itu, operasi dilasi bersifat asosiatif. Artinya,

(A B) C = A (B C)

Algoritma untuk melakukan operasi dilasi berdasar Persamaan 7.11

ditunjukkan berikut ini.

Page 16: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

224 Pengolahan Citra, Teori dan Aplikasi

ALGORITMA 7.1 – Operasi dilasi

Masukan:

f (citra berukuran m x n)

h (elemen penstruktur berukuran s x t)

hoty (ordinat hotspot -> nomor baris)

hotx (absis hotpsot -> nomor kolom)

Keluaran:

g (citra berukuran m x n yang menyatakan hasil operasi

dilasi)

1. g(i,j) nol (untuk semua i dan j)

2. Cari nilai r sehingga memenuhi 2r > 2m – 1

3. p 2q

4. q 2q

Implementasi dalam bentuk program dapat dilihat berikut ini.

Program : dilasi.m

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);

Page 17: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 225

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;

end

end

end

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;

end

end

end

end

end

Akhir Program

Contoh penggunaan fungsi dilasi ditunjukkan di bawah ini.

>> F = [ 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 1 1 1 1 0

0 0 1 1 1 1 0

0 0 0 1 1 1 0

0 0 0 0 0 0 0

0 1 1 0 0 0 0

0 0 0 0 0 0 0];

Page 18: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

226 Pengolahan Citra, Teori dan Aplikasi

>> H = [0 1 0; 1 1 1; 0 1 0];

>> G = dilasi(F,H)

G =

0 0 0 0 0 0 0

0 0 1 1 1 1 0

0 1 1 1 1 1 1

0 1 1 1 1 1 1

0 0 1 1 1 1 1

0 1 1 1 1 1 0

1 1 1 1 0 0 0

0 1 1 0 0 0 0

>>

Contoh pada Gambar 7.11 diproses dengan cara seperti berikut:

>> F = [ 0 0 0 0 0;

0 1 1 1 0;

0 1 1 1 0;

0 1 0 0 0;

0 0 0 0 0];

>> H = [0 1 0

0 1 0

0 1 0];

>> G = dilasi(F,H)

G =

0 1 1 1 0

0 1 1 1 0

0 1 1 1 0

0 1 1 1 0

0 1 0 0 0

Page 19: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 227

>>

Dengan menggunakan data F dan H di atas, perintah berikut dapat dicoba:

>> G = dilasi(F,H, 2, 1)

G =

0 0 0 0 0

0 1 1 1 0

0 1 1 1 0

0 1 1 1 0

0 1 1 1 0

>>

Angka 2 dan 1 pada argumen fungsi dilasi menyatakan bahwa hotspot pada H

terletak pada kolom kedua dan baris pertama. Jadi, yang berfungsi sebagai hotspot

adalah nilai 1 pada H yang terletak paling atas, bukan yang di tengah. Mengapa

hasilnya seperti itu? Cobalah untuk menganalisisnya. Perlu diketahui, pada saat

menentukan posisi hotspot, pemetaan seperti pada Gambar 7.12 harus digunakan.

1

2

3

Hotspot dengan:

hx = 2

hy = 1

1 2 3

Gambar 7.12 Penentuan hotspot menggunakan acuan

angka 1 untuk pojok kiri atas kernel

Page 20: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

228 Pengolahan Citra, Teori dan Aplikasi

Untuk melihat efek dilasi pada citra, kode berikut dapat dicoba.

>> close all;

>> Bravo = imread('C:\image\bravo.png');

>> BW = im2bw(Bravo, 0.5);

>> H = ones(4);

>> imshow(dilasi(BW, H));

>>

Gambar asli dan hasil operasi dilasi dapat dilihat pada Gambar 7.13.

Gambar 7.13(a) menyatakan gambar asli. Gambar 7.13(b) adalah hasil konversi

ke bentuk biner dengan menggunakan fungsi bawaan bernama im2bw. Gambar

7.13(c) adalah hasil dilasi melalui perintah di depan. Hasil tersebut diperoleh

dengan menggunakan struktur elemen berukuran 4 x 4 yang keseluruhan bernilai

1. Hal itu diperoleh melalui ones(4). Adapun Gambar 7.13(d) adalah hasil kalau

elemen penstruktur yang digunakan (H) berukuran 7x7 dengan seluruh elemen

bernilai 1.

Page 21: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 229

Gambar 7.13 Contoh operasi dilasi pada citra

7.4 Operasi Erosi

Operasi erosi mempunyai efek memperkecil struktur citra. Operasi ini

dirumuskan seperti berikut (Gonzalez & Woods, 2002).

A B = {𝑧|(𝐵)𝑧 𝐴} (7.12)

Page 22: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

230 Pengolahan Citra, Teori dan Aplikasi

Adapun Burger & Burge (2008) mendefinisikan erosi sebagai berikut:

A B = {𝑝 ∈ 𝑍2| (𝑎 + 𝑏) ∈ 𝐼, 𝑢𝑛𝑡𝑢𝑘 𝑠𝑒𝑡𝑖𝑎𝑝 𝑏 ∈ 𝐵} (7.13)

Makna yang tersirat pada Persamaan 7.12 dan 7.13 sebenarnya sama. Berdasarkan

Persamaan 7.13, posisi p terdapat pada A B jika seluruh nilai 1 di B terkandung

di posisi p tersebut. Implementasi fungsi erosi berikut didasarkan makna di atas.

Program : erosi.m

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;

end

end

end

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

Page 23: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 231

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;

end

else

cocok = false;

end

end

if cocok

G(baris, kolom) = 1;

end

end

end

Akhir Program

Contoh penggunaan fungsi erosi dapat dilihat berikut ini.

>> F = [ 0 0 0 0 0

0 1 1 1 0

0 1 1 1 0

0 1 0 0 0

0 0 0 0 0];

>> H = [0 1 0

0 1 0

0 1 0];

>> G = erosi(F, H)

G =

0 0 0 0 0

0 0 0 0 0

0 1 0 0 0

0 0 0 0 0

0 0 0 0 0

>>

Page 24: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

232 Pengolahan Citra, Teori dan Aplikasi

Gambar berikut memperlihatkan bentuk visual untuk contoh di atas.

A B

AB

Hanya ini yang cocok dengan

elemen penstruktur

Gambar 7.14 Contoh visualisasi operasi erosi

Operasi erosi bersifat komutatif. Artinya,

A B = B A

Selain itu, operasi erosi bersifat asosiatif. Artinya,

(A B) C = A (B C)

Contoh penggunaan operasi erosi pada citra dapat dicoba dengan

menggunakan perintah berikut:

>> Daun = imread('C:\image\dedaunan.png');

>> BW = im2bw(Daun, 0.1);

Page 25: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 233

>> H = ones(4);

>> G = erosi(BW, H);

>> imshow(G, [0 1])

Citra asli dan hasil pemrosesan dengan operasi erosi dapat dilihat pada Gambar

7.15. Terlihat bahwa dengan menggunakan elemen penstruktur

𝐻 =

[ 1 11 1

1 11 1

1 11 1

1 11 1

1 11 1

1 11 1

1 11 1

1 11 1

1 11 1]

yang diperoleh melalui H = ones(6), semua daun yang bersinggungan dapat

dipisahkan. Namun, sebagai konsekuensinya, bentuk beberapa daun agak berubah.

Page 26: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

234 Pengolahan Citra, Teori dan Aplikasi

(a) Citra asli daun.png (b) Hasil konversi ke citra biner

(c) Erosi dengan H = ones(4) (d) Erosi dengan H = ones(6)

Gambar 7.15 Contoh operasi erosi pada citra

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);

>> imshow(BW);

Hasilnya ditunjukkan pada Gambar 7.16(a).

Page 27: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 235

Perintah

BW = not(BW);

digunakan untuk melakukan operasi komplemen. Hal ini perlu dilakukan

mengingat latarbelakang gambar asli berwarna putih. Selanjutnya, perintah

berikut dapat dicoba:

>> H = ones(5);

>> G = erosi(BW, H);

>> Ap = BW - G;

>> imshow(Ap);

Hasilnya ditunjukkan pada Gambar 7.16(b). Kuncinya sangat sederhana. Tepi

objek sesungguhnya dapat diperoleh melalui:

Ap = A – (A B) (7.14)

Page 28: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

236 Pengolahan Citra, Teori dan Aplikasi

(a) Hasil konversi ke biner (b) Hasil operasi perolehan tepi

Gambar 7.16 Contoh erosi untuk mendapatkan tepi objek

7.5 Bentuk dan Ukuran Elemen Penstruktur

Berdasarkan contoh pada Gambar 7.13, terlihat bahwa 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. Bentuk dua buah cakram

dapat dilihat pada Gambar 7.17.

Page 29: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 237

Gambar 7.17 Dua bentuk elemen penstruktur berbentuk cakram

Bentuk elemen penstruktur yang lain yaitu belah ketupat, garis, persegi

panjang, bujur sangkar, dan oktagon. Gambar 7.18 menunjukkan contoh bentuk-

bentuk tersebut.

Page 30: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

238 Pengolahan Citra, Teori dan Aplikasi

Gambar 7.18 Berbagai bentuk elemen penstruktur

Untuk kepentingan memperoleh elemen penstruktur, MATLAB

menyediakan fungsi bernama strel. Sayangnya, fungsi seperti ini belum

diimplementasikan pada Octave. Sebagai contoh, elemen penstruktur berbentuk

cakram dengan radius 8 diperoleh dengan menggunakan perintah seperti berikut:

>> strel('disk', 8)

ans =

Page 31: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 239

Flat STREL object containing 185 neighbors.

Decomposition: 4 STREL objects containing a total of 24 neighbors

Neighborhood:

0 0 0 0 1 1 1 1 1 1 1 0 0 0 0

0 0 0 1 1 1 1 1 1 1 1 1 0 0 0

0 0 1 1 1 1 1 1 1 1 1 1 1 0 0

0 1 1 1 1 1 1 1 1 1 1 1 1 1 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1 1 1 1 1 1 1 0

0 0 1 1 1 1 1 1 1 1 1 1 1 0 0

0 0 0 1 1 1 1 1 1 1 1 1 0 0 0

0 0 0 0 1 1 1 1 1 1 1 0 0 0 0

>>

Agar hasil strel dapat dimanfaatkan untuk fungsi erosi ataupun dilasi,

elemen penstruktur dapat diperoleh dengan memberikan perintah semacam

berikut:

>> H = getnhood(strel('disk', 8))

Dengan cara seperti itu, H dapat digunakan pada fungsi erosi atau dilasi. Contoh:

>> G=erosi(BW, H);

Page 32: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

240 Pengolahan Citra, Teori dan Aplikasi

>> imshow(G, [0 1]);

>>

Hasilnya dapat dilihat di Gambar 7.19(b).

Gambar 7.19 juga sekaligus memperlihatkan efek berbagai ukuran elemen

penstruktur. Terlihat bahwa dengan menggunakan erosi, objek tertentu (yang

ukurannya lebih kecil daripada elemen penstruktur) akan hilang. Hasil pada

gambar tersebut juga menunjukkan bahwa semakin besar ukuran elemen

penstruktur, objek semakin mengecil.

Gambar 7.19 Contoh penggunaan elemen penstruktur

yang bersumber strel dan dikenakan pada erosi

Page 33: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 241

Perlu diketahui, fungsi strel memberikan berbagai pilihan dalam membuat

elemen penstruktur. Tabel 7.4 memperlihatkan beberapa contoh.

Tabel 7.4 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

Perlu juga diketahui, 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;

Page 34: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

242 Pengolahan Citra, Teori dan Aplikasi

>> G = imerode(BW,H);

>> imshow(G, [0 1]);

>>

Perintah

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;

identik dengan perintah MATLAB

strel('disk', 6)

Hasilnya dapat dilihat pada Gambar 7.20.

(a) Citra struktur.png (b) Hasil imerode dengan strel(‘disk’, 6)

Gambar 7.20 Erosi dengan fungsi erode

7.6 Operasi Opening

Operasi opening adalah operasi erosi yang diikuti dengan dilasi dengan

menggunakan elemen penstruktur yang sama. Operasi ini berguna untuk

Page 35: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 243

menghaluskan kontur objek dan menghilangkan seluruh piksel di area yang terlalu

kecil untuk ditempati oleh elemen penstruktur. Dengan kata lain, semua struktur

latardepan yang berukuran lebih kecil daripada elemen penstruktur akan

tereliminasi oleh erosi dan kemudian penghalusan dilakukan melalui dilasi.

Definisi operasi opening seperti berikut:

A B = (A B) B (7.15)

Contoh efek opening dapat diperoleh dengan memberikan perintah berikut:

>> Img = imread('C:\Image\struktur.png');

>> BW = im2bw(Img, 0.1);

>> H = [

0 0 1 1 1 1 1 0 0

0 1 1 1 1 1 1 1 0

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1 0

0 0 1 1 1 1 1 0 0 ];

>> G = dilasi(BW, H);

>> M = erosi(G, H);

>> imshow(M,[0 1])

>>

Hasilnya dapat dilihat pada Gambar 7.21(c).

Page 36: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

244 Pengolahan Citra, Teori dan Aplikasi

Gambar 7.21 Perbandingan operasi erosi, opening, dan closing

Gambar 7.21 menunjukkan bahwa operasi erosi membuat objek mengecil

dan bahkan ada yang hilang. Adapun operasi opening membuat ukuran objek

relatif tetap sama, walaupun juga menghilangkan objek yang berukuran kecil

(kurus). Namun, perlu diketahui, operasi opening membuat penghalusan di bagian

tepi. Perhatikan, ujung segitiga tidak tajam setelah dikenai operasi opening.

Sebagai pembanding, Gambar 7.21(d) menunjukkan hasil penggunaan operasi

closing, yang akan dibahas sesudah subbab ini.

Page 37: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 245

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) (7.16)

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). Berikut adalah rumusannya:

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.

Skrip berikut digunakan untuk menangani operasi opening:

Program : opening.m

function G = opening (F, H)

% OPENING Melakukan operasi opening.

G = dilasi(erosi(F, H), H);

Akhir Program

7.7 Operasi Closing

Operasi closing berguna untuk menghaluskan kontur dan menghilangkan

lubang-lubang kecil. Definisinya seperti berikut:

Page 38: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

246 Pengolahan Citra, Teori dan Aplikasi

A B = (A B) B (7.17)

Jadi, 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] )

Perintah di atas menampilkan hasil seperti terlihat pada Gambar 7.22(a).

Selanjutnya, perintah berikut dapat dicoba:

>> 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])

Hasilnya ditunjukkan pada Gambar 7.22(b).

Page 39: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 247

(a) Hasil konversi ke biner (b) Hasil operasi closing

Gambar 7.22 Lubang kecil tertutup oleh operasi closing

Berikut adalah implementasi operasi closing:

Program : closing.m

function G = closing (F, H)

% CLOSING Melakukan operasi opening.

G = erosi(dilasi(F, H), H);

Akhir Program

Page 40: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

248 Pengolahan Citra, Teori dan Aplikasi

7.8 Transformasi Hit-or-Miss

Transformasi Hit-or-Miss (THM) pada citra biner A didefinisikan sebagai

berikut:

𝐴 * 𝐵 = (𝐴 𝐵1) (�̅� 𝐵2) (7.18)

Dalam hal ini, biasanya B2 = 𝐵1̅̅ ̅. Morfologi seperti itu dipakai untuk pemrosesan

dan pengenalan bentuk pada citra biner.

Transformasi Hit-or-Miss terkadang disebut Hit-and-Miss

(Efford, 2000).

THM merupakan dasar untuk skeleton, thinning, dan pruning.

Sebagai contoh, terdapat pola seperti terlihat pada Gambar 7.23(a). Target

yang dikehendaki adalah menemukan pola tersebut pada citra yang terlihat pada

Gambar 7.23(b).

1 0 0

0

1

1

1 1

1

1

0

0

1

1

0

0 0 0

0 0

1

1

0

0

0 0

0

1 0 0

0 0

0 0

0

1 0

0

1

0 0 0

1 1 0

1 0

1

1 0 0

0

1 1 1

1 0

0 0

0

1 0

1

1

0 0 0

1 1 0

1 0

1

0 0 0 1 0 0 0 1 1 0

0 0 0 0 0 0 0 0 0 0

0

0

1

1

1

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

0

1

1

1

1

(a) Target (b) Citra yang berisi target

Gambar 7.23 Contoh target dan citra yang berisi target

Secara manual dapat dilihat bahwa target yang dicari ada tiga buah. Untuk

menemukan posisinya, dapat digunakan operasi erosi. Penyelesaiannya seperti

berikut:

Page 41: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 249

>> H1 = [ 1 0 0 0

1 0 0 1

1 1 1 1

0 0 0 1

0 0 0 1 ];

>> Citra = [ 0 0 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 1 0 0 1 0 0 0 0 0

1 0 0 1 0 1 1 1 1 0 1 0 0 0

1 1 1 1 0 1 1 1 1 0 1 0 0 1

0 0 0 1 0 0 0 0 1 0 1 1 1 1

0 0 0 1 0 0 0 1 1 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0 0 1 ];

>> G = erosi(Citra, H1)

Terlihat bahwa ada tiga elemen pada G yang bernilai 1. Pada posisi itulah target

ditemukan. Gambar 7.24 memperlihatkan isi G. Elemen yang bernilai 1 ditandai

dengan arsiran yang agak gelap. Arsiran yang agak terang digunakan untuk

menandai keberadaan target.

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 1

0 0

0 0

0

0 0

0

1

0 0 0

0 0 0

0 0

0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

Gambar 7.24 Hasil erosi. Arsiran dimaksudkan untuk menunjukkan letak

target yang dicari

Nah, sekarang digunakan komplemen atas target yang dicari. Dalam hal ini,

H2 = 𝐻1̅̅̅̅ . Jadi,

>> H2 = not(H1)

Page 42: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

250 Pengolahan Citra, Teori dan Aplikasi

H2 =

0 1 1 1

0 1 1 0

0 0 0 0

1 1 1 0

1 1 1 0

>>

Gambar 7.25 menunjukkan keadaan H2 dan komplemen citra.

0 1 1

1

0

1

0 0

0

1

1

1

0

0

1

1 1 1

1 1

0

0

1

0

1 1

1

0 1 1

1 1

1 1

1

0 1

1

0

1 1 1

0 0 1

0 1

0

0 1 1

1

0 0 0

0 1

1 1

1

0 1

0

0

1 1 1

0 0 1

0 1

0

1 1 1 0 1 1 1 0 0 1

1 1 1 1 1 1 1 1 1 1

1

1

0

0

0

1

1

1

1

1

1

0

1

1

1

1

1

1

0

1

1

1

1

1

0

0

0

0

(a) 𝐻2 = 𝐻 1 (b) Komplemen citra

Gambar 7.25 Mencari kebalikan target H1 pada komplemen citra

Pencarian seperti pada Gambar 7.25 dapat dilakukan dengan menggunakan:

>> erosi(not(Citra), not(H1))

Hasilnya ditunjukkan pada Gambar 7.26.

Page 43: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 251

0 1 1

1

0

1

0 0

0

1

1

1

0

0

1

1 1 1

1 1

0

0

0

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

1

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0 0 0 0 0 0 0 0

1 0 0 0 1 1 0 0 0 0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

1 0

0

0

0

0

1

0

0

0

0

0

0

(a) 𝐻2 = 𝐻 1 (b) Komplemen citra

Gambar 7.26 Hasil pencarian kebalikan H1 pada komplemen citra

dengan menggunakan erosi

Hasil THM diperoleh dengan melakukan interseksi antara hasil yang terletak pada

7.24 dan 7.26. Secara visual terlihat bahwa interseksi kedua hasil tersebut

menghasilkan satu nilai saja, yaitu pada posisi yang terlihat pada Gambar 7.27.

0

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1 0

0

0

0

0

0

0

0

0

0

0

0

Hasil THM

Gambar 7.27 Hasil THM

Hasil di atas menyatakan bahwa pola yang dicari hanya ditemukan satu kali pada

citra dengan posisi seperti yang ditunjukkan oleh angka 1. Bagian yang diarsir

lebih terang menyatakan pola yang dicari. Dalam hal ini, interseksi diperoleh

dengan menggunakan AND. Jadi, solusi THM secara lengkap sebagai berikut:

>> and(erosi(Citra, H1) , erosi(not(Citra), not(H1)))

THM yang dikupas di atas mempunyai kelemahan, yakni perbedaan satu

piksel saja akan membuat pola tidak dikenal. Dalam praktik, terkadang

Page 44: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

252 Pengolahan Citra, Teori dan Aplikasi

dikehendaki agar THM bersifat sedikit pemaaf, sehingga pola yang sedikit

berbeda dalam citra tetap dianggap sama dengan target. Pembahasan mengenai hal

itu dapat dilihat pada Solomon & Breckon (2011).

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.

Untuk kepentingan memudahkan implementasi yang melibatkan THM,

sebuah fungsi bernama thm ditunjukkan berikut ini.

Program : thm.m

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));

Akhir Program

Contoh berikut menunjukkan cara menemukan batas kiri objek kunci

dengan memanfaatkan fungsi thm:

Page 45: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 253

>> Kunci = imread('C:\Image\kunci.png');

>> H = [0 1 1; 0 1 1; 0 1 1];

>> G = thm(Kunci, H); imshow(G)

Pada contoh di atas, elemen pentruktur yang digunakan untuk memperoleh batas

kiri objek berupa:

0 1 1

1 0

1

1

1 0

1

1

Gambar 7.28 Elemen penstruktur untuk

memperoleh batas kiri kunci

Hasilnya ditunjukkan pada Gambar 7.29(b). Adapun perintah berikut

memberikan hasil seperti terlihat pada Gambar 7.29(c).

>> H = [ 0 0 0; 1 1 1 ; 1 1 1];

>> G = thm(Kunci, H); imshow(G)

(a) Citra kunci.png (b) Batas kiri kunci (c) Batas atas kunci

Gambar 7.29 Contoh memperoleh batas kiri dan batas atas kunci

Pada beberapa kasus, elemen penstruktur yang digunakan untuk

melakukan THM melibatkan bit-bit yang disebut dengan istilah “don’t care”

(dampak nilai 1 atau 0 sama saja). Contoh:

Page 46: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

254 Pengolahan Citra, Teori dan Aplikasi

𝐵 = [1 𝑥 𝑥1 0 𝑥1 𝑥 𝑥

] (7.19)

Pada contoh di atas, x menyatakan “don’t care” atau bebas (0 atau 1). Nah, untuk

menangani kasus seperti itu, dapat dibuat transformasi Hit_or_Miss seperti

berikut.

Program : thm2.html

function G = thm2(F, H)

% THM2 Digunakan untuk menangani transformasi Hit-or-Miss

% F adalah citra yang akan dikenai operasi

% H adalah elemen penstruktur

% H bisa mengandung nilai -1 untuk menyatakan

% don't care

[tinggi, lebar] = size(H);

% Membentuk H1

% Periksa nilai don't care (yaitu -1) dan gantilah dengan nol

H1 = H;

for baris = 1 : tinggi

for kolom = 1 : lebar

if H1(baris, kolom) == -1

H1(baris, kolom) = 0;

end

end

end

% Membentuk H2 sebagai komplemen H1

% Periksa nilai don't care (yaitu -1) dan gantilah dengan nol

for baris = 1 : tinggi

for kolom = 1 : lebar

if H(baris, kolom) == -1

H2(baris, kolom) = 0;

else

H2(baris, kolom) = not(H(baris, kolom));

end

end

end

G = and(erosi(F, H1) , erosi(not(F), H2));

return

Page 47: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 255

Akhir Program

Secara prinsip, bagian yang bernilai -1 (“don’t care”) selalu diubah menjadi nol.

Ketika dikomplemenkan, nilai -1 juga menghasilkan nilai 0. Dengan demikian,

H1 AND H2 akan selalu menghasilkan nilai 0 pada setiap elemen. Contoh

penggunaan thm2 akan diberikan ketika membahas convex hull.

7.9 Skeleton

Ada beberapa cara yang digunakan untuk membentuk skeleton. Skeleton

merupakan bentuk unik suatu objek, yang menyerupai rangka suatu objek.

Skeleton mempunyai tiga karakteristik seperti berikut (Young, dkk., 1998):

1) ketebalannya 1 piksel,

2) melewati tengah objek, dan

3) menyatakan topologi objek.

Namun, dalam praktik, ada kasus tertentu yang tidak dapat dipenuhi oleh skeleton.

Contoh ditunjukkan pada Gambar 7.35.

Gambar 7.30 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

Page 48: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

256 Pengolahan Citra, Teori dan Aplikasi

robot, dan semacam itu (Shih, 2009). Terkadang istilah skeletonisasi objek disebut

sebagai Medial Axis Transform (Myler & Weeks, 1993).

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 (7.20)

Dalam hal ini, A adalah citra biner dan B adalah delapan elemen penstruktur

B1..Bn. Satu fase perhitungan thinning dilakukan dengan menggunakan delapan

elemen penstruktur. Beberapa fase diperlukan sampai diperoleh hasil yang tidak

lagi mengubah struktur citra.

Operasi thinning menyerupai erosi. Perbedaannya, thinning

tidak akan membuat komponen objek terputus, melainkan

mengecilkan hingga hasil akhirnya berupa rangka dengan

ketebalan 1 piksel.

0 0 0

1

1

1

1 1

1

1

1

1 1 1

1

0 0 0

1 1

0

0

0

1 1

1 1

1 1

1 1

1

1 1

1

0

0

0

B1 B

2 B

3 B

4

1 0 0

0

1

1

1 1

1

1

1

1

0

1 1

1

0 0 1

0 1

1

1

1

1 1

0 0

1 0

0 0

1

1 1

0

1

1

1

B5 B

6 B

7 B

8

Gambar 7.31 Contoh 8 elemen penstruktur

untuk melakukan operasi thinning

Page 49: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 257

Contoh delapan elemen penstruktur yang digunakan untuk thinning

ditunjukkan pada Gambar 7.28 (Meyer dan Weeks, 1993). Fase pertama operasi

thinning dilakukan sebagai berikut:

A B = ((((((((A B1) B2) B3) B4) B5) B6) B7) B8) (7.21)

Implementasi thinning ditunjukkan berikut ini.

Program : thinning.m

function G = thinning(F, fase)

% THINNING Untuk melakukan operasi thinning terhadap citra F

% Argumen fase menentukan hasil thinning untuk

% fase tersebut. Jika fase tidak disebutkaan,

% operasi thinning dilakukan sampai cstruktur citra

% tidak berubah lagi

if nargin == 1 % Kalau fase tidak disebutkan

fase = 1000000000; % Isi dengan bilangan yang besar

end

% Elemen penstruktur

H1 = [ 0 0 0; 1 1 1; 1 1 1 ];

H2 = [ 1 1 1; 1 1 1; 0 0 0 ];

H3 = [ 0 1 1; 0 1 1; 0 1 1 ];

H4 = [ 1 1 0; 1 1 0; 1 1 0 ];

H5 = [ 1 0 0; 1 1 0; 1 1 1 ];

H6 = [ 1 1 1; 0 1 1; 0 0 1 ];

H7 = [ 1 1 1; 1 1 0; 1 0 0 ];

H8 = [ 0 0 1; 0 1 1; 1 1 1 ];

[tinggi, lebar] = size(F);

C = F;

for p = 1 : fase

C1 = C;

C = and(C, not(thm(C,H1)));

C = and(C, not(thm(C,H2)));

C = and(C, not(thm(C,H3)));

C = and(C, not(thm(C,H4)));

C = and(C, not(thm(C,H5)));

C = and(C, not(thm(C,H6)));

C = and(C, not(thm(C,H7)));

C = and(C, not(thm(C,H8)));

% Periksa hasil C1 dan C sama atau tidak

sama = true;

Page 50: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

258 Pengolahan Citra, Teori dan Aplikasi

for baris = 1 : tinggi

for kolom = 1 : lebar

if C1(baris, kolom) ~= C(baris, kolom)

sama = false;

break;

end

end

if sama == false

break;

end

end

if sama == true

break; % Akhiri kalang

end

end

G = C;

Akhir Program

Contoh penggunaan fungsi thinning:

>> F = im2bw(imread('C:\Image\bentuk.png'), 0.5);

>> G = thinning(F); imshow(G)

Hasilnya ditunjukkan pada Gambar 7.32.

(a) Berbagai bentuk objek (b) Skeleton morfologi

Gambar 7.32 Citra yang berisi berbagai bentuk dan

hasil akhir setelah mengalami operasi thinning

Page 51: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 259

Adapun contoh berikut menunjukkan pengenaan elemen penstruktur untuk

fase kedua:

>> G = thinning(F,2); imshow(G)

Hasilnya ditunjukkan pada Gambar 7.33(a). Hasil fase keenam diperoleh dengan

menggunakan perintah berikut:

>> G = thinning(F,6); imshow(G)

Hasilnya ditunjukkan pada Gambar 7.33(b).

Gambar 7.33 Hasil thinning pada berbagai fase

Page 52: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

260 Pengolahan Citra, Teori dan Aplikasi

Skeleton juga dapat diperoleh melalui morfologi, seperti yang diajukan

oleh Serra (1982). Definisi skeleton dijelaskan berikut ini. Misalnya, A

menyatakan citra biner dengan 1 menyatakan piksel objek dan 0 menyatakan

piksel-piksel latarbelakang. Skeleton A diperoleh dengan menggunakan rumus:

𝑆(𝐴) = ⋃ 𝑆𝑘(𝐴)𝐾𝑘=0 (7.22)

Dalam hal ini,

𝑆𝑘(𝐴) = (𝐴 𝑘𝐵 − (𝐴 𝑘𝐵) 𝐵 (7.23)

B adalah elemen penstruktur dan K adalah bilangan terbesar sebelum membuat A

tererosi menjadi himpunan kosong. Kondisi pada K tersebut dapat ditulis secara

matematis seperti berikut:

𝐾 = max(𝑘|𝐴 𝑘𝐵 ≠ ∅) (7.24)

Perlu diketahui,

𝐴 𝑘𝐵 = (((𝐴 𝐵) 𝐵)… ) 𝐵 (7.25)

yang menyatakan bahwa hasil erosi dierosi ulang sampai terjadi k erosi.

Contoh yang menunjukkan proses pembuatan skeleton suatu objek dengan

cara di atas ditunjukkan pada Gambar 7.36. Pada contoh tersebut, S2(A) berupa

himpunan kosong mengingat semua elemen bernilai nol. Dengan demikian, K = 1

atau S(A) = S1(A).

Page 53: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 261

1

0

1 1

1

1 1 1

1 1

0

0

0 0

1

0 0 1

0 0

0 0

0

0 0

0

1

0 0 1

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0

0 0 0

0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 0 0 0

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0

0 0 0

0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

A

B

A B (A B) B

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0

0 0 0

0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0

0

0 0

0

0 0 0

0 0

0 0

0

0 0

0

0

0 0 0

0 0 0

0 0

0

0 0 0

0

0 0 0

0 0

0

0 0 0

0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

S1(A) = (A B) - (A B) B S2(A)

0

0

1 1

1

0 1 1

0 1

1 0

0

1 0

1

1

0 1 1

0 1 0

1 1

1

0 0 0

0

0 0 0

0 0

0

1 1 0

0 0

0 1 1 1

1

1 1 1 0

0 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Gambar 7.34 Skeleton secara morfologis

Namun, cara seperti itu tidak menjamin terjadinya skeleton yang titik-titiknya

terkoneksi. Hal ini telah diutarakan oleh Gonzalez dan Woods (2002).

Di Octave dan MATLAB, skeleton dapat diperoleh dengan menggunakan

fungsi bwmorph. Contoh:

>> Img = imread('C:\Image\bentuk.png');

Page 54: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

262 Pengolahan Citra, Teori dan Aplikasi

>> Img = im2bw(Img, 0.5);

>> G = bwmorph(Img, 'skel', inf);

>> imshow(G)

Perlu diketahui, im2bw digunakan untuk memperoleh citra biner. Setelah itu, Img

dapat diproses oleh bwmorph. Argumen ‘skel’ menyatakan bahwa hasil yang

diharapkan adalah skeleton. Argumen inf menyatakan nilai yang tak berhingga,

yang digunakan untuk menyatakan jumlah pengulangan maksimal dalam

membentuk skeleton. Hasil operasi di depan ditunjukkan pada Gambar 7.35.

Gambar 7.35 Hasil bwmorph untuk memperoleh skeleton

Page 55: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 263

7.10 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) (7.26)

Dalam hal ini, 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.

1 1 1

0

0

1

0 0

0

1

0

0 0 0

0

1 1 1

0 0

1

1

1

0 0

0 0

0 0

0 0

0

0 0

0

1

2 1

1

B1 B

2 B

3 B

4

0 1 1

1

0

1

0 0

0

1

0

0

0

0 0

0

1 1 0

1 0

0

0

0

0 0

1 1

0 1

1 1

0

0 0

1

0

0

0

B5 B

6 B

7 B

8

Gambar 7.36 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) (7.27)

Implementasi thickening ditunjukkan berikut ini.

Page 56: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

264 Pengolahan Citra, Teori dan Aplikasi

Program : thickening.m

function G = thickening(F, n_iterasi)

% THICKENING Digunakan untuk menebalkan objek yang terdapat pada

% citra F.

% Argumen n_iterasi menyatakan jumlah iterasi atau

% fase yang dikehendaki untuk melakukan

% penebalan objek'

H1 = [ 1 1 1; 0 0 0; 0 0 0 ];

H2 = [ 0 0 0; 0 0 0; 1 1 1 ];

H3 = [ 1 0 0; 1 0 0; 1 0 0 ];

H4 = [ 0 0 1; 0 0 1; 0 0 1 ];

H5 = [ 0 1 1; 0 0 1; 0 0 0 ];

H6 = [ 0 0 0; 1 0 0; 1 1 0 ];

H7 = [ 0 0 0; 0 0 1; 0 1 1 ];

H8 = [ 1 1 0; 1 0 0; 0 0 0 ];

C = F; % Salin citra F ke C

for p = 1 : n_iterasi

C = or(C, thm(C,H1));

C = or(C, thm(C,H2));

C = or(C, thm(C,H3));

C = or(C, thm(C,H4));

C = or(C, thm(C,H5));

C = or(C, thm(C,H6));

C = or(C, thm(C,H7));

C = or(C, thm(C,H8));

end

G = C;

Akhir Program

Contoh

>> F = imread(’C:\Image\morfo.png’);

>> G = thickening(F,1); imshow(G)

Hasil untuk berbagai fase ditunjukkan pada Gambar 7.37.

Page 57: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 265

Gambar 7.37 Contoh operasi thickening

7.11 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,

Hal seperti itu kadang diperlukan untuk kepentingan mengenali objek, dengan

menghilangkan tepian objek yang cekung.

Page 58: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

266 Pengolahan Citra, Teori dan Aplikasi

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.

B1 B

2 B

3 B

4

1 x x

x

1

1

x x

1

1

0

1 1 1

x

x x x

x 0

x

x

x

x 1

x 1

0 1

x x

0

1 1

x

x

2 x

1

Gambar 7.38 Empat elemen penstruktur untuk membentuk convex hull

Pada contoh di atas, x menyatakan “don’t care”.

Langkah awal untuk melakukan perhitungan convex hull dilaksanakan

dengan memberikan X01 = A, dengan A adalah citra yang akan diproses.

Selanjutnya, dilakukan perhitungan sebagai berikut:

𝑋𝑘𝑖 = 𝑡ℎ𝑚(𝑋𝑘−1, 𝐵𝑖) ∪ 𝐴 𝑖 = 1,2,3,4 𝑑𝑎𝑛 𝑘 = 1,2,3, … (7.28)

Konvergensi tercapai ketika 𝑋𝑘𝑖 = 𝑋𝑘−1

𝑖 . Nah, bila Di = 𝑋𝑘𝑜𝑛𝑣𝑒𝑟𝑔𝑒𝑛𝑖 , convex hull A

berupa

𝐶(𝐴) = ⋃ 𝐷𝑖4𝑖=1 (7.29)

Contoh untuk memperoleh convex hull ditunjukkan pada Gambar 7.39.

Pada contoh tersebut, hasil setelah konvergen untuk 𝑋𝑘𝑖 , 𝑋𝑘

𝑖 , 𝑋𝑘𝑖 , 𝑋𝑘

𝑖 diperlihatkan.

Page 59: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 267

A

0

0

0

0 0

1

0 1 1

0 0

0 0

0

0 0

0

1

0 0 1

0 1 1

1 1

0

0 0 0

0

1 0 0

0 0

0

0 0 0

1 0

0 0 1 1 1 1 1 0

0 0 0 0 1 1 1 0

0 0 0 0 1 0 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

𝑋𝑘𝑜𝑛𝑣 =31

0

0

0

0 0

1

0 1 1

0 0

0 0

0

1 0

0

1

0 0 1

0 1 1

1 1

1

0 0 0

0

1 0 0

0 0

0

1 1 1

1 1

0 0 1 1 1 1 1 1

0 0 0 0 1 1 1 0

0 0 0 0 1 0 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

𝑋𝑘𝑜𝑛𝑣 =12

0

0

0

0 0

1

0 1 1

0 0

0 0

0

0 0

0

1

0 0 1

0 1 1

1 1

0

0 0 0

0

1 0 0

0 0

0

0 0 0

1 0

0 0 1 1 1 1 1 0

0 0 0 1 1 1 1 0

0 0 0 0 1 1 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

0

0

0

0 0

1

0 1 1

0 0

0 0

0

0 0

0

1

0 1 1

0 1 1

1 1

0

0 0 0

0

1 0 0

0 0

0

1 0 0

1 0

0 0 1 1 1 1 1 0

0 0 0 1 1 1 1 0

0 0 0 0 1 0 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

𝑋𝑘𝑜𝑛𝑣 =23

0

0

0

0 0

1

0 1 1

0 0

1 0

1

1 1

1

1

0 0 1

0 1 1

1 1

1

0 0 0

0

1 0 0

0 0

0

1 0 0

1 0

0 0 1 1 1 1 1 0

0 0 0 0 1 1 1 0

0 0 0 0 1 0 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

0

0

0

0 0

1

0 1 1

0 0

1 0

1

1 1

1

1

0 1 1

1 1 1

1 1

1

0 0 0

0

1 0 0

0 0

0

1 1 0

1 0

0 1 1 1 1 1 1 1

0 0 0 1 1 1 1 0

0 0 0 0 1 1 0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0

𝑋𝑘𝑜𝑛𝑣 =44 𝐶(𝐴)

Gambar 7.39 Proses pembentukan convex hull

Page 60: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

268 Pengolahan Citra, Teori dan Aplikasi

Implementasi pembentukan convex hull dituangkan pada fungsi bernama

convhull, dengan kode sebagai berikut.

Program : convhull.m

function G = convhull(A)

% CONVHULL Untuk melakukan operasi convex hull terhadap citra A

% dengan menggunakan 4 elemen penstruktur

% G = Convex hull

[tinggi, lebar] = size(A);

% Elemen penstruktur

H1 = [ 1 -1 -1; 1 0 -1; 1 -1 -1 ];

H2 = [ 1 1 1; -1 0 -1; -1 -1 -1 ];

H3 = [ -1 -1 1; -1 0 1; -1 -1 1 ];

H4 = [ -1 -1 -1; -1 0 -1; 1 1 1 ];

C = zeros(tinggi, lebar);

C = or(C, chull(A, H1));

C = or(C, chull(A, H2));

C = or(C, chull(A, H3));

C = or(C, chull(A, H4));

G = C;

function [G, k] = chull(A, B)

% A = Citra

% B = elemen penstruktur

% G = Hasil yang konvergen

% k = iterasi hingga korvergen

[tinggi, lebar] = size(A);

k=1;

Ckmin1 = A;

while (true)

Ck = or(Ckmin1, thm2(Ckmin1,B));

% Cek Ckmin1 apa sama dengan Ck

sama = true;

for baris = 1 : tinggi

for kolom = 1 : lebar

if Ckmin1(baris, kolom) ~= Ck(baris, kolom)

sama = false;

break;

end

end

if sama == false

Page 61: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 269

break;

end

end

if sama == true

break; % Berarti sudah konvergen

end

% Ke iterasi berikutnya

k = k + 1;

Ckmin1 = Ck;

end

k = k-1;

G = Ckmin1;

Akhir Program

Contoh penggunaan fungsi convhull:

>> Garpu = im2bw(imread('C:\image\fork-3.png'), 0.5);

>> G = convhull(Garpu); imshow(G)

Hasilnya ditunjukkan pada Gambar 7.40(b).

Gambar 7.40(c) menunjukkan keadaan yang dinamakan defisiensi konveks.

Defisiensi konveks menyatakan selisih antara convex hull dan citra asli. Hasil

tersebut diperoleh melalui:

>> imshow(G – Garpu)

(a) Citra fork-3.png (b) Convex hull (c) Convex hull – Citra asli

Gambar 7.40 Hasil convex hull dan defisiensi konveks

Bentuk convex hull dapat diubah agar tidak berbentuk kotak. Sebagai

contoh, terdapat delapan elemen penstruktur seperti terlihat pada Gambar 7.41.

Page 62: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

270 Pengolahan Citra, Teori dan Aplikasi

1

1

1

x x

1 x

0 x

x x

0

1 1

1

x

2 x

1

B1 B

2 B

3 B

4

B5 B

6 B

7 B

8

1 1 1

x

x

1

x x

1

1

0

1 1 x

x

1 x x

1 0

x

x

x

1 1

x 1

0 1

1 1

0

x x

x

1

1

x

x

0

x 1

1

x 1 1

x 0

x x x

1

1

1

1 1

x

1

0

Gambar 7.41 Contoh 8 elemen penstruktur

untuk melakukan operasi convex hull

Dengan menggunakan delapan elemen penstruktur tersebut, diperoleh hasil seperti

terlihat pada Gambar 7.42.

(a) Convex hull (b) Convex hull – Citra asli

Gambar 7.42 Convex hull dan defisiensi konveks yang melibatkan

delapan elemen penstruktur

7.12 Morfologi Aras Keabuan

Sejauh ini, pembicaraan mengenai morfologi terbatas pada citra biner.

Sesungguhnya, morfologi juga dapat dikenakan pada citra beraras keabuan.

Namun, tentu saja terdapat perbedaan dalam melakukan operasi morfologi ini.

Beberapa operasi morfologi untuk citra beraras keabuan dibahas di subbab ini.

Page 63: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 271

7.12.1 Dilasi Beraras Keabuan

Dilasi pada aras keabuan didefinisikan sebagai berikut (Gonzalez &

Woods, 2002):

(𝐴 𝑔 𝐵)(𝑢, 𝑣) = 𝑚𝑎𝑥(𝑖,𝑗)∈𝐻(A(u-i,v-j)+B(i,j)) (7.30)

dengan A adalah citra dan B adalah elemen penstruktur. Jadi, nilai yang dihasilkan

berupa nilai terbesar antara A+B, dengan proses penambahan dilakukan seperti

yang terjadi pada konvolusi citra. Simbol g sesudah tanda menyatakan bahwa

operasi dilasi tersebut berlaku untuk citra beraras keabuan.

Ilustrasi dilasi beraras keabuan dapat dilihat pada Gambar 7.43. Pada

contoh tersebut, nilai terbesar A+B adalah 25. Nilai tersebut dijadikan sebagai

nilai dalam A g B.

25

1 3 8

6

5 9 4

2 7

A (Citra) B

Himpunan hasil

11+4 12+9 13+5

16+2

17+8 18+3 19+1

1

14+6 15+7

Diputar

180o

+

Terbesar =

25

Hasil

11 12 13

16

17 18 19

14 15

4 9 5

2

8 3 1

6 7

Gambar 7.43 Contoh penentuan nilai dalam dilasi beraras keabuan

Page 64: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

272 Pengolahan Citra, Teori dan Aplikasi

Implementasi dilasi dapat dilihat pada program berikut.

Program : gdilasi.m

function G = gdilasi(F, H, hotx, hoty)

% GDILASI Berguna untuk melaksanakan operasi dilasi pada

% citra beraras keabuan.

% 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

G = zeros(tf, lf); % Nolkan semua pada hasil dilasi

% Memproses dilasi

for baris = 1 : tf

for kolom = 1 : lf

terbesar = 0;

for p=1:th

for q=1:lh

ypos = baris - (p - hoty);

xpos = kolom - (q - hotx);

if (xpos >= 1) && (xpos <= lf) && ...

(ypos >= 1) && (ypos <= tf)

nilai = F(ypos, xpos) + H(p, q);

if terbesar < nilai

terbesar = nilai;

end

end

end

end

% Potong nilai terbesar kalau melebihi 255

if terbesar > 255

terbesar = 255;

end

% Berikan nilai terbesar ke G

G(baris, kolom) = terbesar;

end

end

Page 65: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 273

G = uint8(G);

Akhir Program

Pada contoh di atas, fungsi uint8 digunakan untuk memastikan bahwa hasil

perhitungan dilasi berkisar antara 0 sampai dengan 255.

Contoh berikut menunjukkan penggunaan fungsi gdilasi yang

dikenakan pada citra mandrill.png dengan menggunakan elemen penstruktur

berukuran 9x9 dengan bentuk cakram.

>> Img = imread('C:\Image\mandrill.png');

>> H = [

0 0 1 1 1 1 1 0 0

0 1 1 1 1 1 1 1 0

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1 0

0 0 1 1 1 1 1 0 0 ];

>> G = gdilasi(Img, H); imshow(G)

Hasilnya dapat dilihat pada Gambar 7.44.

Page 66: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

274 Pengolahan Citra, Teori dan Aplikasi

(a) Citra mandrill.png (b) Dilasi dengan elemen struktur

berukuran 3x3 dan seluruhnya

bernilai 0

(c) Dilasi dengan elemen struktur

berukuran 3x3 dan seluruhnya

bernilai 1

(d) Dilasi dengan elemen struktur

berukuran 9x9 dan berbentuk bola

Gambar 7.44 Efek dilasi pada citra beraras keabuan

7.12.2 Erosi Beraras Keabuan

Erosi pada citra beraras keabuan didefinisikan sebagai berikut:

(𝐴 𝑔 𝐵)(𝑢, 𝑣) = 𝑚𝑖𝑛(𝑖,𝑗)∈𝐻(A(u+i,v+j)-B(i,j)) (7.31)

dengan A adalah citra dan B adalah elemen penstruktur. Simbol g sesudah tanda

menyatakan bahwa operasi dilasi tersebut berlaku untuk citra beraras keabuan.

Page 67: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 275

Jadi, nilai yang dihasilkan berupa nilai terkecil antara A-B. Contoh perhitungan

erosi ditunjukkan pada Gambar 7.45.

5

11 12 13

16

17 18 19

14 15

1 3 8

6

5 9 4

2 7

A (Citra) B

Himpunan hasil

11-2 12-3 13-8

16-6

17-5 18-9 19-4

1

14-2 15-7

Terkecil = 5

Hasil

Gambar 7.45 Contoh penentuan nilai dalam erosi beraras keabuan

Implementasi erosi pada citra beraras keabuan diwujudkankan dengan

fungsi bernama gerosi. Kodenya seperti berikut.

Program : gerosi.m

function G = gerosi(F, H, hotx, hoty)

% GEROSI Berguna untuk melaksanakan operasi dilasi

% citra beraras keabuan.

% Masukan:

% F = citra yang akan dikenai erosi

% 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

Page 68: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

276 Pengolahan Citra, Teori dan Aplikasi

G = zeros(tf, lf); % Nolkan semua pada hasil erosi

% Memproses erosi

for baris = 1 : tf

for kolom = 1 : lf

terkecil = 255;

for p=1:th

for q=1:lh

ypos = baris + p - hoty;

xpos = kolom + q - hotx;

if (xpos >= 1) && (xpos <= lf) && ...

(ypos >= 1) && (ypos <= tf)

nilai = F(ypos, xpos) + H(p, q);

if terkecil > nilai

terkecil = nilai;

end

end

end

end

% Berikan nilai ke G

if terkecil < 0

terkecil = 0;

end

G(baris, kolom) = terkecil;

end

end

G = uint8(G);

Akhir Program

Contoh penggunaan gerosi seperti berikut:

>> Img = imread('C:\Image\mandrill.png');

>> H = [

0 0 1 1 1 1 1 0 0

0 1 1 1 1 1 1 1 0

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1 0

Page 69: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 277

0 0 1 1 1 1 1 0 0 ];

>> G = gerosi(Img, H); imshow(G)

Hasilnya dapat dilihat pada Gambar 7.46.

(a) ) Citra mandrill.tif (b) Erosi dengan elemen penstruktur

berukuran 3x3 dan seluruhnya

bernilai 0

(c) Erosi dengan elemen struktur

berukuran 3x3 dan

seluruhnya bernilai 1

(d) Erosi dengan elemen struktur

berukuran 9x9 dan berbentuk

bola

Gambar 7.46 Efek erosi pada citra beraras keabuan

Page 70: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

278 Pengolahan Citra, Teori dan Aplikasi

Aplikasi erosi dan dilasi pada citra beraras keabuan adalah untuk

memperoleh gradien morfologis. Dalam hal ini, gradien morfologis diperoleh

dengan melakukan pengurangan hasil dilasi dengan nilai hasil erosi. Contoh:

>> Img = imread('C:\Image\boneka.png');

>> X = gdilasi(Img, ones(3));

>> Y = gerosi(Img, ones(3));

>> imshow(X-Y)

Hasilnya dapat dilihat pada Gambar 7.47(d). Adapun hasil pemrosesan dilasi dan

erosi secara berturutan dapat dilihat pada Gambar 7.47(b) dan 7.47(c).

(a) Citra boneka.png (b) Dilasi dengan elemen struktur

berukuran 3x3 dan seluruhnya

bernilai 1

(c) Erosi dengan elemen struktur

berukuran 3x3 dan seluruhnya

bernilai 1

(d) Hasil dilasi – hasil erosi

Gambar 7.47 Gradien morofologis melalui pengurangan dilasi

dengan erosi pada citra beraras keabuan

Page 71: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 279

7.12.3 Opening dan Closing

Secara prinsip, operasi opening dan closing pada citra beraras keabuan

serupa pada citra biner. Definisinya sebagai berikut.

Opening: A g B = (A g B) g B (7.32)

Closing: A g B = (A g B) g B (7.33)

Contoh perbedaan hasil operasi opening dan closing pada citra beraras

keabuan dapat dilihat pada Gambar 7.48. Terlihat bahwa operasi opening

berkecenderungan menghilangkan bagian yang cerah tetapi berukuran kecil

(perhatikan pada bagian mata pada hasil opening). Adapun operasi closing

mempertahankan objek kecil yang berwarna terang.

Gambar 7.48 Operasi opening dan closing pada citra beraras keabuan

menggunakan elemen penstruktur 5x5 yang seluruhnya bernilai 0

Page 72: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

280 Pengolahan Citra, Teori dan Aplikasi

Untuk kepentingan kemudahan dalam mencoba operasi opening pada citra

berskala keabuan, dapat digunakan fungsi bernama gopening. Kodenya sebagai

berikut.

Program : gopening.m

function G = gopening(F, H)

% GOPENING berguna untuk melaksanakan operasi opening

% citra beraras keabuan

% Masukan:

% F = citra yang akan dikenai erosi

% H = elemen pentruksur

G = gdilasi(gerosi(F, H), H);

Akhir Program

Untuk kepentingan kemudahan dalam mencoba operasi closing pada citra

berskala keabuan, dapat digunakan fungsi bernama gclosing. Kodenya sebagai

berikut.

Program : gclosing.m

function G = gclosing(F, H)

% GCLOSING Berguna untuk melaksanakan operasi closing

% citra beraras keabuan.

% Masukan:

% F = citra yang akan dikenai erosi

% H = elemen pentruksur

G = gerosi(gdilasi(F, H), H);

Akhir Program

Page 73: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 281

Contoh berikut menunjukkan penggunaan gopening:

>> Img = imread('C:\Image\lena256.png');

>> G = gopening(Img, ones(5));

>> imshow(G)

Adapun contoh berikut menunjukkan penggunaan gclosing:

>> Img = imread('C:\Image\lena256.png');

>> G = gclosing(Img, ones(5));

>> imshow(G)

7.13 Transformasi Top-Hat

Transformasi Top-Hat didefinisikan sebagai perbedaan antara citra dan

citra setelah mengalami operasi opening (Solomon & Breckon, 2011) atau dapat

disajikan secara matematis seperti berikut:

TTH(A, B) = A - (A g B) (7.34)

Pada rumus di atas, A menyatakan citra dan B sebagai elemen penstruktur. Simbol

g menyatakan bahwa operasi tersebut berlaku untuk citra beraras keabuan.

Transformasi ini berguna untuk mendapatkan bentuk global suatu objek

yang mempunyai intensitas yang bervariasi. Sebagai contoh, perhatikan Gambar

7.49(a). Pada citra tersebut, butiran-butiran nasi memiliki intensitas yang tidak

seragam. Melalui opening, diperoleh hasil seperti terlihat pada Gambar 7.49(b).

Hasil transformasi Top-Hat ditunjukkan pada Gambar 7.49(c). Perhatikan bahwa

hasil butiran nasi pada Gambar 7.49(c) terlihat memiliki intensitas yang lebih

seragam dibandingkan pada citra asal.

Page 74: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

282 Pengolahan Citra, Teori dan Aplikasi

(a) Citra rice.png (b) Hasil Opening (c) ) Hasil Top-Hat

Gambar 7.49 Transformasi Top-Hat menggunakan elemen penstruktur

berukuran 9x9 berbentuk cakram

Pada contoh berikut, TH menyatakan hasil transformasi Top-Hat:

>> Img = imread('C:\Image\rice.png');

>> H = [

0 0 1 1 1 1 1 0 0

0 1 1 1 1 1 1 1 0

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1 0

0 0 1 1 1 1 1 0 0 ];

>> G = gopening(Img, H);

>> TH = Img - G;

>> imshow(TH)

File rice.png tidak disediakan di CD yang disertakan

bersama buku. File tersebut adalah milik MATLAB.

Hasil transformasi Top-Hat pada contoh seperti di atas akan menghasilkan

citra biner yang lebih baik daripada kalau citra biner diperoleh secara langsung

Page 75: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 283

dari citra asal. Sebagai gambaran, Gambar 7.50 memberikan contoh hasil konversi

ke citra biner menggunakan citra rice.png dan hasil konversi citra biner

menggunakan hasil transformasi Top-Hat.

(a) Citra rice.png (b) ) Konversi citra biner

melalui rice.png secara

langsung

(c) Konversi citra biner

melalui hasil Top-Hat

Gambar 7.50 Efek transformasi Top-Hat untuk memperoleh citra biner

Perhatikan bahwa jumlah butir padi pada Gambar 7.50(c) bagian bawah lebih

banyak daripada pada Gambar 7.50(b).

7.14 Transformasi Bottom-Hat

Transformasi Bottom-Hat didefinisikan sebagai berikut:

TBH(A, B) = (A g B) - A (7.35)

Secara prinsip, operasi ini memperbesar warna putih melalui dilasi, diikuti

dengan pengecilan warna putih melalui erosi dan kemudian dikurangi dengan citra

asal. Dilasi yang diikuti dengan erosi memberikan efek berupa objek-objek yang

berdekatan menjadi semakin dekat. Pengurangan oleh citra asal membuat

penghubung antarobjek menjadi hasil yang tersisa. Dengan kata lain, hasil yang

tersisa adalah piksel-piksel yang digunakan untuk mengisi “lubang”, atau

“penghubung objek”.

Page 76: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

284 Pengolahan Citra, Teori dan Aplikasi

1. Terdapat dua buah himpunan seperti berikut:

A = {(1,1), (1,2), (2,1), (2,3), (2,1)}

B = {(1,1), (1,3), (2,2), (2,3), (3,1)}

Berapa hasil operasi berikut?

(a) A B

(b) A B

2. Perhatikan gambar berikut:

0 0 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 0 0

0 0

0

(a) Bagaimana bentuk komplemen citra tersebut?

(b) Bagaimana bentuk refleksinya?

3. Jelaskan kegunaan operasi dilasi.

4. Perhatikan citra berikut:

0 0 0

1

0 1 1

0 1

0 0

0

1 0

0

1

0 1 0

0 0 0

0 0

0

Latihan

Page 77: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

Morfologi untuk Pengolahan Citra 285

Perlihatkan hasilnya jika dikenai operasi dilasi dengan elemen penstruktur

seperti berikut?

1 1

Dalam hal ini, yang diarsir adalah hotspot.

Hitung soal di atas secara manual dan kemudian bandingkan dengan hasil

kalau menggunakan fungsi bernama erosi.

Bagaimana hasilnya kalau hotspot justru terletak yang kanan? Lakukan secara

manual dan juga melalui komputasi dengan fungsi erosi.

5. Jelaskan bahwa hasil operasi erosi sebenarnya menyatakan letak elemen

penstruktur di dalam citra yang dikenai operasi tersebut.

6. Jelaskan hubungan operasi berikut terhadap operasi dilasi dan erosi:

(a) operasi opening

(b) operasi closing

7. Operasi opening sering dikatakan idempotent. Apa maksudnya?

8. Jelaskan kegunaan operasi thinning?

9. Cobalah memodifikasi operasi pada thinning.m dengan menggunakan elemen

penstruktur seperti berikut:

Page 78: BAB 7 · PDF file210 Pengolahan Citra, Teori dan Aplikasi 7.1 Pengertian Operasi Morfologi ... himpunan seperti interseksi dan gabungan mutlak diperlukan. Selain itu,

286 Pengolahan Citra, Teori dan Aplikasi

0 0 0

1

1

1

1 1

1

1

1

1 0 0

1

1 1 1

1 1

1

1

1

1 0

1 0

1 0

1 1

1

1 0

1

1

0

0

B1 B

2 B

3 B

4

1 1 1

1

0

1

0 0

1

1

1

1

0

1 1

1

0 0 1

0 1

0

0

0

1 1

1 1

1 1

0 0

1

1 1

0

1

1

1

B5 B

6 B

7 B

8

Kenakan pada citra bentuk.png. Perhatikan bahwa elemen-elemen

penstruktur di atas sama dengan elemen-elemen penstruktur pada contoh

di depan, tetapi letaknya dipertukarkan. Bandingkan hasilnya dengan

contoh pada Gambar 7.32.

10. Cobalah untuk mengimplementasikan convex hull yang melibatkan delapan

elemen penstruktur.

11. Buatlah fungsi bernama tth yang berguna untuk melaksanakan operasi

transformasi Top-Hat. Lalu, ujilah fungsi tersebut untuk menapis rice.png.