Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Morfologi untuk Pengolahan Citra
STMIK PPKIA Pradnya Paramita Sigit Setyowibowo, ST., MMSI
2
Pengertian Operasi Morfologi
Operasi morfologi merupakan operasi yang umum dikenakan pada citra biner (hitam-putih) untuk mengubah 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. Memperoleh skeleton (rangka) sebuah objek. Memperoleh struktur bentuk objek.
3
manfaat dari aplikasi morfologi
Remove Noise Small Object Fill Holes
4
manfaat dari aplikasi morfologi
Memisahkan objek yang saling berhimpitan
5
KOMPONEN OPERASI MORFOLOGI
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 (strel) (Shih, 2009). Operasi strel terhadap citra
6
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 𝑎∈𝐴 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 dituliskan fakta berikut: 𝑠∈𝐴 𝑡 𝐴
7
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
8
Operasi union Union himpunan A dan B,dinyatakan dengan C = A∪B, adalah himpunan dari semua elemen anggota A, B, atau keduanya
9
Operasi interseksi/irisan
Irisan A dan B, dinyatakan dengan C = A B adalah himpunan dari semua elemen yang merupakan anggota A dan B.
10
Operasi komplemen/inversi
Komplemen himpunan A adalah himpunan elemen yang bukan anggota A Ac = { w | w A } 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
11
Operasi selisih Operasi selisih dua himpunan dapat ditulis seperti berikut: A – B = { w | w A, w B } = A Bc Contoh menunjukkan bahwa A – B B – A.
12
Contoh refleksi Refleksi B dinotasikan dengan 𝐵 dan didefinisikan sebagai berikut: 𝐵 = 𝑤|𝑤=−𝑏, 𝑢𝑛𝑡𝑢𝑘 𝑏 ∈𝐵 Refleksi sebenarnya menyatakan percerminan terhadap piksel pusat. Contoh ditunjukkan pada Gambar . 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
13
Contoh translasi satu piksel ke kanan dan
Translasi himpunan A terhadap titik z=(z1, z2) disimbolkan dengan (A)z. Definisinya sebagai berikut: (𝐴) 𝑧 = 𝑐|𝑐=𝑎+𝑧, 𝑢𝑛𝑡𝑢𝑘 𝑎∈𝐴 Himpunan A digeser pada arah z1 dan z2 sesuai dengan nilai z yang diberikan Contoh translasi satu piksel ke kanan dan dua piksel ke bawah
14
Operasi Nalar Tabel kebenaran
15
Berbagai efek operasi AND, OR, NOT, XOR, dan NAND ditunjukkan pada Gambar.
Hasil-hasil operasi nalar atas dua buah citra A dan B
16
clear all; % kosongkan semua variabel dalam sistim memori
%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", %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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 figure(3), imshow( Citra_and); % tampilkan citra hasil operasi AND figure(4), imshow(Citra_nand); % tampilkan citra hasil operasi NAND
17
clear all; % kosongkan semua variabel dalam sistim memori
%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", %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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 figure(3), imshow( Citra_or); % tampilkan citra hasil operasi OR figure(4), imshow(Citra_nor); % tampilkan citra hasil operasi NOR
18
clear all; % kosongkan semua variabel dalam sistim memori
%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", %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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 figure(3), imshow( Citra_or); % tampilkan citra hasil operasi XOR figure(4), imshow(Citra_nor); % tampilkan citra hasil operasi XNOR
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 yang 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 penggeseran refleksi oleh z.
20
Rectangle Arbitrary Octagon Periodicline Pair Diamond Square Disk Line
21
(a) Himpunan obyek; (b) Strel +; (c) Dilasi a oleh b; (d) Strel vertikal;
(e) Dilasi a oleh d
22
SE = strel(‘arbitrary’, NHOOD) Diamond SE = strel('diamond',R) Disk
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) square SE = strel('square',W)
23
Contoh strel untuk membuat berbagai bentuk
Perlu diketahui, fungsi strel memberikan berbagai pilihan dalam membuat elemen penstruktur Contoh strel untuk membuat berbagai bentuk elemen penstruktur
24
Efek dilasi dengan hotspot vertikal
25
Contoh operasi dilasi dengan menggunakan Persamaan diatas dapat dilihat pada Gambar berikut Pada 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) } = { (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,2) }
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 ) Sxy (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)} D
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 Citra_dilasi(n,m) = dilasi; % simpan hasil dilasi kedalam matriks citra_dilasi figure(2), imshow((Citra_dilasi)); % tampilkan citra hasil dilasi Citra_dilasi1 = imdilate(f,B); % Citra dilasi menggunakan fungsi dilasi pada Matlab figure(3), imshow(Citra_dilasi1); % tampilkan citra hasil dilasi.
29
Operasi Erosi Operasi erosi mempunyai efek memperkecil luas permukaan suatu area atau objek. Area atau objek yang dimaksud adalah yang memiliki intersitas putih. Operasi ini dirumuskan seperti berikut (Gonzalez & Woods, 2002). A B = 𝑧| 𝐵 𝑧 𝐴 Adapun Burger & Burge (2008) mendefinisikan erosi sebagai berikut: A B = 𝑝∈ 𝑍 2 | (𝑎+𝑏) ∈𝐼, 𝑢𝑛𝑡𝑢𝑘 𝑠𝑒𝑡𝑖𝑎𝑝 𝑏 ∈𝐵
30
Toolbox di MATLAB: >> A2 = imerode(A, B) (a) himpunan obyek; (b) strel +; (c) erosi a oleh b; (d) strel vertikal; (e) erosi a oleh d
31
Contoh visualisasi operasi erosi
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 ) Sxy (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)} D
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 Citra_erosi(n,m) = erosi; % simpan hasil erosi kedalam matriks citra_erosi figure(2), imshow((Citra_erosi)); % tampilkan citra hasil erosi Citra_erosi1 = imerode (f,B); % Citra erosi menggunakan fungsi erosi pada Matlab figure(3), imshow(Citra_erosi1); % tampilkan citra hasil erosi.
34
Operasi Opening Operasi opening adalah operasi erosi yang diikuti dengan dilasi dengan menggunakan elemen penstruktur yang sama. Operasi ini berguna untuk 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
35
Contoh Opening
36
Gambar 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 (d) menunjukkan hasil penggunaan operasi closing, Perbandingan operasi erosi, opening, dan closing
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 Citra_erosi(n,m) = erosi; % simpan hasil erosi kedalam matriks citra_erosi end % akhir proses erosi
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 Citra_opening(n,m) = dilasi; end % akhir proses dilasi figure(2), imshow((Citra_opening)); % tampilkan citra hasil opening Citra_opening1 = imopen(f,B); % hirung citra opening menggunakan Matlab figure(3), imshow((Citra_opening1)); % tampilkan citra hasil opening Matlab
39
Operasi Closing Operasi closing berguna untuk menghaluskan kontur dan menghilangkan lubang-lubang kecil. Definisinya seperti berikut: A B = (A B) B Jadi, operasi closing dilaksanakan dengan melakukan operasi dilasi terlebih dahulu dan kemudian diikuti dengan operasi erosi.
40
Contoh Closing
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 Citra_dilasi(n,m) = dilasi; % simpan hasil dilasi kedalam matriks citra_dilasi end % proses dilasi selesai
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 Citra_closing(n,m) = erosi; end % proses erosi selesai figure(2), imshow((Citra_closing)); % tampilkan citra hasil closing Citra_closing1 = imclose(f,B); % hitung citra closing menggunakan Matlab figure(3), imshow(Citra_closing1); % tampilkan citra hasil closing Matlab
43
Bagaimana bentuk komplemen citra tersebut?
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 citranya Berapa hasil operasi berikut? A B A B A – B B - A Perhatikan gambar berikut: Bagaimana bentuk komplemen citra tersebut? Bagaimana bentuk refleksinya? Jelaskan kegunaan operasi dilasi.
44
Perhatikan citra berikut:
Perlihatkan hasilnya jika dikenai operasi dilasi 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: operasi opening operasi closing
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.