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
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 analisis tekstur, analisis tekstur citra matlab, analisis tekstur menggunakan matlab, cara analisis tekstur menggunakan matlab, cara membuat algoritma glcm menggunakan matlab, cara membuat aplikasi gui matlab pengolahan citra digital, cara membuat aplikasi gui matlab sederhana, cara membuat koding glcm matlab, contoh aplikasi pengolahan citra digital matlab, contoh aplikasi pengolahan citra digital menggunakan gui matlab, contoh gui matlab, contoh gui matlab pengolahan citra, contoh gui matlab sederhana, Contrast Correlation Energy Homogeneity, glcm matlab, Gray-Level Co-Occurrence Matrix (GLCM), gui matlab, koding glcm matlab, koding matlab analisis tekstur, koding matlab ekstraksi ciri citra, koding matlab ekstraksi ciri orde dua, koding matlab ekstraksi ciri orde pertama, koding matlab ekstraksi ciri orde satu, koding matlab ekstraksi ciri tekstur, pengenalan pola citra tekstur matlab, pengolahan citra tekstur matlab, texture analysis. Bookmark the permalink. 189 Comments.
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’
Oke, terima kasih banyak mas adi 🙂
sama sama zizi
semoga sukses penelitiannya
assamualaikum, mas ada gak proses perhitungan ciri dengan GLCM secara manualnya?,
lagi butuh untuk referensi tugas akhir,, kalo ada tolong d share ya mas,,
Waalaikumsalam Wr Wb
Ada mbak, boleh minta alamat email?
Assalamu’alaikum mas, boleh share juga perhitungan manualnya ke email saya ? saya butuh buat referensi, email saya sheilamazied@gmail.com. terima kasih mas.
done, you’re welcome
Permisi mas, saya boleh minta perhitungan manualnya juga mas untuk referensi? Ini email saya yb.agopatria@gmail.com. Terima kasih.
Permisi mas, saya boleh minta perhitungan manualnya juga mas untuk referensi? Ini email saya anjujohan@gmail.com Terima kasih.
assamualaikum, bang kalau paper nya ada..
kalau ada tolong d share ya bang,,
Waalaikumsalam Wr. Wb.
Penemu metode GLCM adalah Robert M. Haralick dkk pd tahun 1973, paper aslinya bisa diunduh melalui https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwjU8I3hjebPAhUBvo8KHWp3BY4QFgg7MAM&url=http%3A%2F%2Fharalick.org%2Fjournals%2FTexturalFeatures.pdf&usg=AFQjCNFKXoMgiT_A5UHAWoi1l4i1n0eaQA
ka saya mau tanya, saya coba source code di atas tapi masih ada erorr itu kenapa ya ?
dan code di pengenalan pola sama atau tidak ya ?
terima kasih
terima kasih ka
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
ukuran pixel mempengaruhi hasil analisis tekstur
untuk menyamakannya, bisa menggunakan perintah sbb:
I = imread(‘peppers.png’);
J = imresize(I,[200 100]);
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
terima kasih atas jawabannya ka, ka saya boleh minta perhitungan gclm secara manual ka ?
perhitungan glcm bisa dipelajari melalui link berikut http://elib.unikom.ac.id/download.php?id=107467
mas, cara normalisasi GLCM bagaimana ya?
boleh minta source code normalisasi GLCM?
Bisa menggunakan persamaan berikut
(y-ymin)/(ymax-ymin)=(x-xmin)/(xmax-xmin)
untuk variabel x dan y nya menunjukkan apa ya mas?
y data hasil normalisasi
x data asli sebelum dinormalisasi
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
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.
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
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
Oh begitu, terimakasih ya mas adi. atas penjelasannya 🙂
Sama sama yunia
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
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.
bisa diunduh pada link berikut http://elib.unikom.ac.id/download.php?id=107467
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
ciri tektur diambil dari nilai rata2 keempat sudut
satu pattern diwakili oleh empat ciri yaitu rata2 contrast, rata2 correlation, rata2 energy, rata2 homogeneity
Terima kasih jawabannya mas
slamat malam mas. apa boleh sya minta cara hitung manual ciri statistik GLCMx ?
bisa diunduh pada link berikut http://elib.unikom.ac.id/download.php?id=107467
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
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
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 🙂
sama sama uuk
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
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.
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
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
Mas adi, bitdepth pada sebuah image apakah berpengaruh pada proses ekstraksi fitur pada glcm ?
Untuk citra grayscale dg kedalaman bit sebesar 8, maka ukuran matriks kookurensi adalah 256×256
Utk citra grayscale dg kedalaman bit sebesar 10, maka ukuran matriks kookurensi adalah 1024 x 1024
Dst
terimakasih mas adi🙂
sama sama uuk
jika pengelompokkan tekstur menggunakan fuzzy c-means bisa kah? untuk coding nya apakah hampir sama?
hal tsb bisa dilakukan
ciri tekstur seperti contrast, correlation, energy, homogeneity dijadikan sebagai variabel masukan dalam algoritma fcm
maaf sebelumnya mas, boleh minta sumber untuk coding algoritma fcm jika ada?
terima kasih
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
selamat sore juga irfan
secara garis besar, pengolahan citra rgb maupun grayscale pada prinsipnya sama
yang membedakan hanyalah pada citra grayscale tidak dapat dilakukan segmentasi berdasarkan warna, segmentasi didasarkan pada derajat keabuan dari citra grayscale
materi untuk mendapatkan ciri statistik orde satu dapat dilihat pada laman berikut https://pemrogramanmatlab.com/2016/11/01/ekstraksi-ciri-citra-rgb/
permisi mas, source code untuk ciri orde satu yang mana ya?
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
Waalaikumsalam thomi
perintah tersebut merupakan function sehingga variabel keluaran tidak muncul pada workspace
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
masukan dari algoritma knn bisa menggunakan kombinasi dua dari empat ciri GLCM
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
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’
trimakasih banyak mas adi,
kalo perhitungan manual eucladian menggunakan coding seperti apa ya mas?
bisa dilihat pada halaman berikut https://pemrogramanmatlab.com/2015/10/22/cara-mengukur-jarak-antara-dua-objek-dalam-citra/
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
waalaikumsalam thomi
materi mengenai hal tersebut bisa dilihat pada halaman berikut
https://pemrogramanmatlab.com/pengolahan-citra-digital/ekstraksi-ciri-citra-digital/
dan
https://pemrogramanmatlab.com/2016/04/21/k-nearest-neighbor-k-nn-menggunakan-matlab/
trimakasih mas adi, saya pelajari terlebih dahulu
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
trimakasih banyak mas adi,
ada contoh cara normalisasi citra engga mas?
trimakasih mas
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
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.
penghitungan nilai tsb untuk keseluruhan citra secara bersamaan
assalamuallaikum mas… pernah melakukan penelitian tentang klasifikasi citra menggunakan GLCM dan Navie Bayes gak?maudijadikan referensi buat tugas akhir …
terimakasih sebelumnya..
waalaikumsalam
materi mengenai algoritma naive bayes bisa dilihat pada halaman berikut https://pemrogramanmatlab.com/data-mining-menggunakan-matlab/naive-bayes/
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
materi mengenai algoritma KNN bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/data-mining-menggunakan-matlab/k-nearest-neighbor-knn-menggunakan-matlab/
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.
Hallo Vinno
materi mengenai fitur Haralick dapat dilihat pada alamat berikut
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwjQpfivksTTAhWHRI8KHYTVDP0QFgg2MAE&url=http%3A%2F%2Fharalick.org%2Fjournals%2FTexturalFeatures.pdf&usg=AFQjCNFKXoMgiT_A5UHAWoi1l4i1n0eaQA
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
waalaikumsalam wahyu
pixel distance adalah jarak ketetangaan antara dua buah piksel yang berdekatan dalam matriks kookurensi
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
Dalam jurnal yg ditulis oleh Robert M. Haralick dkk pd tahun 1973, terdapat 14 ciri statistik dalam algoritma glcm
Pada jurnal tsb dapat dipelajari persamaan dan ciri apa saja yg digunakan dalam analisis tekstur menggunakan metode GLCM
Jurnal tsb dapat diunduh pada alamat berikut ini
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwjU8I3hjebPAhUBvo8KHWp3BY4QFgg7MAM&url=http%3A%2F%2Fharalick.org%2Fjournals%2FTexturalFeatures.pdf&usg=AFQjCNFKXoMgiT_A5UHAWoi1l4i1n0eaQA
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
Waalaikumsalam santo
persamaan yg digunakan utk menghitung nilai2 tsb telah dijelaskan pada modul analisis tekstur
Assalamualaikum mas adi.
saya ingin tahu mas, bila menggunakan metode GLCM apakah backgroud tidak berpengaruh mas jika diprosentasekan keikutsertaan background sekitar 15-20%.
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