Segmentasi menggunakan Filter Gabor

Kemampuan sistem visual manusia dalam membedakan pola tekstur didasarkan pada kapabilitas dalam mengidentifikasikan berbagai frekuensi dan orientasi spasial dari tekstur yang diamati.
Filter Gabor merupakan salah satu filter yang mampu mensimulasikan karakteristik sistem visual manusia dalam mengisolasi frekuensi dan orientasi tertentu dari citra.
Karakteristik ini membuat filter Gabor sesuai untuk aplikasi pengenalan tekstur dalam bidang computer vision.
Berikut ini merupakan pemrograman matlab untuk melakukan segmentasi pola tekstur dari suatu citra menggunakan filter Gabor. Koding dapat dijalankan minimal menggunakan Matlab R2015b.
Langkah-langkah pemrogramannya yaitu:
1. Membaca dan menampilkan citra asli
1
2
3
4
5
6
clc;clear;close all;
% Read the image
I = imread('metal texture.jpg');
figure,imshow(I);
title('Original Image');
sehingga diperoleh tampilan

2. Melakukan filtering citra dengan λ = 4 dan θ = 45
1
2
3
4
5
6
7
8
9
% Orientation 45
J = rgb2gray(I);
wavelength = 4;
orientation = 45;
[mag45,phase45] = imgaborfilt(J,wavelength,orientation);
figure,imshow(mag45,[]);
title('Gabor magnitude (orientation = 45)');
figure,imshow(phase45,[]);
title('Gabor phase (orientation = 45)');
dihasilkan citra magnitude dan phase seperti ditunjukkan pada gambar di bawah ini


 3. Melakukan operasi thresholding terhadap citra magnitude dengan nilai threshold sebesar 1000
1
2
3
bw45 = mag45>1000;
figure, imshow(bw45);
title('Binary image (orientation = 45)');
diperoleh citra biner hasil segmentasi

4. Memvisualisasikan hasil segmentasi terhadap citra asli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
% RGB Channel Extraction
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
R45 = R;
G45 = G;
B45 = B;
R45(bw45) = 0;
G45(bw45) = 0;
B45(bw45) = 255;
rgb45 = cat(3,R45,G45,B45);
figure, imshow(rgb45);
title('Segmentation result (orientation = 45)');
citra hasil segmentasi yang diperoleh
5. Melakukan filtering citra dengan λ = 4 dan θ = 135
1
2
3
4
5
6
7
% Orientation 135
orientation = 135;
[mag135,phase135] = imgaborfilt(J,wavelength,orientation);
figure,imshow(mag135,[]);
title('Gabor magnitude (orientation = 135)');
figure,imshow(phase135,[]);
title('Gabor phase (orientation = 135)');
citra magnitude dan phase yang diperoleh adalah 


6. Melakukan operasi thresholding terhadap citra magnitude dengan nilai threshold sebesar 1000
1
2
3
bw135 = mag135>1000;
figure, imshow(bw135);
title('Binary image (orientation = 135)');
diperoleh citra biner hasil segmentasi
7. Memvisualisasikan hasil segmentasi terhadap citra asli
1
2
3
4
5
6
7
8
9
10
R135 = R;
G135 = G;
B135 = B;
R135(bw135) = 255;
G135(bw135) = 0;
B135(bw135) = 0;
rgb135 = cat(3,R135,G135,B135);
figure, imshow(rgb135);
title('Segmentation result (orientation = 135)');
citra hasil segmentasi yang diperoleh 
8. Memvisualisasikan hasil segmentasi secara keseluruhan terhadap citra asli
1
2
3
4
5
6
R135(bw45) = 0;
G135(bw45) = 0;
B135(bw45) = 255;
rgb = cat(3,R135,G135,B135);
figure, imshow(rgb);
title('Overall segmentation result');
diperoleh citra hasil segmentasi sebagai berikut

good luck..
Referensi.
1./www.mathworks.com
2.www.w3ii.com
3.www.PemrogramanMatlab.
4.www.rahmadya.com
0 Komentar untuk "Segmentasi menggunakan Filter Gabor"
Back to top