Analisis Tekstur Menggunakan Metode GLCM, LBP, dan FLBP


Tekstur merupakan salah satu ciri yang bisa diekstrak dari suatu citra digital. Tekstur dapat digunakan sebagai ciri yang membedakan antara citra yang satu dengan citra lainnya. Analisis tekstur dapat diimplementasikan ke dalam bidang pengolahan citra antara lain untuk pengenalan motif kain batik, identifikasi kualitas daging, identifikasi tumor/kanker, dll.

Berikut ini merupakan contoh pemrograman matlab mengenai analisis tekstur menggunakan tiga buah metode yang berbeda yaitu Gray-Level Co-Occurrence Matrix (GLCM), Local Binary Pattern (LBP), dan Fuzzy Local Binary Pattern (FLBP). Pada pemrograman ini analisis tekstur dilakukan terhadap citra yang diberi perlakuan rotasi. Hal ini dilakukan untuk melihat pengaruh rotasi dalam analisis tekstur pada masing-masing metode.

Tampilan citra asli dan setelah diberi perlakuan rotasi ditunjukkan pada gambar di bawah ini.

bricks.jpg

bricksRotated.jpg

Langkah-langkah pemrograman untuk analisis tekstur adalah sebagai berikut:

1. Analisis tekstur menggunakan metode Gray-Level Co-Occurrence Matrix (GLCM)

clc; clear; close all;

% membaca citra bricks
brickWall = imread('bricks.jpg');

% pembuatan matriks kookurensi
pixel_dist = 1;
GLCM = graycomatrix(brickWall,'Offset',[0 pixel_dist;...
    -pixel_dist pixel_dist; -pixel_dist 0; -pixel_dist -pixel_dist]);

% ekstraksi ciri GLCM terhadap citra bricks
stats = graycoprops(GLCM,{'contrast','correlation','energy','homogeneity'});
Contrast = mean(stats.Contrast);
Correlation = mean(stats.Correlation);
Energy = mean(stats.Energy);
Homogeneity = mean(stats.Homogeneity);
bricks_features = [Contrast,Correlation,Energy,Homogeneity];

% membaca citra bricksRotated
rotatedBrickWall = imread('bricksRotated.jpg');

% pembuatan matriks kookurensi
pixel_dist = 1;
GLCM = graycomatrix(rotatedBrickWall,'Offset',[0 pixel_dist;...
    -pixel_dist pixel_dist; -pixel_dist 0; -pixel_dist -pixel_dist]);

% ekstraksi ciri GLCM terhadap citra bricksRotated
stats = graycoprops(GLCM,{'contrast','correlation','energy','homogeneity'});
Contrast = mean(stats.Contrast);
Correlation = mean(stats.Correlation);
Energy = mean(stats.Energy);
Homogeneity = mean(stats.Homogeneity);
bricksRotated_features = [Contrast,Correlation,Energy,Homogeneity];

% menampilkan citra bricks
figure
imshow(brickWall)
title('Bricks')

% menampilkan citra bricksRotated
figure
imshow(rotatedBrickWall)
title('Rotated Bricks')

% menampilkan hasil ekstraksi ciri GLCM
figure
b = bar([bricks_features; bricksRotated_features]');
b(1).FaceColor = 'r';
b(1).EdgeColor = 'r';
b(2).FaceColor = 'b';
b(2).EdgeColor = 'b';
grid on
title('Bricks vs BricksRotated')
xlabel('GLCM Features')
xticklabels({'Contrast','Correlation','Energy','Homogeneity'})
legend('Bricks','Rotated Bricks')

Tampilan perbandingan hasil ekstraksi ciri GLCM terhadap citra bricks dan bricksRotated adalah sebagai berikut

Pada pemrograman di atas ciri GLCM yang diekstrak adalah contrast, correlation, energy, dan homogeneity. Keempat ciri tersebut menunjukkan nilai yang hampir sama antara citra bricks dan bricksRotated. Hal ini menunjukkan bahwa metode GLCM tidak terlalu terpengaruh oleh rotasi sehingga baik digunakan dalam analisis tekstur.

2. Analisis tekstur menggunakan metode Local Binary Pattern (LBP)

clc; clear; close all;

% membaca citra bricks & bricksRotated
brickWall = imread('bricks.jpg');
rotatedBrickWall = imread('bricksRotated.jpg');

% menampilkan citra bricks
figure
imshow(brickWall)
title('Bricks')

% menampilkan citra bricksRotated
figure
imshow(rotatedBrickWall)
title('Rotated Bricks')

% ekstraksi ciri LBP terhadap masing-masing citra
lbpBricks1 = extractLBPFeatures(brickWall,'Upright',false);
lbpBricks2 = extractLBPFeatures(rotatedBrickWall,'Upright',false);

% menampilkan hasil ekstraksi ciri LBP
figure
b = bar([lbpBricks1; lbpBricks2]');
b(1).FaceColor = 'r';
b(1).EdgeColor = 'r';
b(2).FaceColor = 'b';
b(2).EdgeColor = 'b';
grid on
title('Bricks vs BricksRotated')
xlabel('LBP Histogram Bins')
legend('Bricks','Rotated Bricks')

Tampilan perbandingan hasil ekstraksi ciri LBP terhadap citra bricks dan bricksRotated adalah sebagai berikut

Pada pemrograman di atas feature vector LBP yang diekstrak menunjukkan nilai yang hampir sama antara citra bricks dan bricksRotated. Hal ini menunjukkan bahwa metode LBP tidak terlalu terpengaruh oleh rotasi sehingga baik digunakan dalam analisis tekstur.

3. Analisis tekstur menggunakan metode Fuzzy Local Binary Pattern (FLBP)

clc; clear; close all;

% membaca citra bricks & bricksRotated
brickWall = imread('bricks.jpg');
rotatedBrickWall = imread('bricksRotated.jpg');

% menampilkan citra bricks
figure
imshow(brickWall)
title('Bricks')

% menampilkan citra bricksRotated
figure
imshow(rotatedBrickWall)
title('Rotated Bricks')

% ekstraksi ciri FLBP terhadap masing-masing citra
flbpBricks1 = flbp(brickWall);
flbpBricks2 = flbp(rotatedBrickWall);

% menampilkan hasil ekstraksi ciri FLBP
figure
plot([flbpBricks1; flbpBricks2]');
xlim([1 256])
grid on
title('Bricks vs BricksRotated')
xlabel('FLBP Histogram Bins')
legend('Bricks','Rotated Bricks')

Tampilan perbandingan hasil ekstraksi ciri FLBP terhadap citra bricks dan bricksRotated adalah sebagai berikut

Pada pemrograman di atas feature vector FLBP yang diekstrak menunjukkan nilai yang hampir sama antara citra bricks dan bricksRotated. Hal ini menunjukkan bahwa metode FLBP tidak terlalu terpengaruh oleh rotasi sehingga baik digunakan dalam analisis tekstur.

Ketiga metode pada pemrograman di atas menunjukkan performa yang baik dalam melakukan analisis tekstur dengan tidak terpengaruh terhadap rotasi.

Source code dan citra pada pemrograman di atas dapat diperoleh pada halaman berikut ini: Source Code

Posted on September 27, 2018, 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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s

%d bloggers like this: