Segmentasi Pola Tekstur 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

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

% 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

bw45 = mag45>1000;
figure, imshow(bw45);
title('Binary image (orientation = 45)');

diperoleh citra biner hasil segmentasi

4. Memvisualisasikan hasil segmentasi terhadap citra asli

% 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

% 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

bw135 = mag135>1000;
figure, imshow(bw135);
title('Binary image (orientation = 135)');

diperoleh citra biner hasil segmentasi

7. Memvisualisasikan hasil segmentasi terhadap citra asli

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

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

Source code dan citra pada pemrograman matlab di atas dapat diunduh pada laman berikut ini: Source Code

Posted on November 6, 2016, in Pengenalan Pola, Pengolahan Citra and tagged , , , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: