Anda di halaman 1dari 7

Modu

9 Morfologi Citra
1. Tujuan :
- Mahasiswa memahami konsep operasi morfologi seperti
operasi dilasi, erosi, opening dan closing.
- Mahasiswa mengenal perintah matlab yaitu
erote,imdilate,

2. Teori :
Operasi morfologi merupakan operasi yang umum
dikenakan pada citra biner (hitam-putih) untuk mengubah
struktur bentuk objek yang terkandung dalam citra.
Perhatikan contoh berikut:

Gambar 9.1 Tulang daun dapat dianggap sebagai daun

Dari gambar 9.1 dapat terlihat bahwa daun pada


gambar sebelumnya memiliki lubang yang merupakan
tulang dari daun, dengan menggunakan operasi morfologi
lubang tersebut dapat ditutup seperti gambar daun
disebelahnya.
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 9.2. 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 9.3.

Gambar 9.2 Contoh beberapa kernel

Gambar 9.3 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.

Operasi dilasi biasa dipakai untuk mendapatkan efek


pelebaran terhadap piksel yang bernilai 1. Operasi ini
dirumuskan seperti berikut (Gonzales & Woods, 2002):
AB= { z [ ( B^ ) A ] A }
z (9.1)

Dalam hal ini,


^
a) B={ ww=b , untuk b B }
b) ( B )z ={ cc=a+ z ,untuk aA }
c) z=(z1, z2)

3. Praktikum
Dilasi
Skrip operasi dilasi sebagai berikut:
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;
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

hasil yang diperoleh apabila citra A dikenakan kernel H


seperti berikut ini:
A = [ 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];
H = [0 1 0; 1 1 1; 0 1 0];
B = dilasi(A,H);

Citra baru B :

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

Berikut adalah contoh skrip penggunaan fungsi histeq:

img = imread('bunga.tif');
im = rgb2gray(img);
i = histeq(im);
subplot(2,3,1);imshow(img);
subplot(2,3,2);imshow(im);
subplot(2,3,3);imshow(i);
subplot(2,3,5);imhist(im);
subplot(2,3,6);imhist(i)

strel
Perintah SE = strel(shape, parameters) membuat structuring
element dengan bentuk sesuatu dengan parameter shape
dan parameter lainya.

Fungsi strell dalam matlab terdapat 10 parameter bentuk


dari strell, yang pertama adalah arbitrary, dengan
parameter ini bentuk structuring element yang dibuat akan
mengikuti matriks biner yang dibuat oleh pengguna,
parameter berikutnya adalah ball, diamond, disk, line,
octagon, pair, periodic line, rectangle, dan square yang
menghasilkan bentuk structuring element berupa bentuk
bola, belah ketupat, piringan, garis, oktagon, titik yang
berpasangan, garis yang berulang, persegi panjang, dan
persegi.

imdilate
fungsi imdilate digunakan umtuk melakukan dilasi dengan
structuring element yang dibuat menggunakan fungsi strell.

IM merupakan citra yang ingin di dilasi denganstructuring


element adalah
SE, imdilate mampu melakukan dilasi pada citra biner dan
juga citra grayscale.

Bravo = imread('bravo.png');
BW = im2bw(Bravo, 0.5);
H = ones(4);
subplot(3,1,1);imshow(Bravo);
subplot(3,1,2);imshow(BW);
subplot(3,1,3);imshow(dilasi(BW, H));

hasil running skrip diatas sbb

Bravo = imread('bravo.png');
BW = im2bw(Bravo, 0.5);
SE = strel('disk',8);
H = imdilate(BW, SE);
subplot(3,1,1);imshow(Bravo);
subplot(3,1,2);imshow(BW);
subplot(3,1,3);imshow(H);

hasil running skrip sbb:

Anda mungkin juga menyukai