Analisis Tekstur Menggunakan Metode GLCM, LBP, dan FLBP


Pola tekstur merujuk pada pola visual yang berulang dalam citra atau gambar. Analisis tekstur merupakan bagian penting dari pengolahan citra dan pengenalan pola. Analisis ini berkaitan dengan ekstraksi informasi tentang pola tekstur dalam citra dan penggunaannya dalam berbagai aplikasi, termasuk pengenalan objek, analisis medis, dan deteksi benda.

Analisis Tekstur (Gao, Yongxiang & Helgeson, Matthew. (2014). Texture analysis microscopy: Quantifying structure in low-fidelity images of dense fluids. Optics express. 22. 10046-10063. 10.1364/OE.22.010046)

Tiga metode yang sering digunakan untuk menganalisis tekstur adalah Gray-Level Co-occurrence Matrix (GLCM), Local Binary Pattern (LBP), dan Fuzzy Local Binary Pattern (FLBP). Dalam artikel ini, akan dijelaskan masing-masing metode ini dan bagaimana mereka digunakan dalam analisis tekstur.

Gray-Level Co-occurrence Matrix (GLCM)

GLCM adalah metode yang umum digunakan untuk mengukur keterkaitan antara dua piksel dalam citra berdasarkan tingkat keabuan (gray-level). GLCM menghasilkan matriks yang menggambarkan frekuensi kemunculan pasangan tingkat keabuan yang berdekatan dalam citra. Dari matriks kookurensi, kita dapat menghitung berbagai statistik, seperti kontras, homogenitas, energi, dan korelasi, yang menggambarkan pola tekstur dalam citra. Metode ini sangat berguna dalam pengenalan pola tekstur dalam berbagai aplikasi.

Fitur GLCM dalam analisis tekstur

Local Binary Pattern (LBP)

LBP adalah metode yang bekerja dengan cara mengkodekan setiap piksel dalam citra berdasarkan tingkat keabuan piksel tetangganya. Ini menghasilkan kode biner lokal untuk setiap piksel dalam citra, yang kemudian dapat digunakan untuk mengidentifikasi pola tekstur. LBP adalah metode sederhana namun efektif untuk mengenali pola tekstur dalam citra. Ia sering digunakan dalam aplikasi seperti deteksi wajah, pengenalan objek, dan segmentasi citra.

Fitur LBP dalam analisis tekstur

Fuzzy Local Binary Pattern (FLBP)

FLBP adalah pengembangan dari LBP yang menggabungkan informasi tingkat keabuan dengan konsep fuzzy logic. Metode ini memungkinkan representasi yang lebih kuat dari pola tekstur dalam citra dengan mempertimbangkan ketidakpastian dalam nilai tingkat keabuan. Dengan memanfaatkan logika fuzzy, FLBP mampu mengatasi variasi kecil dalam tingkat keabuan dan menghasilkan representasi tekstur yang lebih tajam.

Fitur FLBP dalam analisis tekstur

Penggunaan Metode-Metode ini dalam Analisis Tekstur

Ketiga metode ini dapat digunakan dalam berbagai aplikasi analisis tekstur. Misalnya, GLCM dapat digunakan untuk mengukur tekstur dalam citra medis seperti gambar sinar-X dan MRI. LBP sering digunakan dalam deteksi wajah dan segmentasi citra objek. FLBP, dengan kemampuannya dalam menangani ketidakpastian tingkat keabuan, cocok untuk analisis tekstur dalam citra yang kurang terstruktur atau berkualitas rendah.

Berikut ini pemrograman MATLAB implementasi metode GLCM, LBP, dan FLBP untuk menganalisis tekstur pada citra digital.

% Membaca citra
img = imread('contoh_gambar.jpg'); % Ganti dengan nama citra Anda

% Mengkonversi citra menjadi citra keabuan jika belum dalam format tersebut
if size(img, 3) == 3
    imgGray = rgb2gray(img);
else
    imgGray = img;
end

% GLCM (Gray-Level Co-occurrence Matrix)
glcm = graycomatrix(imgGray, 'Offset', [0 1; -1 1; -1 0; -1 -1], 'Symmetric', true);
stats = graycoprops(glcm, {'Contrast', 'Homogeneity', 'Energy', 'Correlation'});

% LBP (Local Binary Pattern)
radius = 1;
neighbors = 8;
lbpImage = extractLBPFeatures(imgGray, 'Radius', radius, 'NumNeighbors', neighbors);

% FLBP (Fuzzy Local Binary Pattern)
function flbpFeatures = extractFLBPFeatures(image)
    % Konversi citra ke tingkat keabuan (grayscale)
    grayImage = rgb2gray(image);
    
    % Tentukan parameter LBP
    radius = 1;
    neighbors = 8;
    
    % Ekstraksi LBP
    lbpImage = extractLBPFeatures(grayImage, 'Radius', radius, 'NumNeighbors', neighbors);
    
    % Inisialisasi matriks fuzzy membership
    fuzzyMembership = zeros(size(lbpImage));
    
    % Hitung fuzzy membership
    for i = 1:size(lbpImage, 1)
        for j = 1:size(lbpImage, 2)
            % Hitung fungsi keanggotaan fuzzy
            % Misalnya, menggunakan fungsi segitiga atau fungsi lain yang sesuai
            % Di sini, kita menggunakan fungsi segitiga
            fuzzyMembership(i, j) = fuzzyTriangle(lbpImage(i, j), min(lbpImage(:)), max(lbpImage(:)));
        end
    end
    
    % Normalisasi fuzzy membership
    fuzzyMembership = fuzzyMembership / sum(fuzzyMembership(:));
    
    % Hitung FLBP fitur
    flbpFeatures = sum(fuzzyMembership(:));
end

function membership = fuzzyTriangle(x, a, b)
    if x < a
        membership = 0;
    elseif a <= x && x < (a + b) / 2
        membership = 2 * ((x - a) / (b - a))^2;
    elseif (a + b) / 2 <= x && x < b
        membership = 1 - 2 * ((x - b) / (b - a))^2;
    elseif x >= b
        membership = 1;
    end
end

% Menampilkan hasil
disp('Statistik GLCM:');
disp(stats);
disp('LBP:');
disp(lbpImage);
disp('FLBP:');
disp(fuzzyLBPImage);

Analisis tekstur adalah aspek penting dalam pengolahan citra dan pengenalan pola. Metode seperti GLCM, LBP, dan FLBP memberikan teknik yang berguna untuk menggambarkan dan mengidentifikasi pola tekstur dalam citra. Dengan memahami prinsip-prinsip dasar dan karakteristik masing-masing metode, kita dapat menggunakannya dalam berbagai aplikasi untuk mengungkapkan informasi dari citra dan data tekstur.

Source code beserta data lengkap pemrograman MATLAB di atas dapat diperoleh melalui halaman berikut ini: Source Code

Posted on September 7, 2023, in Pengenalan Pola, Pengolahan Citra and tagged , , , , , , , , , , . Bookmark the permalink. Leave a comment.

Leave a comment