• Tidak ada hasil yang ditemukan

b75cc sessi 7 morfologi untuk pengolahan citra

N/A
N/A
Protected

Academic year: 2017

Membagikan "b75cc sessi 7 morfologi untuk pengolahan citra"

Copied!
44
0
0

Teks penuh

(1)

MORFOLOGI UNTUK PENGOLA

HAN CITRA

(2)

Pengertian Operasi Morfologi

Operasi morfologi merupakan operasi yang umum dik

enakan pada citra biner (hitam-putih) untuk menguba

h struktur bentuk objek yang terkandung dalam citra

.

Operasi morfologi :  Erosi (Erosion)  Dilasi (Dilation)

 Operasi Gabungan (Compound Operations)

Beberapa manfaat dari aplikasi morfologi adalah sebagai berikut.

Memisahkan objek yang saling berhimpitan.

(3)

manfaat dari aplikasi morfologi

Remove Noise

Small Object

(4)

manfaat dari aplikasi morfologi

(5)

Inti operasi morfologi melibatkan dua larik piksel. Larik pertama berupa citra

yang akan dikenai operasi morfologi, sedangkan larik kedua dinamakan

seba-gai kernel atau structuring element (strel) (Shih, 2009).

Operasi strel terhadap citra

(6)

Teori Himpunan

Misalkan, terdapat himpunan A yang berada di dalam bidang Z

2

(berdimensi dua). Apa

bila

a=(a

1

, a

2

)

adalah suatu elemen atau anggota di dalam

A

,

a

dapat ditulis menjadi

 

 

Arti notasi di atas,

a

adalah anggota himpunan

A

. kebalikannya, jika

a

bukan anggota

himpunan

A

,

a

ditulis seperti berikut:

 

 

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 ditul

iskan fakta berikut:

(7)

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

ngan 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 angg

ota himpunan A, dikatakan bahwa B adalah

subhimpunan

A. Notasi yang biasa digu

nakan untuk kepentingan ini:

 

(8)

Union himpunan A dan B,dinyatakan dengan C = A∪B, adalah hi

mpunan dari semua elemen anggota A, B, atau keduanya

(9)

Irisan A dan B, dinyatakan dengan

C = A

 

B

adalah himpunan dari semua elem

en yang merupakan anggota A dan B.

(10)

Komplemen himpunan A adalah himpunan elemen yang bukan anggota A

A

c

=

{

w | w

 A

}

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

Komplemen atau juga disebut inversi dapat dibayangkan seperti saling menukarka

n warna hitam dan putih

(11)

Operasi selisih dua himpunan dapat ditulis seperti berikut:

A – B =

{

w | w

A, w

B

}

= A

B

c

Contoh menunjukkan bahwa A – B

B – A.

(12)

Refleksi

B dinotasikan dengan dan didefinisikan sebagai berikut:

 

 

Refleksi sebenarnya menyatakan percerminan terhadap piksel pusat. Contoh ditu

njukkan pada Gambar . Bayangan cermin 2-D terjadi melalui pencerminan pada a

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

aran di bidang citra 180

o

 

(13)

Translasi himpunan A terhadap titik z=(z

1

, z

2

) disimbolkan dengan (A)

z

. Definisinya

sebagai berikut:

 

 

Contoh translasi satu piksel

ke kanan dan

dua piksel ke bawah

Translasi

(14)

Operasi Nalar

(15)

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

r.

(16)

%program andnand.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Program Operasi Logika AND dan NAND antara dua citra digunakan untuk citra biner %%%%%%%%%%%%% %%% Sarifuddin Madenda untuk buku "Pengolahan Citra dan Video Digital: Teori, Aplikasi %%%

%%% dan Pemrograman Matlab",2015. %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all; % kosongkan semua variabel dalam sistim memori

P=imread('D:\Materi Ngajar\Image\biner1.bmp'); % baca file citra 'biner1.bmp', simpan

dalam matriks P

figure(1), imshow(P,[]); % tampilkan citra P

Q=imread('D:\Materi Ngajar\Image\biner2.bmp'); % baca file citra 'biner2.bmp', simpan

dalam matriks Q

figure(2), imshow(Q,[]); % tampilkan citra Q

[N, M] = size(P); % baca ukuran citra P (ukuran citra Q = P)

for n = 1 : N,

for m = 1 : M,

Citra_and(n,m)=P(n,m) & Q(n,m); % operasi AND antara setiap pixel citra P dan Q

Citra_nand(n,m)=~(P(n,m) & Q(n,m)); % operasi NAND antara setiap pixel citra P dan

Q

end

end

(17)

%program ornor.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Program Operasi Logika OR dan NOR antara dua citra digunakan untuk citra biner %%%%%%%%%%% %%% Sarifuddin Madenda untuk buku "Pengolahan Citra dan Video Digital: Teori, Aplikasi %%%

%%% dan Pemrograman Matlab",2015. %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear

all

;

% kosongkan semua variabel dalam sistim memori

P=imread(

'D:\Materi Ngajar\Image\biner1.bmp'

);

figure(1), imshow(P,[]);

% tampilkan citra P

Q=imread(

'D:\Materi Ngajar\Image\biner2.bmp'

);

figure(2), imshow(Q,[]);

% tampilkan citra Q

[N, M] = size(P);

% baca ukuran citra P (ukuran citra Q = P)

for

n = 1 : N,

for

m = 1 : M,

Citra_or(n,m)=P(n,m) | Q(n,m);

% operasi OR antara setiap pixel citra

P dan Q

Citra_nor(n,m)=~(P(n,m) | Q(n,m));

% operasi NOR antara setiap pixel citra

P dan Q

end

end

figure(3), imshow( Citra_or);

% tampilkan citra hasil operasi OR

(18)

%Progrmam xorxnor.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Program Operasi Logika XOR dan XNOR antara dua citra %%% %%% digunakan untuk citra biner %%%%%%%%%%%%% %%% Sarifuddin Madenda untuk buku "Pengolahan %%%

%%% Citra dan Video Digital: Teori, Aplikasi %%% %%% dan Pemrograman Matlab",2015. %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear

all

;

% kosongkan semua variabel dalam sistim memori

P=imread(

'D:\Materi Ngajar\Image\biner1.bmp'

);

figure(1), imshow(P,[]);

% tampilkan citra P

Q=imread(

'D:\Materi Ngajar\Image\biner2.bmp'

);

figure(2), imshow(Q,[]);

% tampilkan citra Q

[N, M] = size(P);

% baca ukuran citra P (ukuran citra Q = P)

for

n = 1 : N,

for

m = 1 : M,

Citra_or(n,m)=xor(P(n,m),Q(n,m));

% operasi XOR antara setiap pixel

citra P dan Q

Citra_nor(n,m)=~(xor(P(n,m),Q(n,m)));

% operasi NXOR antara setiap pixel

citra P dan Q

end

end

figure(3), imshow( Citra_or);

% tampilkan citra hasil operasi XOR

(19)

Operasi Dilasi

Dilasi adalah operasi morphologi yang akan menambahkan pixel pada batas antar

objek dalam suatu citra digital.

Operasi dilasi biasa dipakai untuk mendapatkan efek pelebaran terhadap piksel ya

ng bernilai 1.

Operasi ini dirumuskan seperti berikut (Gonzales & Woods, 2002):

A

 

B

=

Himpunan B disebut “structuring element” dalam dilasi.

Persamaan ini didasarkan pada perefleksian B terhadap originnya, dan penggesera

n refleksi oleh z.

(20)

20

Disk

Diamond

Arbitrary

Line

Octagon

Pair

Periodicline

Rectangle

(21)
(22)

Toolbox MATLAB untuk membuat strel: SE = strel(tipestrel, parameter)

Tipe

Format fungsi

Arbitrary

SE = strel(‘arbitrary’,

NHOOD)

Diamond

SE = strel('diamond',R)

Disk

SE = strel('disk',R,N)

Line

SE = strel('line',LEN,DEG)

Octagon

SE = strel('octagon',R)

pair

SE = strel('pair',OFFSET)

periodicline

SE = strel('periodicline',P,V)

rectangle

SE = strel('rectangle',MN)

(23)

Perlu diketahui, fungsi

strel

memberikan berbagai pilihan dalam

mem-buat elemen penstruktur

(24)
(25)

Contoh operasi dilasi dengan menggunakan Persamaan diatas dapat dilihat pada Gambar berikut Pa da contoh tersebut,

 

A

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

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,2) }

(26)
(27)

CONTOH DILASI

S

A

D

S

= {(0,0),(0,1),(1,0)}

A= {(0,0),(0,1),(0,2),

(1,0),(1,1),(1,2),

(2,0),(2,1),(2,2)}

Posisi

poros

((x,y) Є A

(28)

%program dilasi.m

clear all; % kosongkan semua variabel dalam sistim memori

f=im2bw(imread('D:\Materi Ngajar\Image\biner3.bmp')); % baca citra ‘biner3.bmp’, dan konversi menjadi citra biner

B=[1 1 1; 1 1 1; 1 1 1]; % Set matriks B dengan elemen 8 connectivity

figure(1), imshow(f); % tampilkan citra biner f

[N,M] = size(f); % baca ukuran citra f

[I,J] = size(B); % baca ukuran matriks B

I=floor(I/2); J=floor(J/2);

for n = I+1 : N-I, % loop proses baris citra

for m = J+1 : M-J, % loop proses kolom citra

dilasi=0; % Inisalisasi nilai dilasi

for i= -I:I % loop proses dilasi

for j= -J:J

bit_dilasi= bitand(B(I+1+i,J+1+j),f(n+i,m+j)); % opeasi logika AND

dilasi= bitor(dilasi,bit_dilasi); % operasi logika OR

end

end

Citra_dilasi(n,m) = dilasi; % simpan hasil dilasi kedalam matriks citra_dilasi

end

end

figure(2), imshow((Citra_dilasi)); % tampilkan citra hasil dilasi

Citra_dilasi1 = imdilate(f,B); % Citra dilasi menggunakan fungsi dilasi pada Matlab

(29)

Operasi Erosi

Operasi erosi mempunyai efek memperkecil luas permukaan suatu area atau o

bjek. Area atau objek yang dimaksud adalah yang memiliki intersitas putih. Op

erasi ini dirumuskan seperti berikut (Gonzalez & Woods, 2002).

 

A

 

B

=

 

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

 

A

 

B

=

(30)

(a) himpunan obyek; (b) strel +; (c) erosi a oleh b; (d) strel

vertikal; (e) erosi a oleh d

Toolbox di MATLAB:

(31)
(32)

CONTOH EROSI

D

S

A

S

= {(0,0),(0,1),(1,0)}

A= {(0,0),(0,1),(0,2),

(1,0),(1,1),(1,2),

(2,0),(2,1),(2,2)}

Posisi

poros

((x,y) Є A

)

S

xy

(0,0)

{(0,0),(0,1),

(1,0)}

(0,1)

{(0,1),(0,2),

(1,1)}

(0,2)

{(0,2),

(0,3)

,

(1,2)}

...

...

(2,2)

{(2,2),

(2,3)

,

(3,2)

}

(33)

%program erosi.m

clear all; % kosongkan semua variabel dalam sistim memori

f=im2bw(imread('D:\Materi Ngajar\Image\biner3.bmp')); % baca citra ‘biner3.bmp’,konversi ke citra biner

B=[1 1 1; 1 1 1; 1 1 1]; % Set matriks B dengan elemen 8 connectivity

figure(1), imshow(f); % tampilkan citra biner f

[N,M] = size(f); % baca ukuran citra f

[I,J] = size(B); % baca ukuran matriks B

I=floor(I/2); J=floor(J/2);

for n = I+1 : N-I, % loop proses baris citra

for m = J+1 : M-J, % loop proses kolom citra

erosi=1; % Inisalisasi nilai erosi

for i= -I:I % loop proses erosi

for j= -J:J

bit_erosi= bitand(B(I+1+i,J+1+j),f(n+i,m+j)); % opeasi logika AND

erosi= bitand(erosi,bit_erosi); % operasi logika AND

end

end

Citra_erosi(n,m) = erosi; % simpan hasil erosi kedalam matriks citra_erosi

end

end

figure(2), imshow((Citra_erosi)); % tampilkan citra hasil erosi

Citra_erosi1 = imerode (f,B); % Citra erosi menggunakan fungsi erosi pada Matlab

(34)

Operasi Opening

Operasi

opening

adalah operasi erosi yang diikuti dengan dilasi

dengan menggunakan elemen penstruktur yang sama. Operasi i

ni berguna untuk menghaluskan kontur objek dan menghilangk

an seluruh piksel di area yang terlalu kecil untuk ditempati oleh

elemen penstruktur. Dengan kata lain, semua struktur latardep

an yang berukuran lebih kecil daripada elemen penstruktur aka

n tereliminasi oleh erosi dan kemudian penghalusan dilakukan

melalui dilasi. Definisi operasi

opening

seperti berikut:

 

(35)
(36)
[image:36.960.460.814.47.492.2] [image:36.960.474.816.48.242.2]

Perbandingan operasi erosi,

opening

, dan

closing

Gambar menunjukkan bahwa operasi erosi

membuat objek mengecil dan bahkan ada

yang hilang. Adapun operasi

opening

(37)

%program opening.m

clear all; % kosongkan semua variabel dalam sistim memori

f=im2bw(imread('D:\Materi Ngajar\Image\biner4.png')); % baca citra ‘Image.bmp’,konversi ke citra biner

K=5; % Set ukuran matriks B

B=ones(K,K); % Set matriks B KxK dengan elemen K*K - 1 connectivity

figure(1), imshow(f); % tampilkan citra biner f

[N,M] = size(f); % baca ukuran citra f

[I,J] = size(B); % baca ukuran matriks B

I=floor(I/2); J=floor(J/2);

for n = I+1 : N-I, % loop proses baris citra

for m = J+1 : M-J, % loop proses kolom citra

erosi=1; % Inisalisasi nilai erosi

for i= -I:I % loop proses erosi

for j= -J:J

bit_erosi= bitand(B(I+1+i,J+1+j),f(n+i,m+j)); % opeasi logika AND

erosi= bitand(erosi,bit_erosi); % operasi logika AND

end

end

Citra_erosi(n,m) = erosi; % simpan hasil erosi kedalam matriks citra_erosi

end

(38)

[N,M] = size(Citra_erosi);

% baca ukuran citra hasil erosi

for

n = I+1 : N-I,

% mulai proses dilasi

for

m = J+1 : M-J,

dilasi=0;

for

i=-I:I

for

j=-J:J

bit_dilasi= bitand(B(I+1+i,J+1+j),Citra_erosi(n+i,m+j));

%

opeasi logika AND

dilasi= bitor(dilasi,bit_dilasi);

%

opeasi logika OR

end

end

Citra_opening(n,m) = dilasi;

end

end

% akhir proses dilasi

figure(2), imshow((Citra_opening));

% tampilkan citra hasil opening

Citra_opening1 = imopen(f,B);

% hirung citra opening menggunakan

Matlab

(39)

Operasi Closing

Operasi

closing

berguna untuk menghaluskan kontur dan meng

hilangkan lubang-lubang kecil. Definisinya seperti berikut:

 

A

 

B

= (

A

 

B

)

 

B

Jadi, operasi

closing

dilaksanakan dengan melakukan operasi d

(40)
(41)

%program closing.m

clear all; % kosongkan semua variabel dalam sistim memori

f=im2bw(imread('D:\Materi Ngajar\Image\biner4.png')); % baca citra ‘Image.bmp’,konversi ke citra biner

K=5; % Set ukuran matriks B

B=ones(K,K); % Set matriks B KxK dengan elemen K*K - 1 connectivity

figure(1), imshow(f); % tampilkan citra biner f

[N,M] = size(f); % baca ukuran citra f

[I,J] = size(B); % baca ukuran matriks B

I=floor(I/2); J=floor(J/2);

for n = I+1 : N-I, % loop proses baris citra

for m = J+1 : M-J, % loop proses kolom citra

dilasi=0; % Inisalisasi nilai dilasi

for i= -I:I % loop proses dilasi

for j= -J:J

bit_dilasi= bitand(B(I+1+i,J+1+j),f(n+i,m+j)); % opeasi logika AND

dilasi= bitor(dilasi,bit_dilasi); % operasi logika OR

end

end

Citra_dilasi(n,m) = dilasi; % simpan hasil dilasi kedalam matriks citra_dilasi

end

(42)

[N,M] = size(Citra_dilasi);

% baca ukuran citra hasil dilasi

for

n = I+1 : N-I,

% mulai proses erosi

for

m = J+1 : M-J,

erosi=1;

for

i=-I:I

for

j=-J:J

bit_erosi= bitand(B(I+1+i,J+1+j),Citra_dilasi(n+i,m+j));

%

opeasi logika AND

erosi= bitand(erosi,bit_erosi);

%

opeasi logika AND

end

end

Citra_closing(n,m) = erosi;

end

end

% proses erosi selesai

figure(2), imshow((Citra_closing));

% tampilkan citra hasil closing

Citra_closing1 = imclose(f,B);

% hitung citra closing menggunakan

Mat-lab

(43)

Latihan

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

 gambarkan bentuk citranyaBerapa hasil operasi berikut?

A  B A  B

A – B B - A

 

Perhatikan gambar berikut:

(a) Bagaimana bentuk komplemen citra tersebut?

(b) Bagaimana bentuk refleksinya?

(44)

Perhatikan citra berikut:

Perlihatkan hasilnya jika dikenai operasi

di-lasi dengan elemen penstruktur seperti

berikut?

• Jelaskan bahwa hasil operasi erosi sebenarnya menyatakan letak elemen penstruktur di dalam citra yang dikenai operasi tersebut.

• Jelaskan hubungan operasi berikut terhadap operasi dilasi dan erosi: (a) operasi opening

Gambar

Gambar menunjukkan bahwa operasi erosi membuat objek mengecil dan bahkan ada yang hilang

Referensi

Dokumen terkait

Kerjakan Soal berikut. Diketahui suatu citra memiliki 8 intensitas derajat/skala keabuan. Gambarkan histogram dari citra tersebut. Bila dilakukan operasi brightness dengan

Berikut ini disajikan menu-menu yang digunakan dalam program penerapan metode segmentasi pada citra tulang selangka X-ray. Menu ini berkaitan dengan operasi-

Berikut diperlihatkan filter median untuk mengurangi efek derau salt and pepper dengan densitas yang lebih besar pada citra einstein.jpg. Saat digunakan filter median 3x3,

Hasil deteksi tebing yang terakhir di atas masih berupa citra aras keabuan, untuk mengubahnya menjadi citra biner dapat digunakan operasi thresholding , atau dapat juga

Hasil deteksi tebing yang terakhir di atas masih berupa citra aras keabuan, untuk mengubahnya menjadi citra biner dapat digunakan operasi thresholding, atau dapat juga

Dengan menggunakan aplikasi program pelembutan citra dengan teknik konvolusi maka gangguan derau (noise) yang sering terjadi pada citra dapat diatasi, selain itu operasi

Berikut adalah tahapan penelitian yang akan dilakukan dalam proses penelitian yang berjudul “Pengolahan Citra Satelit NOAA Frekuensi 137,9 MHz Menggunakan Morfologi Erison “

Hasil deteksi tebing yang terakhir di atas masih berupa citra aras keabuan, untuk mengubahnya menjadi citra biner dapat digunakan operasi thresholding, atau dapat juga