Ekstraksi Ciri Tekstur Menggunakan Tapir Gabor Wavelet Untuk Membedakan Daging Babi, Daging Kambing, dan Daging Sapi

Akhir-akhir ini sering muncul kasus di masyarakat tentang keamanan daging sapi dan kambing seperti pemalsuan daging sapi, daging kambing dipalsukan dengan daging babi oleh oknum-oknum tidak bertanggung jawab. Kondisi ini tentu saja dapat merugikan konsumen terutama konsumen di pasar tradisional dan mengingat banyaknya konsumen di kalangan masyarakat indonesia ini sebagian besar merupakan masyarakat muslim. Kurangnya pengetahuan masyarakat tentang cara membedakan daging sapi, daging kambing dengan daging babi menjadikan konsumen tidak teliti dalam membeli daging. Maka dari itu demi melindungi konsumen dari kasus penipuan seperti ini, perlu adanya suatu alat atau sistem yang dapat membantu masyarakat untuk mengenali daging sapi, daging kambing dan daging babiTeknologi pengenalan pola saat ini telah banyak mengalami perkembangan. Hal ini dapat dimanfaatkan untuk membantu menyelesaikan masalah ini dengan membuat suatu sistem yang dapat mengklasifikasi jenis daging secara otomatis untuk mengurangi masalah-masalah tentang pemalsuan daging.

Berikut ini merupakan contoh pemrograman matlab untuk melakukan ekstraksi ciri citra daging babi, daging kambing, dan daging sapi menggunakan tekstur Tapir Gabor Wavelet . Langkah-langkahnya sebagai berikut:

1. Membaca citra RGB.

Citra Asli atau Citra RGB

 

2. Memotong Citra menjadi ukuran 2091.5 x 1371.5 x 978 x 852.

 Cropping Citra


3. Resize ukuran citra yang telah di potong dengan ukuran piksel menjadi 256 x 256, agar piksel dari semua citra sama

 Resize Citra


4. Mengkonversi Citra menjadi citra keabuan yang bertujuan untuk menuju tahap selanjutnya yaitu Tapir Gabor Wavelet , karena Tapir Gabor Wavelet  hanya dapat diolah ketika citra sudah dalam bentuk citra keabuan.

 Citra Keabuan

 

5. Mencari Nilai Tapir Gabor Wavelet, Ciri Tapir Gabor Wavelet yang diekstrak menggunaikan orde pertama diantaranya: Mean, Variance, Skewness, Kurtosis, Entropy, dan Energy.

dalam contoh nilai orientation yang digunakan adalah 0o  dan wavelength adalah 2,, sebenarnya orientation banyak nilai yang dapat dipakai seperti 0º, 30º, 45º, 60º, 90º, 120º, 135º, 150º, 180º, dan 225º, sedangkan untuk wavelength dapat menggunakan nilai 0, 1, 2, 3, 4, 5, dan 6 (Semakin rendah nilai wavelength yang diberikan, maka hasil pengujianpun akan terlihat semakin terang dan blur). untuk mencari nilai orde pertama yang dicari dari filter gabor adalah dengan mencari nilai tektur magnitudenya.

Tapir Gabor Wavelet

Hasil Nilai Ekstraksi Ciri Tapis Gabor Wavelet Menggunakan Orde Pertama

Source code yang digunakan adalah sebagai berikut: 

seluruh citra daging dapat didownload melalui:

https://mega.nz/folder/PqYynKZQ#_XI31flX_gNlKdlE0JoaSw

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
clc, clear all, warning off all; tic;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                              Read Image                                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[fname,pname] = uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif';'*.ppm';},'Open Image');
gambar = imread([pname fname]);
figure (1);
imwrite(gambar, 'Gambar Asli.jpg');
imshow(gambar); 
title('Gambar Asli');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                          Cropping Gambar                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
crop = imcrop(gambar,[2091.5 1371.5 978 852]);
figure (2); 
imwrite(crop, 'Cropping Gambar.jpg');
imshow(crop); 
title('Cropping Gambar');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                           Resize Gambar                                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
resize = imresize (crop,[256 256]);
figure (3);
imwrite(resize, 'Resize Citra.jpg');
imshow(resize); 
title('Resize Citra');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                          Grayscale Gambar                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
grayscale = rgb2gray(resize); %proses Grayscaling
figure (4);
imwrite(grayscale, 'Citra Keabuan.jpg');
imshow(grayscale); 
title('Citra Keabuan');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                              GABOR                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wavelength = 2;
orientation = 0;
[mag,phase] = imgaborfilt(grayscale,wavelength,orientation);
figure(5);
imshow(mag,[]);
title('Citra Filter Gabor');
    
    H = imhist(mag)';
    H = H/sum(H);
    I = [0:255]/255;
    
    CiriMEAN = mean2(mag);
    CiriVAR = (I-CiriMEAN).^2*H';
    CiriSKEW = (I-CiriMEAN).^3*H'/CiriVAR^1.5; 
    CiriKURT = (I-CiriMEAN).^4*H'/CiriVAR^2-3; 
    CiriENT = -H*log2(H+eps)';
    foo = H.^2; 
    CiriEN   = sum (foo(:)); 
    
fprintf('\n\tMEAN       :%13.4f\n',CiriMEAN);
fprintf('\n\tVARIANCE   :%13.4f\n',CiriVAR);
fprintf('\n\tSKEWNESS   :%13.4f\n',CiriSKEW);
fprintf('\n\tKURTOSIS   :%13.4f\n',CiriKURT);
fprintf('\n\tENTROPY    :%13.4f\n',CiriENT);
fprintf('\n\tENERGY     :%13.4f\n',CiriEN);

0 Comments