Analisis Tekstur Menggunakan Metode GLCM, LBP, dan FLBP
Apakah yang dimaksud dengan analisis tekstur??
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, klasifikasi jenis kayu, dll.
Berikut ini merupakan contoh aplikasi 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.
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 = stats.Contrast; Correlation = stats.Correlation; Energy = stats.Energy; Homogeneity = 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 = LBPFeatures(brickWall); lbpBricks2 = LBPFeatures(rotatedBrickWall); % 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 juga 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 juga 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.
File source code lengkap beserta citra pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on September 27, 2018, in Pengenalan Pola, Pengolahan Citra and tagged analisis tekstur menggunakan flbp, analisis tekstur menggunakan glcm, analisis tekstur menggunakan lbp, ciri lbp, contoh fuzzy lbp, contoh program matlab lbp, ekstraksi ciri tekstur menggunakan flbp, ekstraksi ciri tekstur menggunakan glcm, ekstraksi ciri tekstur menggunakan lbp, flbp, fuzy local binary pattern, glcm, lbp, local binary pattern, tutorial pengolahan citra digital. Bookmark the permalink. 8 Comments.
Mas adi untuk ekstraksi fitur dengan metode di atas apakah ukuran gambarnya harus sama?
Untuk ukuran citra tidak harus sama
mas adi mau tanya, kalo semisal saya menggunakan metode GLCM sama LBP untuk pengenalan/klasifikasi tekstur, inputan apa saja yang perlu digunakan untuk pelatihan dan pengujian di JST metode Backpropagation??
mohon pencerahannya
terima kasih
pak adi , mau nanya ttg LBP ini,, grafik LBP histogram Bins ada penjelasanya tdk?
saya msh kurang paham maksudnya mengapa ada 1-10 dan itu beda”,,
jika GLCM kan sdh jelas itu, ada contras dll
maff mau anya say agak bingung di bagian ini
% pembuatan matriks kookurensi
pixel_dist = 1;
GLCM = graycomatrix(rotatedBrickWall,’Offset’,[0 pixel_dist;…
-pixel_dist pixel_dist; -pixel_dist 0; -pixel_dist -pixel_dist]);
terima kasih
Pak Adi untuk ekstraksi fitur dengan kasus penentuan kualitas daging dari segar hingga busuk bagusnya pakai metode apa ya? GLCM atau LBP
Bisa dicoba keduanya dan dibandingkan mana yg hasilnya lebih baik
Berarti bisa ya pak menggunakan LBP untuk ekstraksi fitur pada objek yang sama hanya saja mendeteksi kualitas dari objek tersebut?. soalnya dari mayoritas jurnal yang saya dapat LBP banyak digunakan untuk mendeteksi pola dari objek yang berbeda dan GLCM lebih banyak digunakan untuk pendeteksian kualitas dari 1 objek yg sama tersebut pak