Texture Analysis – Gray-Level Co-Occurrence Matrix (GLCM) – GUI Matlab


Analisis tekstur merupakan salah satu jenis ekstraksi ciri yang didasarkan pada ciri statistik citra. Analisis tekstur dapat dilakukan dengan metode ekstraksi ciri orde satu, ekstraksi ciri orde dua, filter gabor, transformasi wavelet, dsb.

Berikut ini merupakan contoh aplikasi pemrograman gui matlab untuk analisis tekstur menggunakan metode Gray-Level Co-Occurrence Matrix (GLCM) yang merupakan ciri statistik orde dua. Ekstraksi ciri dilakukan berdasarkan parameter contrast, correlation, energy, dan homogeneity.

Tampilan GUI Matlab untuk analisis tekstur citra menggunakan metode Gray-Level Co-Occurrence Matrix (GLCM) adalah sebagai berikut:

1. Gray-Level Co-Occurrence Matrix (GLCM) dengan pixel distance = 1

2. Gray-Level Co-Occurrence Matrix (GLCM) dengan pixel distance = 2

3. Gray-Level Co-Occurrence Matrix (GLCM) dengan pixel distance = 3

File source code lengkap beserta citra untuk ekstraksi ciri tekstur menggunakan metode GLCM pada materi di atas dapat diperoleh melalui halaman berikut ini: Source Code

Sedangkan tampilan source code nya adalah:

% Adi Pamungkas, S.Si, M.Si
% Website: https://pemrogramanmatlab.com/
% Email  : adipamungkas@st.fisika.undip.ac.id

function varargout = Texture_Analysis(varargin)
% TEXTURE_ANALYSIS MATLAB code for Texture_Analysis.fig
%      TEXTURE_ANALYSIS, by itself, creates a new TEXTURE_ANALYSIS or raises the existing
%      singleton*.
%
%      H = TEXTURE_ANALYSIS returns the handle to a new TEXTURE_ANALYSIS or the handle to
%      the existing singleton*.
%
%      TEXTURE_ANALYSIS('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in TEXTURE_ANALYSIS.M with the given input arguments.
%
%      TEXTURE_ANALYSIS('Property','Value',...) creates a new TEXTURE_ANALYSIS or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Texture_Analysis_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Texture_Analysis_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Texture_Analysis

% Last Modified by GUIDE v2.5 08-May-2017 13:46:33

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @Texture_Analysis_OpeningFcn, ...
    'gui_OutputFcn',  @Texture_Analysis_OutputFcn, ...
    'gui_LayoutFcn',  [] , ...
    'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before Texture_Analysis is made visible.
function Texture_Analysis_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Texture_Analysis (see VARARGIN)

% Choose default command line output for Texture_Analysis
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
movegui(hObject,'center');

% UIWAIT makes Texture_Analysis wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = Texture_Analysis_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,pathname] = uigetfile({'*.*'});

if ~isequal(filename,0)
    Info = imfinfo(fullfile(pathname,filename));
    if Info.BitDepth == 1
        msgbox('Citra masukan harus citra RGB atau Grayscale');
        return
    elseif Info.BitDepth == 8
        Img = imread(fullfile(pathname,filename));
        axes(handles.axes1)
        cla('reset')
        imshow(Img)
        title('Grayscale Image')
    else
        Img = rgb2gray(imread(fullfile(pathname,filename)));
        axes(handles.axes1)
        cla('reset')
        imshow(Img)
        title('Grayscale Image')
    end
    set(handles.pushbutton2,'Enable','on');
    set(handles.uitable1,'Data',[])
else
    return
end

handles.Img = Img;
guidata(hObject,handles);

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Img = handles.Img;
pixel_dist = str2double(get(handles.edit1,'String'));
GLCM = graycomatrix(Img,'Offset',[0 pixel_dist; -pixel_dist pixel_dist; -pixel_dist 0; -pixel_dist -pixel_dist]);
stats = graycoprops(GLCM,{'contrast','correlation','energy','homogeneity'});

Contrast = stats.Contrast;
Correlation = stats.Correlation;
Energy = stats.Energy;
Homogeneity = stats.Homogeneity;

data = get(handles.uitable1,'Data');
data{1,1} = num2str(Contrast(1));
data{1,2} = num2str(Contrast(2));
data{1,3} = num2str(Contrast(3));
data{1,4} = num2str(Contrast(4));
data{1,5} = num2str(mean(Contrast));

data{2,1} = num2str(Correlation(1));
data{2,2} = num2str(Correlation(2));
data{2,3} = num2str(Correlation(3));
data{2,4} = num2str(Correlation(4));
data{2,5} = num2str(mean(Correlation));

data{3,1} = num2str(Energy(1));
data{3,2} = num2str(Energy(2));
data{3,3} = num2str(Energy(3));
data{3,4} = num2str(Energy(4));
data{3,5} = num2str(mean(Energy));

data{4,1} = num2str(Homogeneity(1));
data{4,2} = num2str(Homogeneity(2));
data{4,3} = num2str(Homogeneity(3));
data{4,4} = num2str(Homogeneity(4));
data{4,5} = num2str(mean(Homogeneity));

set(handles.uitable1,'Data',data,'ForegroundColor',[0 0 0])

% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes1)
cla reset
set(gca,'XTick',[])
set(gca,'YTick',[])

set(handles.pushbutton2,'Enable','off')
set(handles.edit1,'String','1')
set(handles.uitable1,'Data',[])

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

Save

Tutorial pembuatan aplikasi GUI MATLAB untuk analisis tekstur menggunakan metode Gray-Level Co-Occurrence Matrix (GLCM) bisa dilihat pada video berikut ini:

Posted on August 11, 2015, in Pengenalan Pola, Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 189 Comments.

  1. Assalamu’alaikum mas adi, glcm ini bisa dipakai unt ekstraksi fitur kan ya ? Trus glcm ini dipakainya tepat setelah grayscaling atau pra-process dulu trus di grayscaling lagi mas ? Terima kasih mas adi atas jawabannya.

    • Waalaikumsalam Wr. Wb.
      GLCM merupakan metode untuk ekstraksi ciri tekstur statistik orde kedua
      Masukan dari GLCM adalah citra grayscale
      Jika citra asli adalah citra RGB maka harus dikonversi terlebih dahulu menjadi grayscale
      Jika citra kualitas citra grayscale belum baik, maka harus di pre-processing terlebih dahulu agar kualitasnya menjadi lebih baik
      Tetapi jika kualitas citra grayscale sudah baik, maka tidak perlu dilakukan pre-processing
      Penjelasan lebih lanjut bisa dipelajari pada laman berikut https://pemrogramanmatlab.com/pengenalan-pola/
      Semoga membantu

    • Lalu dari ke empat parameter diatas, yg bisa dijadikan input untuk jst yg mana ya ? Apa semuanya bisa ? Ada ketentuan khusus ga ?

    • Secara umum, keempat ciri tsb dapat digunakan sbg masukan jst
      Ciri yg dapat digunakan sebagai masukan jst adalah ciri yang dapat membedakan antara kelas yg satu dengan kelas yg lain secara signifikan
      Diperlukan kajian khusus untuk memilih ciri yang tepat untuk digunakan sbg masukan jst, kajian tsb bisa dipelajari dalam materi ‘feature selection’

  2. Oke, terima kasih banyak mas adi 🙂

  3. assamualaikum, mas ada gak proses perhitungan ciri dengan GLCM secara manualnya?,
    lagi butuh untuk referensi tugas akhir,, kalo ada tolong d share ya mas,,

  4. assamualaikum, bang kalau paper nya ada..
    kalau ada tolong d share ya bang,,

  5. ka saya mau tanya, saya coba source code di atas tapi masih ada erorr itu kenapa ya ?

  6. terima kasih ka

  7. ka maaf saya ada pertanyaan lagi, saya ingin mengambil tekstur dari suatu citra tapi ukuran pixel citra cita berbeda- beda apakah itu berpengaruh pada hasil penghitungan tekstur nya ? dan bagaimana kalau saya menyamakan semua pixel citra yang akan saya hitung tekstur nya. terima kasih

  8. ka bisa penjelasan secara detail nya ga pengaruhnya di bagian mana ?
    terima kasih

    • pembentukan matriks kookurensi dalam operasi glcm dilakukan pada setiap piksel citra grayscale, oleh karena itu, agar jumlah piksel yang akan diolah sama, maka ukuran citra grayscale harus seragam

  9. terima kasih atas jawabannya ka, ka saya boleh minta perhitungan gclm secara manual ka ?

  10. mas, cara normalisasi GLCM bagaimana ya?
    boleh minta source code normalisasi GLCM?

  11. untuk variabel x dan y nya menunjukkan apa ya mas?

  12. y data hasil normalisasi
    x data asli sebelum dinormalisasi

  13. xmin xmax dan ymin ymax bisa didapat darimana ya?

    • xmin nilai minimal dari data asli
      xmax nilai maksimal dari data asli
      ymin nilai minimal dari data normalisasi
      ymax nilai maksimal dari data normalisasi

  14. jadi kan gini mas, ukuran citra grayscale yang akan dianalisis tekstur tidak seragam, dan tidak memungkinkan untuk diterapkan fungsi imresize. Oleh karena itu, diperlukan normalisasi matriks GLCM untuk menyeragamkan ukuran piksel sebelum dihitung contrast, correlation, energy, homogeneity.
    Mungkin mas punya referensi / paper tentang normalisasi matriks GLCM.
    Terima kasih.

  15. Seperti yg sdh saya jelaskan sebelumnya, masukan dari glcm adalah citra grayscale dg ukuran yg seragam, jika ukuran citra tdk seragam, maka harus diseragamkan dg cara diresize atau dicropping
    Jika masukan glcm adalah citra dg ukuran yg tidak seragam, maka akan diperoleh tingkat akurasi yg rendah dlm proses pengenalan

  16. Assalamualaikum Wr. Wb
    Mas adi, saya sedang mengerjakan tugas akhir.
    saya mau tanya. setelah semua citra di pre-process untuk mendapatkan hasil citra yg baik yg kemudian akan dilanjutkan ke tahap pengolahan pola “GLCM” u/ mendapatkan nilai Co-ocurrence. nah kenapa saat inputannya sebuah “citra” itu tidak bisa di proses. sedangkan ketika nilai matriks pada citra tersebut disalin ke file exel dan inputannya menjadi .xls dia bisa memproses dan mendapatkan nilai koocurrenc nya. terimaksih
    mohon bimbingannya mas.

    • Waalaikumsalam Wr. Wb.
      Yunia Mentari,
      Masukan dari metode GLCM adalah berupa citra grayscale
      Karena citra grayscale merupakan representasi dari matriks 2D
      Maka masukan dari GLCM dapat dikatakan adalah sebuah matriks yg merepresentasikan citra grayscale
      Baik menggunakan matlab maupun menggunakan excel, keluaran dari GLCM adalah berupa matriks kookurensi yang kemudian dapat kita ekstrak cirinya berdasarkan parameter ciri statistik orde dua seperti kontras, homogenitas, energi, entropi, dll

  17. Yunia Mentari

    Oh begitu, terimakasih ya mas adi. atas penjelasannya 🙂

    • Yunia Mentari

      mas mau tanya lagi, saya udah dapat nilai coocurrenc nya. lalu saya masukkan code (mengikuti referensi)
      D =(glcm1+glcm2+glcm3+glcm4)
      MatKook = D/4
      I=[1:258];
      sumX=sum(MatKook)
      sumY=sum(MatKook’);

      MeanX=sumX*I’; MeanY=sumY*I’;
      StdX=sqrt((I-MeanX).^2*SumX’);
      StdY=sqrt((I-MeanY).^2*SumY’);

      CiriASM=sum(sum(MatKook.^2));

      Maksud dari ” I = [1:258] itu apaya mas. soalnya prosesnya error karena matrik dimensinya berbeda.

      Matrik Kookurensinya 8×8

  18. Teguh Esa Putra

    Asslammualaikum. gan untuk source code perhitungan manual nya ada ?.

    kalo ada share dong gan. atau bisa kirim ke email ane ? umbyteguh@gmail.com

    untuk Tugas Akhir gan.

  19. Mas mau bertanya tentang ekstraksi ciri glcm. Nah yang mau saya tanyakan, misalnya kita memiliki 16 data (contrast_0, corr_0, homogenity_0, energy_0, contrast_45, cor_45…..dst) dari 1 gambar, untuk proses pelatihan menggunakan backpropagation bagusnya untuk satu gambar dibagi menjadi 4 data per pattern (setiap pattern mewakili 1 sudut sehingga ada 4 pattern) atau menggunakan 16 data tersebut sebagai inputan backpropagation mas? Terima kasih

  20. slamat malam mas. apa boleh sya minta cara hitung manual ciri statistik GLCMx ?

  21. Mas saya mau tanya, kalau untuk ekstraksi ciri wajah kira-kira cocok ga ya kalo pake metode GLCM ? Thx

    • Ekstraksi ciri wajah bisa dilakukan melalui analisis tekstur dg metode glcm
      Saya pernah melakukan penelitian pengenalan wajah dg segmentasi menggunakan algoritma viola-jones, ekstraksi ciri melalui analisis tekstur dg metode glcm, dan klasifikasi menggunakan algoritma jaringan syaraf tiruan probabilistik (pnn)
      Akurasi yg diperoleh sistem tersebut untuk mengenali wajah cukup tinggi
      Yang perlu diperhatikan dalam sistem tsb adalah faktor pencahayaan saat proses akuisisi citra, sebaiknya usahakan intensitas cahaya di tempat akuisisi citra selalu homogen

  22. mohon maaf gan, mau tanya apakah bisa GLCM digunakan dari hasil deteksi tepi LOG yang sudah di thresholding terlebih dahulu sebelumny?

    • GLCM merupakan singkatan dari Gray Level Co-occurence Matrix yang merupakan metode ekstraksi ciri tekstur dari citra gray level/ grayscale. GLCM hanya dapat digunakan untuk menganalisis citra grayscale, tidak bisa untuk citra rgb atau biner.
      Ada dua macam hasil keluaran segmentasi citra dg metode deteksi tepi yaitu citra grayscale dan citra biner. Jika citra grayscale hasil keluaran deteksi tepi dianalisis teksturnya dg metode GLCM, maka hal tsb dapat dilakukan meskipun tidak umum. Sedangkan jika citra biner hasil keluaran deteksi tepi digunakan untuk mengcropping citra grayscale asli, sehingga diperoleh citra grayscale hasil segmentasi, maka dapat dilakukan analisis tekstur dg metode GLCM

  23. assalamualaikum mas adi. mohon bantuannya mas, untuk berkenan mengirim perhitungan manualnya mas. invers.uuk@gmail.com
    terimakasih 🙂

    • waalaikumsalam uuk
      perhitungan glcm bisa diunduh melalui link berikut http://elib.unikom.ac.id/download.php?id=107467

    • makasih banyak mas , sangat membantu untuk tugas akhir saya 🙂

    • sama sama uuk
      semoga sukses untuk penelitiannya

    • terimakasih mas adi. sebenarnya masih ada yang cukup mengganjal soal distance pada glcm. apakah d itu digunakan untuk menentukan jarak ketetanggaannya ya mas ? dibeberapa jurnal umumnya memberikan contoh d = 1. yang diatasnya tidak ada. mgkin mas adi bisa bantu kasih pencerahan 🙂

    • benar, d merupakan jarak antara suatu piksel dengan piksel tetangganya yang berorientasi sudut tertentu. Secara teori, semakin dekat jarak yang digunakan maka matriks kookurensi yang dihasilkan akan semakin mencirikan tekstur objek. Secara praktek pun akurasi yang dihasilkan sistem dalam mengklasifikasikan citra akan lebih tinggi ketika menggunakan jarak 1 piksel dibandingkan menggunakan jarak lainnya.

    • terimakasih banyak mas adi buat pencerahan e. sangat membantu sekali buat persoalan saya 🙂

    • mas adi kalo diperijinkan berdiskusi, saya pengen tanya untuk matriks ternormilasasi pada gambar 3 (c) pada modul. untuk glcm yang mas adi hasilkan berapa ya mas ? soale saya sudah hitung manual dan aplikasikan pada java lang, hasilnya bukan 0.0833 (0,1) melainkan 0.067 (0,1) dengan nilai pada (0,1) yaitu 2.

    • Untuk informasi, modul tsb bukan saya yang membuat
      Sudah saya cek kembali perhitungan pada modul tsb tidak ada yang salah
      Bisa dicek kembali perhitungan yang sudah uuk lakukan

  24. benar, d merupakan jarak antara suatu piksel dengan piksel tetangganya yang berorientasi sudut tertentu. Secara teori, semakin dekat jarak yang digunakan maka matriks kookurensi yang dihasilkan akan semakin mencirikan tekstur objek. Secara praktek pun akurasi yang dihasilkan sistem dalam mengklasifikasikan citra akan lebih tinggi ketika menggunakan jarak 1 piksel dibandingkan menggunakan jarak lainnya.

  25. Untuk informasi, modul tsb bukan saya yang membuat
    Sudah saya cek kembali perhitungan pada modul tsb tidak ada yang salah
    Bisa dicek kembali perhitungan yang sudah uuk lakukan

  26. mungkin mas adi bila berkenan memberikan masukan terhadap hasil percobaan glcm yang telah saya lakukan, berikut juga telah saya cantumkan referensi dari beberapa jurnal dan modul
    https://drive.google.com/open?id=0B10F25wzXuhjY1A2MXp4T1BjS00

  27. Mas adi, bitdepth pada sebuah image apakah berpengaruh pada proses ekstraksi fitur pada glcm ?

  28. jika pengelompokkan tekstur menggunakan fuzzy c-means bisa kah? untuk coding nya apakah hampir sama?

  29. maaf sebelumnya mas, boleh minta sumber untuk coding algoritma fcm jika ada?
    terima kasih

  30. selamat sore mas, saya mau tanya . saya mau melakukan penelitian terhadap citra grey scale. dengan format citra.pgm (yakni hasil dari scan sinar x rontgen).
    sebelumnya saya pengen tau apa saja langkah2 yang harus saya lakukan dalam mengolah citra tersebut sampai didapatkan paramater statisiknya? . mohon penjelasannya . terimakasih

  31. permisi mas, source code untuk ciri orde satu yang mana ya?

  32. Assalamuallaikum mas adi,

    Maaf mas banyak nanya

    output dari fungsi GLCM (CiriOrdeDua) kenapa cuma muncul di command windows saja mas, tapi di workspace matlab tidak muncul

    contohnya seperti ini

    CiriASM=sum(sum(Matkook.^2));
    CiriCON=0; CiriCOR=0; CiriVAR=0; CiriIDM=0; CiriENT=0;

    for i=1:256
    for j=1:256
    TempCON = (i-j)*(i-j)*Matkook(i,j);
    TempCOR = (i)*(j)*Matkook(i,j);
    TempVAR = (i-MeanX)*(j-MeanY)*Matkook(i,j);
    TempIDM = (Matkook(i,j))/(1+(i-j)*(i-j));
    TempENT = -(Matkook(i,j))*(log2(Matkook(i,j)+eps));
    CiriCON = CiriCON + TempCON;
    CiriCOR = CiriCOR + TempCOR;
    CiriVAR = CiriVAR + TempVAR;
    CiriIDM = CiriIDM + TempIDM;
    CiriENT = CiriENT + TempENT;

    end
    end
    CiriCOR = (CiriCOR-MeanX*MeanY)/(StdX*StdY);

    fprintf(‘\n\tASM =%13.4f\n’,CiriASM);
    fprintf(‘ \tCON =%13.4f\n’,CiriCON);
    fprintf(‘ \tCOR =%13.4f\n’,CiriCOR);
    fprintf(‘ \tVAR =%13.4f\n’,CiriVAR);
    fprintf(‘ \tIDM =%13.4f\n’,CiriIDM);
    fprintf(‘ \tENT =%13.4f\n’,CiriENT);

    supaya nilai CiriCON,CiriCOR,dll muncul di workspace bagaimana ya mas?

    Trimakasih banyak mas adi

  33. Trimakasih mas adi, bimbingan dan masukannya

    Saya mau tanya lagi mas, Misalnya setelah diketahui variabel dari GLCM kemudian input untuk klasifikasi KNN bisa berupa variabel apanya ya mas? Bisa kasih contoh engga mas.

    Trimakasih mas adi

  34. Mas Adi, untuk memakai metode GLCM, untuk citranya apa harus di crop dahulu supaya pas dengan objeknya ? Kalau tidak di crop apa berpengaruh pada hasil metode GLCM nya ? Thx

    • jika yang ingin dianalisis teksturnya adalah sebagian objek dari citra, maka harus dilakukan segmentasi terlebih dahulu
      tetapi jika yang dianalisis teksturnya adalah seluruh objek pada citra, maka tidak perlu dilakukan segmentasi

  35. Trimakasih mas adi, atas jawabannya dan bimbingannya.

    saya mau tanya lagi mas.
    jika dimisalkan masukan algoritma KNN lebih dari 2 ciri (Contrast, Entropy, Corelation, variance) apakah bisa mas?
    apakah hasil klasifikasi dapat dikatakan lebih akurat.

    dan cara untuk mencari eucladian distancenya bagaimana ya mas?

    Trimakasih banyak mas adi.

    • sama sama thomi
      masukan knn bisa lebih dari dua
      tidak selalu semakin banyak ciri masukan akan meningkatkan akurasi
      hanya ciri yang benar2 dapat membedakan antara kelas satu dengan lainnya yang dapat meningkatkan akurasi
      dalam function knnclassify atau fitcknn, jarak euclidean dapat diaplikasikan dengan cara memberikan properti ‘Distance’,’euclidean’

  36. trimakasih banyak mas adi,

    kalo perhitungan manual eucladian menggunakan coding seperti apa ya mas?

  37. assalamuallaikum mas

    saya mau tanya,apakah data training juga bisa jadi data sampel?
    jumlah data training harus lebuh banyak dari data sampel tidak mas?
    cara membuat data misalnya nilai glcm sampel dan nilai glcm training untuk masukan klasifikasi knn seperti apa ya mas,

    trimakasih mas adi

  38. trimakasih mas adi, saya pelajari terlebih dahulu

  39. assalamuallaikum mas adi,

    saya mau tanya, citra hasil segmentasi perlu di normalisasi tidak ya mas?
    fungsi normalisasi itu untuk apa ya mas?
    normalisasi dan filtering apakah bisa di bilang sama mas?

    trimakasih mas.

    • waalaikumsalam thomi
      jika hasil segmentasi sudah merepresentasikan objek dan background dengan baik maka tidak perlu dilakukan filtering
      normalisasi dilakukan sebelum proses segmentasi, bukan sebaliknya
      pada umumnya proses normalisasi digunakan untuk memperbaiki tampilan visual citra agar mudah disegmentasi

  40. trimakasih banyak mas adi,

    ada contoh cara normalisasi citra engga mas?

    trimakasih mas

  41. Assalamualaikum mas , saya ingin bertanya untuk sudut pada GLCM kenapa menggunakan 0 ,45,90,135? Apa sudut lain tidak bisa? Apa pengaruhnya?
    Terimakasih sebelumnya.

    • Waalaikumsalam Fira
      Pada prinsip connected component labeling dengan 8-connectivity terdapat 8 sudut yaitu 0, 45, 90, 135, 180, 225, 270, 315

      Dalam algoritma GLCM, sudut 0 sama dengan sudut 180, sudut 45 sama dengan sudut 215, sudut 90 sama dengan sudut 270, dan sudut 135 sama dengan sudut 315

      maka diperoleh keempat sudut tersebut

  42. saya ingin bertanya lagi untuk perhitungan nilai contrast , entropy , energy , dsb dihitung untuk keseluruhan gambar atau hanya diambil per tiap piksel? dan pada dalam satu gambar apa nilai entropy dan fitur GLCM dihtung bersamaan atau bagaimana?
    kebetulan saya sedang melakukan penelitian untuk klasifikasi jenis jerawat menggunakan GLCM.

    terimakasih sebelumnya.

  43. assalamuallaikum mas… pernah melakukan penelitian tentang klasifikasi citra menggunakan GLCM dan Navie Bayes gak?maudijadikan referensi buat tugas akhir …
    terimakasih sebelumnya..

  44. Mas Adi, saya mau bertanya apakah sebelumny Mas Adi pernah melakukan penelitian mengenai GLCM dan KNN dengan eucledian distance? cuma sebagai referensi terkait saja begitu Mas karna saya kurang memahami fungsi matlab ‘fitcknn’ dan ‘predict’
    terima kasih

  45. Hallo Mas Adi,
    Apakah ada penjelasan mengenai fitur Haralick? Dalam penelitian saya, diujicobakan klasifikasi dan testing dengan 5 fitur Haralick dan 13 fitur Haralick (Bahkan jujur saya tidak tahu perbedaannya, murni hanya uji coba). Hasilnya lebih baik menggunakan 13 fitur, tetapi resource perhitungan menjadi lebih berat (saya menggunakan kNN). Sedangkan 5 fitur sebelumnya, hasilnya tidak jelek2 amat tapi resource komputasi nya menjadi sangat ringan. Hingga pada sidang, penguji meminta revisi untuk penjelasan terkait fitur Haralick yang dipakai dan alasan penggunaannya dalam uji coba.

  46. Assalamu’alaikum mas adi,
    saya mau tanya mas soal pixel distance = 1 dengan pixel distance = 2 itu apa bedanya?
    dan bagaimana cara kerja nya,
    terima kasih

  47. terima kasih atas respon nya mas adi, mau tanya lagi mas kan dalam glcm itu ada ciri statistik untuk entropy, nah yang mau saya tanyakan kenapa mas adi tidak memasukan juga ekstraksi ciri untuk entropy dan apa alasannya mas, terima kasih sebelumnya mas adi

  48. Assamu’alaikum mas,
    saya mau tanya mas mengenai perhitungan secara manual untuk mendapatkan nilai pada tiap tiap parameternya. misal, untuk parameter kontras dengan derajat 0 dengan nilai 0,63386. nah, untuk mendapatkan nilai 0,63386 itu gmn cara perhitungan manualnya, bisa dijelaskan secara detail saja mas? saya sudah baca-baca modul 3 yang sudah mas share tsb, sorry mas masih bingung. minta solusinya mas. terima kasih mas sebelumnya. wassalamu’alaikum wr.wb

  49. Assalamualaikum mas adi.
    saya ingin tahu mas, bila menggunakan metode GLCM apakah backgroud tidak berpengaruh mas jika diprosentasekan keikutsertaan background sekitar 15-20%.

  50. Assalamualaikum mas adi, saya masih bingung apa fungsi sudut pada GLCM? Kenapa tidak bisa memakai sudut lain ?

    • Waalaikumsalam dinda
      Dalam 8 arah mata angin ada arah timur, tenggara, selatan, barat daya, dst

      Maka besarnya sudut antara masing2 arah adalah 45 derajat

      Dalam penghitungan glcm
      sudut 0 sama saja kalau kita menghitung sudut 180
      sudut 45 sama saja kalau kita menghitung sudut 225
      sudut 90 sama saja kalau kita menghitung sudut 270
      sudut 135 sama saja kalau kita menghitung sudut 315

      Itulah alasan mengapa dalam glcm digunakan 4 sudut dg interval 45 derajat

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: