Tutup Muslika D0218365-2
Tutup Muslika D0218365-2
MUSLIKA
D0218365
Sarjana Teknik
MUSLIKA
D0218365
ii
HALAMAN PERSETUJUAN
SKRIPSI
Diusulkan oleh
Muslika
D0218365
Telah disetujui
Pembimbing,
Pembimbing l Pembimbing ll
iii
HALAMAN PENGESAHAN
SKRIPSI
KLASIFIKASI MAKANAN TRADISIONAL MANDAR
MENGGUNAKAN EKSTRAKSI FITUR WARNA DAN TEKSTUR
DENGAN METODE K-NEAREST NEIGHBOUR
MUSLIKA
D0218365
Pembimbing l Penguji l
Pembimbing ll Penguji ll
Penguji lll
iv
PERNYATAAN
Dengan ini saya menyatakan bahwa skripsi ini tidak terdapat karya yang
pernah diajukan untuk memperoleh gelar kesarjanaan suatu perguruan tinggi, dan
sepanjang pengetahuan saya tidak terdapat karya atau pendapat yang pernah ditulis
dan diterbitkan oleh orang lain, kecuali secara tertulis diacukan dalam naskah dan
Muslika
D0218365
v
ABSTRAK
Orang yang baru pertama kali melihat atau wisatawan dari luar daerah akan
kesulitan untuk membedakan nama, rasa, maupun jenis makanan tradisional suatu
daerah hanya dengan melihat tanpa mencicipi makanan tersebut. Salah satu solusi
untuk memudahkan masyarakat dalam mengetahui, mencatat, dan memantau jenis-
jenis makanan yang dikonsumsi adalah dengan membuat sistem cerdas. Untuk
mendukung solusi tersebut, dilakukan penelitian untuk mengenali jenis makanan
menggunakan ekstraksi fitur warna dan fitur tekstur. Tahap awal dalam melakukan
pengenalan adalah dengan cara melakukan klasifikasi jenis makanan tersebut. Proses
pengklasifikasian dilakukan berdasarkan nilai hasil ekstraksi fitur yang telah
dinormalisasi. Proses pengenalan diawali dengan proses preproccessing untuk
mendapatkan objek citra yang selanjutnya dilakukan ekstraksi fitur. Ekstraksi fitur
yang digunakan adalah Color Histogram dan Gray Level Co-occurrence Matrix.
Pada ekstraksi fitur menggunakan Color Histogram menggunakan 3 kanal warna
yaitu red, green, blue dengan masing-masing warna memiliki fitur mean, standar
deviation, dan skewness. Selain itu, pada ekstraksi fitur dengan Gray Level Co-
occurrence Matrix memiliki 6 fitur seperti contrast, dissimilarity, homogeneity,
angular second moment, energy, dan correlation dengan sudut pengambilan nilai
piksel 0°, 45°, 90°, dan 135°. Metode yang diterapkan untuk mengklasifikasikan nilai
dari hasil ekstraksi fitur adalah menggunakan metode klasifikasi K-Nearest
Neighbour. Hasil dari akurasi terbaik yang dihasilkan oleh metode-metode tersebut
adalah sebesar 82% pada k=1 dengan perbandingan data latih dan data uji 60:40%.
Kata Kunci: Jenis makanan, Color Histogram, Gray Level Co-occurrence Matrix,
klasifikasi, k-nearest neighbour.
vi
ABSTRACT
People who are seeing it for the first time or tourists from outside the area
will find it difficult to distinguish the name, taste, or type of traditional food of an
area just by looking without tasting the food. One solution to make it easier for the
public to know, record, and monitor the types of food consumed is to create an
intelligent system. To support this solution, research was conducted to identify the
type of food using color feature extraction and texture feature extraction. The initial
stage in doing the introduction is by classifying the type of food. The classification
process is carried out based on the value of the normalized feature extraction results.
The recognition process begins with a preprocessing process to obtain an image
object which is then performed by feature extraction. Feature extraction used is
Color Histogram and Gray Level Co-occurrence Matrix. In feature extraction using
the Color Histogram using 3 color channels, namely red, green, blue with each color
having a mean, standard deviation, and skewness feature. In addition, feature
extraction with Gray Level Co-occurrence Matrix has 6 features such as contrast,
dissimilarity, homogeneity, angular second moment, energy, and correlation with
pixel value angles of 0°, 45°, 90°, and 135°. The method applied to classify the value
from the feature extraction is using the K-Nearest Neighbour classification method.
The results of the best accuracy produced by these methods are 82% at k=1 with a
comparison of training data and test data of 60:40%.
vii
KATA PENGANTAR
Puji syukur saya ucapkan atas kehadirat Allah SWT. yang telah
Shalawat serta salam tak lupa kita kirimkan kepada baginda Rasulullah Muhammad
SAW. yang telah membawa kita dari alam yang gelap gulita menuju alam yang
memberikan bantuan dan dukungan serta semangat yang tak henti-hentinya selama
proses pengerjaan skripsi ini. Untuk itu pada kesempatan ini saya menyampaikan
1. Ucapan terima kasih kepada keluarga tercinta serta keluarga besar lainnya yang
penulis.
2. Ibu Dr. Ir. Hafsah Nirwana, M.T., selaku Dekan Fakultas Teknik Universitas
Sulawesi Barat.
3. Bapak Ir. Sugiarto Cokrowibowo, S.Si, MT sebagai wakil dekan Fakultas Teknik
4. Bapak Muh. Fahmi Rustam, S.Kom., M.T., selaku Ketua Program Studi Teknik
Informatika.
viii
5. Ibu Arnita Irianti, S.Si., M.Si., selaku pembimbing satu yang telah meluangkan
6. Ibu Dr. Eng. Sulfayanti, S.Si., M.T., selaku pembimbing kedua yang telah
penulis.
10. Seluruh staf, pengajar, teknisi, dan administrasi yang ada di Prodi Informatika
11. Teman-teman angkatan 2018 Teknik Informatika yang telah membantu penulis
mendapatkan balasan yang berlipat ganda dari Allah SAW. Penulis juga berharap
Muslika
D0218365
ix
DAFTAR ISI
x
K. Penelitian Terkait ........................................................................................22
BAB III METODOLOGI PENELITIAN ......................................................... 26
A. Jenis Penelitian ............................................................................................26
B. Lokasi dan Waktu Penelitian ......................................................................26
C. Alat dan Bahan ............................................................................................27
D. Tahap Penelitian ..........................................................................................28
1. Pengumpulan Data .....................................................................................28
2. Analisis Data ..............................................................................................28
E. Gambaran Sistem ........................................................................................29
F. Tahap Pengujian ..........................................................................................32
BAB IV HASIL DAN PEMBAHASAN ............................................................ 35
A. Analisis Kebutuhan .....................................................................................35
B. Pengumpulan Data ......................................................................................36
C. Perancangan (Design) Proses Implementasi ...............................................37
D. Implementasi (Implementation) ..................................................................45
1. Preprocessing Citra....................................................................................45
2. Color Histogram ........................................................................................48
3. Gray Level Co-Occurance Matrix (GLCM) ..............................................50
4. Klasifikasi K-Nearest Neighbour ...............................................................52
5. Confusion Matrix .......................................................................................53
E. Pengujian .....................................................................................................58
BAB V PENUTUP ............................................................................................... 66
A. Kesimpulan .................................................................................................66
B. Saran ...........................................................................................................67
DAFTAR PUSTAKA .......................................................................................... 68
LAMPIRAN-LAMPIRAN ................................................................................. 70
a. Lampiran Fitur Data Latih ..........................................................................70
b. Lampiran Fitur Data Uji ..............................................................................71
c. Lampiran Tabel Hasil Pengujian .................................................................72
xi
d. Lampiran Sourcode : ...................................................................................74
xii
DAFTAR GAMBAR
Gambar 2.1 Jepa Katong atau Jepa sagu (Noval, 2012) .............................................. 7
Gambar 2.2 Jepa Golla mamea atau Jepa gollamamea ............................................... 7
Gambar 2.3 Jepa ubi .................................................................................................... 8
Gambar 2.4 Loka Sattai ............................................................................................... 8
Gambar 3.1 Diagram alir perancangan keseluruhan proses klasifikasi. .................... 30
Gambar 4.1 Data latih, (a) kelas gollamamea, (b) kelas lokasattai, (c) kelas sagu dan
(d) kelas ubi ................................................................................................................ 37
Gambar 4.2 Sampel data uji ....................................................................................... 37
Gambar 4.3 Diagram alir proses segmentasi citra ..................................................... 38
Gambar 4.4 Diagram Alir Ekstraksi Fitur Color Histogram ..................................... 40
Gambar 4.5 Diagram alir ekstraksi fitur GLCM ........................................................ 42
Gambar 4.6 Diagram alir proses klasifikasi dengan KNN ......................................... 44
Gambar 4.7 (a) citra sebelum resize dan (b) citra setelah resize ke 300x300 pixel ... 46
Gambar 4.8 Citra grayscale ....................................................................................... 46
Gambar 4.9 Citra blur ................................................................................................ 46
Gambar 4.10 Citra threshold ...................................................................................... 47
Gambar 4.11 Citra opening ........................................................................................ 47
Gambar 4.12 Citra closing ......................................................................................... 47
Gambar 4.13 Citra masking........................................................................................ 48
Gambar 4.14 Citra croping ........................................................................................ 48
Gambar 4.15 (a) Ploting color histogram, (b) citra red, (c)citra green dan (d) citra
blue ............................................................................................................................. 49
Gambar 4.16 (a) citra rgb dan (b) citra grayscale ...................................................... 50
xiii
DAFTAR TABEL
xiv
BAB I
PENDAHULUAN
A. Latar Belakang
pokoknya. Beras, ubi kayu, pisang maupun sagu sangat berpotensi sebagai makanan
lokal Sulawesi Barat. Ubi kayu dan sagu dapat diolah menjadi berbagai produk
makanan, salah satu yang sangat terkenal sebagai makanan lokal masyarakat Mandar
adalah jepa, baik itu jepa gula merah (gollamamea), jepa sagu maupun jepa ubi serta
olahan pisang yang biasa dikenal dengan nama loka sattai (pisang santan). Usaha
pemasaran jepa masih lokal sehingga orang yang baru pertama kali melihat atau
wisatawan dari luar daerah akan kesulitan untuk membedakan nama, rasa, maupun
jenis makanan hanya dengan melihatnya tanpa mencicipi makanan tersebut. Seiring
citra makanan dari keempat jenis makanan tersebut. Hal ini berguna untuk mengenali
1
2
contohnya makanan yang memiliki bentuk yang sama belum tentu beraroma sama,
adapun makanan yang teksturnya terdapat kemiripan, belum tentu memiliki bentuk
yang sama. Pada penelitian yang dilakukan oleh Halim, Hardy, dan Mytosin (2015),
menggunakan salah satu ekstraksi fitur warna yaitu Color Histogram, dalam aplikasi
pencarian gambar menunjukkan hasil akurasi sebesar 66,66% pada pencarian gambar
Histogram yang dilakukan oleh Simarmata, Sari, dan Adinugroho (2019) pada
Matrix (GLCM). Metode ini sudah banyak diterapkan dalam penelitian untuk
diantaranya adalah Neneng dan Yusra (2017) pada penelitian klasifikasi jenis daging
berdasarkan analisa citra tektur dan warna dimana penelitian ini menghasilkan
akurasi sebesar 75,6%. Selain itu pada penelitian lain, ekstraksi fitur tekstur
teknik lain seperti Linear Regression Model, Wavelet dan Gabor dengan
(Kulkarni et al., 2014). Adapun penelitian pada klasifikasi daun dengan perbaikan
mengenali dan membedakan jenis makanan. Akan tetapi berbeda dengan mereka
yang baru pertama kali melihat jenis makanan baru sehingga sulit untuk mengenali
Penelitian ini bertujuan untuk mengenali jenis makanan berbasis citra berdasarkan
menggunakan metode GLCM untuk ekstraksi fitur tekstur, metode Color Histogram
dengan ruang warna (Red, Green, Blue) untuk ekstraksi warna serta KNN untuk
terdekatnya.
B. Rumusan Masalah
C. Batasan Masalah
1. Data yang digunakan berupa data citra dari empat kelas yaitu jepa gollamamea,
2. Dataset yang digunakan berasal dari citra makanan yang di ambil langsung.
3. Menggunakan metode GLCM untuk ekstraksi fitur tekstur dan color histogram
untuk fitur warna citra dan KNN untuk metode klasifikasi citra.
D. Tujuan Penelitian
fitur tekstur.
Nearest Neighbour.
5
E. Manfaat Penelitian
TINJAUAN PUSTAKA
singkong atau ubi yang diparut terlebih dahulu kemudian diperas untuk
menghilangkan kadar airnya dan kemudian diayak dan dicampurkan dengan parutan
buah kelapa untuk memberinya rasa gurih dan nikmat. Jepa dapat dijadikan sebagai
bahan makanan pokok, pengganti nasi karena kandungan karbohidratnya yang cukup
tinggi, kandungan karbohidratnya kurang lebih sama dengan yang dikandung oleh
nasi (Imisulbar, 2020). Adapun varian makanan Tradisional Mandar yang akan
1. Jepa Katong (sagu), yaitu jepa yang terbuat dari katong yang dalam bahasa
menggunakan tungku, lalu sagu yang halus dibuat secara merata di permukaan
6
7
2. Jepa Golla Mamea, yaitu jepa yang terbuat dari ubi kayu yang telah halus
kemudian dipanaskan menggunakan tungku, lalu ubi kayu yang telah halus
dibuat secara merata di permukaan tungku. Gula merah dapat ditaburkan untuk
kayu. Proses pengolahannya yaitu ubi kayu dikupas kemudian dibersihkan, lalu
diayak dan dicampurkan dengan parutan buah kelapa sebagai penambah rasa
4. Loka sattai (Lokasattai), terbuat dari pisang mentah yang direbus dengan
B. Image Processing
merupakan metode untuk mengubah citra menjadi bentuk digital dan melakukan
beberapa operasi padanya, untuk mendapatkan citra yang disempurnakan atau untuk
dispensasi sinyal dimana input-nya adalah gambar, seperti frame (bingkai) video atau
9
foto dan output-nya dapat berupa gambar atau karakteristik yang terkait dengan
sebagai berikut :
1. Grayscale
Untuk melakukan perubahan suatu gambar full color (RGB) menjadi suatu citra
warna merah G : Unsur warna hijau B : Unsur warna biru. Nilai yang dihasilkan
dari persamaan diatas akan diinput ke masing-masing unsur warna dasar citra
2. Gaussian blur
Gaussian Blur berfungsi untuk menempatkan warna transisi dalam citra sehingga
menghasilkan efek lembut pada sisi citra. Digunakan untuk menghilangkan noise
yang berasal dari pantulan cahaya pada kamera (Febriani, Sari and Wihandika,
2019).
3. Threshold
Metode threshold bertujuan untuk membagi histogram citra gray level kedalam
dua wilayah yang berbeda secara otomatis. Metode threshold melakukan analisis
segmen citra. Tujuan dari operasi morfologi adalah untuk memperbaiki hasil
segmentasi.
a) Elemen penstruktur
Operasi opening adalah operasi erosi yang diikuti dengan dilasi dengan
5. Masking
digital dengan background yang ada di sekitar objek (Febriani, Sari and
Wihandika, 2019).
6. Cropping
wilayah objek pada citra dengan metode cropping pada penelitian ini, keluaran
dari proses ini berupa citra RGB (Batubara, Widiyanto and Chamidah, 2020).
Model warna RGB didasarkan pada ilmu mata manusia yang memahami
RGB umumnya ditampilkan di kamera digital, dan jenis perangkat tampilan berbasis
cahaya lainnya. Model warna merupakan proses penciptaan lebih banyak warna
melalui warna-warna primer, yaitu R (red), G (green), dan B (blue). RGB adalah
warna aditif yang menampilkan warna menggunakan ‘cahaya model’. Maka dari itu
model warna aditif atau RGB paling umum digunakan dalam menampilkan gambar-
gambar melalui perangkat elektronik. Dalam proses model warna RGB ini, jika tiga
warna ditumpangkan dengan intensitas paling sedikit maka warna hitam terbentuk.
12
Jika ditambahkan intensitas cahaya penuh, maka warna putih akan terbentuk
(Wiranata, 2019).
D. Color Histogram
intensitas yang muncul di seluruh piksel citra. Nilai yang besar menyatakan bahwa
piksel-piksel yang mempunyai intensitas tersebut sangat banyak. Pada citra berskala
keabuan, jumlah skala keabuan (biasa disimbolkan dengan L) sebanyak 256. Nilai
skala keabuan dimulai dari 0 hingga 255. Pada pengolahan citra, histogram
mempunyai peran untuk mengamati penyebaran intensitas warna dan dapat dipakai
serta sebaran warna, untuk penentuan batas-batas dalam pemisahan objek dari latar
Metode ini adalah metode untuk mengambil fitur warna pada suatu citra.
Citra yang diperlukan dalam proses ini berupa citra red, green dan blue. Selanjutnya,
dilakukan pengambilan nilai fitur-fitur pada Color Histogram yang terdiri Mean,
Standar Deviasi, dan Skew. Fitur Mean adalah nilai rata-rata pada masing-masing
𝑀𝑒𝑎𝑛 = 𝑐̅ = ∑𝐿−1
𝑐=0 𝑐𝑃(𝑐 ) (2.1)
Keterangan:
L : Jumlah piksel
13
citra. Citra dengan konstras yang tinggi akan memiliki Standar Deviasi yang tinggi
(Priambodo, Sari and Widodo, 2019). Fitur ini dapat dihitung menggunakan
Persamaan 2.2.
𝜎𝑐 = √∑𝐿−1 2
𝑔−0(𝑐 − 𝑐̅) 𝑃(𝑐) (2.2)
Keterangan:
c- c̅ : Nilai piksel citra dikurangi nilai ratarata channel citra c dari piksel tersebut
Keterangan:
c- c̅: Nilai piksel citra dikurangi nilai rata-rata channel citra c dari piksel tersebut
ketetanggaan antar pixel di dalam citra. Paradigma statistik ini penggunaannya tidak
terbatas, sehingga sesuai untuk tekstur-tekstur alami yang tidak terstruktur dari sub
pola dan himpunan aturan (mikrostruktur). Metode statistik terdiri dari ekstraksi ciri
orde pertama dan ekstraksi ciri orde kedua. Ekstraksi ciri orde pertama dilakukan
melalui histogram citra sedangkan ekstraksi ciri statistik orde kedua dilakukan
hubungan ketetanggaan antar pixel dalam citra pada berbagai arah orientasi dan jarak
Pada penelitian ini, fitur tekstur dari citra makanan akan di ekstraksi
Teknik ini digunakan untuk menganalisa antar piksel yang bersebelahan yang dapat
spasial antara piksel referensi dan piksel tetangga berdasarkan sudut θ dan jarak d.
15
matrik transposenya.
Terdapat enam fitur yang digunakan pada penelitian ini antara lain Contras,
Correlation (Priambodo, Sari and Widodo, 2019). Setiap fitur dihitung dengan satu
piksel jarak di empat arah, yaitu 0°, 45°, 90° dan 135° untuk mendeteksi co-
nilai terendah (gelap) dari sepasang piksel yang saling berdekatan. Secara
(warna) antara bidang gelap (shadow) dengan bidang terang, atau warna putih
yang mencolok sekali pada objek. Nilai kontras dapat dihitung dengan
persamaan 2.4
𝐶𝑜𝑛𝑡𝑟𝑎𝑠𝑡 = ∑𝑁−1
𝑖,𝑗=0 𝑃𝑖, 𝑗 (𝑖 − 𝑗)
2
(2.4)
variasi pasangan tingkat keabuan suatu citra, dimana dapat dihitung seperti
𝐷𝑖𝑠𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 = ∑𝑁−1
𝑖,𝑗=0 𝑃𝑖, 𝑗 |𝑖 − 𝑗| (2.5)
16
banyak piksel dengan perulangan pasangan nilai intensitas yang sama sebagai
pembentuk struktur tekstur. Homogeneity memiliki kisaran nilai [0, 1]. Untuk
bahwa elemen tekstur memiliki variasi yang tinggi dan tersebar secara merata
pasangan piksel pada matriks ko-okurensi. Ketika piksel sangat mirip, maka
nilai angular second moment akan semakin besar, dimana dapat dihitung
𝐴𝑆𝑀 = ∑𝑁−1
𝑖,𝑗=0 𝑃𝑖, 𝑗
2
(2.7)
tertentu pada matriks. Nilai energy dapat dihitung dengan persamaan berikut:
𝐸𝑛𝑒𝑟𝑔𝑦 = √∑𝑁−1
𝑖,𝑗=0 𝑃𝑖, 𝑗
2 (2.8)
Keterangan:
F. Normalisasi
normalisasi dengan membagi nilai data tersebut dengan nilai range data (nilai data
Keterangan :
dengan fungsi aktivasi dalam sistem ELM (Extreame Learning Machine). Ini berarti
nilai kudrat input harus berada pada range 0 sampai 1. Sehingga range input yang
memenuhi syarat adalah nilai data input dari 0 sampai 1. Oleh karena itu output yang
nilai sebenarnya dari output perlu dilakukan normalisasi (Hidayat and Suprapto,
2016).
melakukan klasifikasi suatu data berdasarkan data pembelajaran (train dataset), yang
pelatihan pada ruang berdimensi banyak. Ruang ini dibagi menjadi bagian-bagian
yang di dapat dari citra makanan. Prinsip umum dari metode klasifikasi K-Nearest
Neighbour adalah berbasis pembelajaran dengan membandingkan nilai dari data uji
dengan data latih yang berdekatan berdasarkan jumlah tetangga terdekat (k). Data
latih disimpan kedalam kelas yang telah ditentukan. Ketika terdapat masukan data
yang belum diketahui kelasnya, maka KNN akan mencari pola sebanyak k data latih
yang berdekatan dengan data yang belum memiliki kelas (Priambodo, Sari and
19
Widodo, 2019). Jarak Euclidean digunakan untuk menghitung jarak antara dua
vektor yang berfungsi menguji ukuran yang bisa digunakan sebagai interpretasi
kedekatan jarak antara dua objek. Dalam penelitian ini menggunakan perhitungan
Keterangan:
H. Perhitungan Klasifikasi
model klasifikasi pada serangkaian data uji yang nilai sebenarnya diketahui. Gambar
dibawah ini merupakan confusion matrix dengan 4 kombinasi nilai prediksi dan nilai
mengevaluasi kinerja model klasifikasi, dimana N adalah jumlah target kelas. Matriks
20
Confusion adalah alat untuk analisis prediktif dalam mesin yang sedang belajar.
Terdapat 4 istilah sebagai representasi hasil proses klasifikasi pada Confusion Matrix.
Keempat istilah tersebut adalah TP (True Positive) merupakan jumlah data aktual
yang sebenarnya True diprediksi True, TN (True Negative) merupakan jumlah data
jumlah data aktual yang sebenarnya True diprediksi False dan FN (False Negative)
merupakan jumlah data aktual yang sebenarnya False diprediksi True. Dalam proses
1. Akurasi (Accuracy) merupakan rasio prediksi benar (positif dan negatif) dengan
keseluruhan data. Dengan kata lain, accuracy merupakan tingkat kedekatan nilai
prediksi dengan nilai aktual (sebenarnya). Nilai accuracy dapat diperoleh dengan
persamaan 2.12.
(𝑇𝑃+𝑇𝑁)
Akurasi = (2.12)
(𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁)
keseluruhan hasil yang diprediksi positif. Dari semua kelas positif yang telah di
data yang benar positif. Nilai Recall dapat diperoleh dengan persamaan 2.14.
𝑇𝑃
𝑅𝑒𝑐𝑎𝑙𝑙 = (2.14)
(𝑇𝑃+𝐹𝑁)
(𝐹𝑃+𝐹𝑁)
𝐸𝑟𝑟𝑜𝑟 = (2.15)
(𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁)
Keterangan:
I. Python
tinggi yang bisa melakukan eksekusi sejumlah instruksi multi guna secara langsung
pemrograman tingkat tinggi, bahasa pemrograman python banyak digemari oleh para
programmer karena syntax bahasa yang mudah dipahami dan bisa dijalankan di
J. OpenCV
Vision itu sendiri adalah salah satu cabang dari Bidang Ilmu Pengolahan Citra
Tracking. OpenCV adalah library Open Source untuk Computer Vision. OpenCV
didesain untuk aplikasi real-time, memiliki fungsi-fungsi akuisisi yang baik untuk
K. Penelitian Terkait
Gray Level Co-Occurance Matrik dan Metode K-Nearest Neighbour dapat dilihat
METODOLOGI PENELITIAN
A. Jenis Penelitian
karena data yang digunakan berupa angka atau data yang dapat dikonversi menjadi
spesifikasinya adalah sistematis, terencana, dan terstruktur dengan jelas sejak awal
penelitian yang banyak menuntut penggunaan angka mulai dari pengumpulan data,
dengan waktu penelitian dilakukan mulai bulan Februari sampai dengan Juli 2022.
Data diperoleh melalui pengambilan citra secara langsung. Selain itu data juga
diperoleh dari sumber-sumber tertulis baik media cetak maupun elektronik. Jadwal
26
27
makanan Tradisional Mandar ini berupa perangkat keras dan perangkat lunak yaitu,
sebagai berikut:
1. Perangkat Keras
a. Smartphone
c. RAM 4.00 GB
d. HDD 500 GB
2. Perangkat Lunak
b. Idle
28
D. Tahap Penelitian
1. Pengumpulan Data
digunakan dalam penelitian ini. Data yang digunakan adalah data primer yaitu
smartphone.
a. Objek yang digunakan dalam penelitian ini berupa makanan yang berbentuk
padat dan terdapat 4 jenis makanan, yaitu jepa gollamamea, lokasattai, jepa
2. Analisis Data
Adapun teknik analisis data yang digunakan adalah teknik analisis data
E. Gambaran Sistem
Pada tahap ini program akan dibuat berdasarkan hasil dari pengumpulan dan
analisa data yang telah dilakukan. Bahasa pemrograman yang akan digunakan adalah
bahasa pemprograman python. Program ini akan dibuat sesuai dengan alur
berupa citra dari empat kelas. Data citra makanan Tradisional Mandar yang
digunakan sebanyak 200 citra yang terdiri dari 4 jenis. Selanjutnya dilakukan proses
ekstraksi fitur warna dengan Color Histogram dan fitur tekstur dengan GLCM.
dengan ekstraksi fitur color histogram dengan citra inputan berupa citra RGB hasil
segmentasi dan ekstraksi fitur tekstur. Dari kedua ekstraksi fitur ini kemudian
1. Proses dimulai dengan membaca citra berupa citra makanan Tradisional Mandar.
terhadap citra dengan mengurangi noise dan diharapkan mendapatkan hasil data
latih dan data uji yang lebih baik dari sebelumnya. Pada tahap preprocessing ada
kedalam warna RGB. Setelah nilai pixel R,G, dan B diperoleh, citra akan
menghilangkan seluruh piksel di area yang terlalu kecil untuk ditempati oleh
e. Masking, setelah diperoleh nilai dilasi, maka tahap akhir dari preprocessing
histogram .
melakukan perbandingan antara hasil klasifikasi data uji dengan kelas yang
sebenarnya.
32
7. Mendapatkan hasil output berupa hasil evaluasi dari perhitungan yang sudah
dikerjakan.
F. Tahap Pengujian
Tahap selanjutnya adalah tahapan pengujian, pada tahap ini akan melakukan
memasukkan data uji kedalam program python kemudian melakukan running untuk
pengujian dilakukan dalam 3 tahap yaitu pengujian nilai k, pengujian ekstraksi fitur,
dan pengujian perhitungan jarak tetangga terdekat. Hasil dari ekstraksi fitur tekstur
dan warna disimpan sebagai data latih atau digunakan sebagai data uji untuk proses
klasifikasi dengan KNN. Sebelum dilakukan proses klasifikasi, dataset harus dilatih
dimana data latih dan data uji digunakan untuk menentukan akurasi, presisi, recall
dan error dari hasil klasifikasi. Dalam menghitung akurasi, rumus perhitungannya
menggunakan jumlah keseluruhan nilai data prediksi yang bernilai benar ditambah
jumlah keseluruhan nilai data yang bernilai salah kemudiaan dibagi dengan seluruh
jumlah nilai data, sebagaimana pada persamaan (2.12). Kemudian dari perhitungan
ini akan diperoleh nilai akurasi yang menentukan hasil prediksi yang benar dari citra
makanan pada setiap kelas mencapai sekian persen dari total jumlah data yang ada.
BAB IV
A. Analisis Kebutuhan
berkaitan dengan ruang lingkup proses yang nantinya dibutuhkan untuk mengambil
dilakukan klasifikasi citra makanan menggunakan fitur warna Color Histogram dan
fitur tekstur GLCM. Data yang digunakan dalam penelitian ini sebanyak 200 citra
makanan Tradisional Mandar dari empat kelas dimana 160 citra makanan Tradisional
Mandar digunakan sebagai data latih dan sisanya yaitu 80 data sebagai data uji dari 4
algoritma KNN untuk melakukan klasifikasi. Nilai akurasi adalah parameter yang
menentukan seberapa baik model yang dibuat dengan menggunakan data latih dan
menggunakan data uji untuk melakukan pengujian model. Data yang diidentifikasi
pada penelitian ini merupakan 4 jenis makanan Tradisional Mandar berdasarkan hasil
dikategorikan menjadi 4 kelas yaitu jepa sagu, jepa gollamamea, jepa ubi dan
lokasattai.
35
36
B. Pengumpulan Data
Data yang digunakan dalam penelitian ini sebanyak 200 citra makanan
Tradisional Mandar dari empat kelas dimana dari 200 citra sebagian digunakan
sebagai data latih dan sisanya sebagai data uji dengan 4 kelas yang berbeda. Citra
data latih dan data uji dapat dilihat pada Gambar 4.1 dan Gambar 4.2. Dari 200 citra
Background warna merah dan biru yang bertujuan untuk menguji bagaimana hasil
Gambar 4.1 dan Gambar 4.2 merupakan citra hasil pemotretan yang akan
digunakan sebagai data latih dan data uji yang sebelumnya akan melalui tahapan
preprocessing untuk mendapatkan citra RGB hasil segmentasi yang akan diambil
setiap nilai fiturnya sebagai fitur data latih dan fitur data uji untuk klasifikasi
(a)
(b)
37
(c)
(d)
Gambar 4.1 Data latih, (a) kelas gollamamea, (b) kelas lokasattai, (c) kelas sagu dan
(d) kelas ubi
kelas sesuai dengan data pembelajaran yang telah didapatkan. Pada tahap ini
diselesaikan. Pada tahap ini dilakukan pembuatan model dari aplikasi. Maksud
pembuatan model ini adalah untuk memperoleh pengertian yang lebih baik terhadap
38
aliran data dan control, proses-proses fungsional, tingkah laku operasi dan informasi-
citra yang berfunsi untuk memperbaiki kualitas citra dan memudahkan pada tahapan
thresholding, opening, closing, cropping dan masking pada citra data latih dan citra
berikut:
1) Mulai proses.
Citra dalam folder merupakan citra RGB dengan ukuran 3120x4160 pixel
pengolahan citra.
yang digunakan adalah 50 kemudian untuk nilai pixel diatas nilai batas
yang ditentukan akan diubah menjadi citra biner 1 (putih), sedangkan nilai
element), dimana operasi ini berguna untuk menghaluskan kontur objek dan
mean, standar deviasi dan skewness dari masing-masing fitur warna pada citra Red,
Green dan Blue (RGB). Proses ini membutuhkan citra yang telah tersegmentasi dan
berikut:
1) Mulai proses.
2) Membaca citra RGB yang telah tersegmentasi. Citra RGB yang telah
color histogram.
3) Menghitung nilai mean, standar deviasi dan skew setiap kanal citra.
5) Output nilai statistik citra RGB sebagai fitur Color Histogram. Nilai fitur
klasifikasi.
6) Proses selesai.
Matrix)
pada citra yang meliputi kontras, dissimilarity, homogeneity, angular second moment
berikut:
1) Mulai proses.
43
2) Membaca citra RGB hasil segmentasi. Citra RGB yang telah melalui
tekstur(GLCM).
antar piksel) adalah 1 menggunakan 4 arah sudut yaitu 0°, 45°, 90°, dan
135°.
8) Proses selesai.
proses ekstraksi warna dan proses ektraksi ciri tekstur yang telah setiap fiturnya telah
dinormalisasi dengan rentang nilai 0 hingga 1 dari data latih untuk menyesuaikan
nilai range data, kemudian menentukan setiap kelas atau target dari data latih untuk
alir yang terdapat pada Gambar 4.6. Hasil dari ekstraksi fitur tekstur dan warna
disimpan sebagai data latih atau digunakan sebagai data uji dengan format file csv
untuk proses klasifikasi dengan KNN. Penjelasan dari masing-masing tahapan pada
1) Mulai proses.
2) Membaca fitur data uji dalam format file csv. Data uji yang dimasukkan
terhadap data uji. k Tetangga terdekat ditentukan sesuai dengan jumlah data
4) Hitung jarak data uji ke data latih. Perhitungan jarak data uji ke data latih
8) Hasil klasifikasi pada data uji. Setelah didapatkan hasil klasifikasi pada data
9) Proses selesai.
D. Implementasi (Implementation)
1. Preprocessing Citra
a. Pada tahap preprocessing, proses pertama yang dilakukan adalah resize gambar
menggunakan program python dari ukuran semula 3120 x 4160 pixel menjadi
46
300 x 300 pixel untuk memperkecil ukuran setiap gambar. Hasil resize dapat
(a) (b)
Gambar 4.7 (a) citra sebelum resize dan (b) citra setelah resize ke 300x300 pixel
Gambar 4.10.
yang berukuran lebih kecil dari nilai iterasi yang telah ditentukan. Hasil
thresholding berukuran lebih kecil dari nilai iterasi yang telah ditentukan. Hasil
biner menjadi citra RGB. Hasil opening dapat dilihat pada Gambar 4.13.
citra hasil segmentasi. Hasil cropping dapat dilihat pada Gambar 4.14.
(a)
Fitur
Defiasi Red
Standar
Defiasi Green 0.685309 1 0.687167 0.59951
Standar
Defiasi Blue 0.639506 1 0.753389 0.603707
Skew Red 0.165611 0.429119 0.586112 0.090521
Skew Green 0.1687 0.375732 0.56447 0.114176
Skew Blue 0.192818 0.386073 0.591304 0.144487
Dari data pada Tabel 4.1. merupakan data hasil ekstraksi fitur Color
grayscale
(a) (b)
b. Mendapatkan nilai fitur tekstur pada citra yang meliputi kontras, dissimilarity,
skimage.feature.
Nilai fitur dari ekstraksi fitur GLCM yang telah dinormalisasi dari data latih
fitur
Dari data pada Tabel 4.2. merupakan data hasil ekstraksi fitur GLCM
sklearn.
menggunakan fitur gabungan, hasil akurasi dengan perbandingan jumlah data latih
dan jumlah data uji pada nilai k=1, k=3, k=5, k=7, k=9, k=11 dan k=13 dapat dilihat
menggunakan fitur gabungan. Hasil akurasi terbesar pada perbandingan jumlah data
latih dan data uji 60:40% pada nilai ketetanggaan k=1 dengan nilai akurasi sebesar
82%. Hasil akurasi terbesar pada perbandingan jumlah data latih dan data uji 70:30%
pada nilai k=5 dan k=7 dengan nilai akurasi sebesar 75%. Hasil akurasi terbesar pada
perbandingan jumlah data latih dan data uji 80:20% pada nilai k=9 dengan nilai
akurasi sebesar 67%. Hasil akurasi terbesar pada perbandingan jumlah data latih dan
53
data uji 90:10% pada nilai k=11 dengan nilai akurasi sebesar 65%. Hasil akurasi
dipengaruhi oleh banyaknya jumlah data latih dan jumlah data uji. Pada saat
pengujian metode KNN, terjadi perubahan akurasi pada beberapa kali percobaan
pengujian dengan nilai k tertentu, seperti pada k=7. Akurasi pada saat pengujian
memperoleh nilai akurasi sebesar 80% dengan kesalahan klasifikasi yang banyak
terjadi pada kelas lokasattai. Hal ini dikarenakan berdasarkan hasil pengurutan data
sejumlah k terdapat kesamaan jumlah data label mayoritas antara kelas lokasattai
dan kelas lainnya seperti sagu dan gollamamea yang menyebabkan KNN
5. Confusion Matrix
akurasi dengan mengetahui jumlah data uji yang diklasifikasikan dengan benar dan
jumlah data uji yang salah dalam pengklasifikasian. Confusion Matrix dilakukan
dengan mengelompokkan data sesuai pada setiap kelasnya. Setiap kelas yang
terpisah digunakan untuk menghitung nilai presisi, recall, error dan akurasi
perbandingan jumlah data latih dan data uji 60:40% dapat dilihat pada tabel 4.4.
sesuai pada setiap kelasnya untuk menghitung nilai presisi, recall, error dan akurasi
perkelas. Tabel confusion matrix perkelas dapat dilihat pada tabel berikut ini :
Tabel 4.5 Perhitungan evaluasi kinerja sistem kelas gollamamea dengan k=1
Predict
Positif Negatif
Actual
Positif 17 3
Negatif 0 0
Pada Tabel 4.5 terdapat 17 data bernilai true positive dan 3 data false
positive dan masing-masing 0 data bernilai false negative dan true negative.
17
Precision Gollamamea = 17+0 = 1
Presisi sebesar 100% artinya terdapat 17 data prediksi benar positif dibandingkan
dengan keseluruhan hasil yang diprediksi positif dari semua kelas positif yang telah di
Recall sebesar 85% artinya terdapat 17 data yang diprediksi benar adalah kelas
Error sebesar 15% artinya terdapat kesalahan prediksi sebanyak 3 data dari 20 data.
17+0
Akurasi Gollamamea = 17+0+3+0 = 0,85
Akurasi sebesar 85% artinya hasil prediksi yang benar dari kelas gollamamea adalah
Tabel 4.6 Perhitungan evaluasi kinerja sistem kelas lokasattai dengan k=1
Predict
Positif Negatif
Actual
Positif 15 5
Negatif 0 0
Pada Tabel 4.6 terdapat 6 data bernilai true positive dan 4 data false positive
Presisi sebesar 100% artinya terdapat 15 data prediksi benar positif dibandingkan
dengan keseluruhan hasil yang diprediksi positif dari semua kelas positif yang telah di
Recall sebesar 75% artinya terdapat 15 data yang diprediksi benar adalah kelas
Error sebesar 25% artinya terdapat kesalahan prediksi sebanyak 5 dari 20 data.
15+0
Akurasi Lokasattai = 15+0+0+5 = 0,75
Akurasi sebesar 75% artinya hasil prediksi yang benar dari kelas lokasattai adalah
Tabel 4.7 Perhitungan evaluasi kinerja sistem kelas sagu dengan k=1
Predict
Positif Negatif
Actual
Positif 15 5
Negatif 0 0
Pada Tabel 4.7 terdapat 5 data bernilai true positive dan 5 data false positive
Presisi sebesar 100% artinya terdapat 17 data prediksi benar positif dibandingkan
dengan keseluruhan hasil yang diprediksi positif dari semua kelas positif yang telah di
Recall sebesar 75% artinya terdapat 15 data yang diprediksi benar adalah kelas
Error sebesar 25% artinya terdapat kesalahan prediksi sebanyak 5 dari 20 data.
15+0
Akurasi Sagu = 15+0+0+5 = 0,75
Akurasi sebesar 75% artinya hasil prediksi yang benar dari kelas lokasattai adalah
Tabel 4.8 Perhitungan evaluasi kinerja sistem kelas ubi dengan k=1
Predict
Positif Negatif
Actual
Positif 19 1
Negatif 0 0
Pada Tabel 4.8 terdapat 9 data bernilai true positive dan 1 data false positive
Presisi sebesar 100% artinya terdapat 19 data prediksi benar positif dibandingkan
dengan keseluruhan hasil yang diprediksi positif dari semua kelas positif yang telah di
Recall sebesar 95% artinya terdapat 19 data yang diprediksi benar adalah kelas
Akurasi sebesar 95% artinya hasil prediksi yang benar dari kelas ubi adalah
metode confusion matrix. Hasil evaluasi kinerja sistem pada Tabel 4.4 sampai 4.8
dapat dilihat pada Tabel 4.9 nilai precision, recall, error dan akurasi dapat dilihat
Tabel 4.9 Nilai precision, recall, error dan akurasi data perkelas pada k=1
Kelas
K=1
Gollamamea Lokasattai Sagu Ubi
Akurasi 0,85 0,75 0,75 0,95
Presisi 1 1 1 1
Recall 0,85 0,75 0,75 0,05
Error 0,15 0,25 0,25 0,95
Hasil evaluasi confusion matrix perkelasnya pada k=1 dapat dilihat pada
Tabel 4.9. Nilai akurasi terbesar ada pada kelas ubi dengan tingkat akurasi 95% pada
k=1. Sedangkan nilai akurasi terkecil ada pada kelas lokasattai dan sagu dengan
E. Pengujian
metode. Skenario dalam melakukan pengujian terbagi menjadi tiga. Pertama yaitu
GLCM. Ketiga yaitu menggunakan metode Color Histogram dan GLCM. Pada tahap
ini dilakukan pengujian masing-masing metode dan fungsi untuk mengetahui apakah
Pengujian Metode Color Histogram terhadap akurasi pada tabel 4.10 dapat
dilihat perbandingan hasil akurasi dengan nilai k tertentu dengan 80 data uji.
59
Pengujian metode Color Histogram terhadap akurasi pada tabel 4.10 dapat
dilihat bahwa nilai akurasi 65% pada k=1 dan k=3 merupakan nilai akurasi tebesar.
Tabel 4.11 Pengujian color histogram dengan nilai k dengan akurasi tertinggi (k=1)
Kelas Prediksi
Kelas Sebanarnya Gollamamea Lokasattai Sagu Ubi
Gollamamea 13 3 2 2
Lokasattai 1 17 1 1
Sagu 5 2 6 7
Ubi 0 1 3 16
dan kelas hasil prediksi. Sebanyak 80 data uji yang digunakan terdapat 28 data yang
Tabel 4.26 dapat dilihat perbandingan hasil akurasi dengan nilai k tertentu dengan 80
data uji.
Tabel 4.12 dapat dilihat bahwa nilai akurasi 64% pada k=5, k=7, k=9, k=11 dan
Tabel 4.13 Pengujian GLCM dengan nilai k dengan akurasi tertinggi (k=13)
Kelas Prediksi
Kelas Sebanarnya
Gollamamea Lokasattai Sagu Ubi
Gollamamea 15 1 0 4
Lokasattai 9 4 2 5
Sagu 4 1 14 1
Ubi 1 1 0 18
Tabel 4.13 dapat dilihat perbandingan dari hasil kelas sebenarnya dan kelas prediksi.
Sebanyak 80 data uji yang digunakan terdapat 29 data yang tidak sesuai dengan kelas
sebenarnya.
terhadap Akurasi pada Tabel 4.14 dapat dilihat perbandingan hasil akurasi dengan
3 63 79%
5 61 76%
7 62 78%
9 64 80%
11 62 78%
13 61 76%
terhadap akurasi pada Tabel 4.14 dapat dilihat bahwa nilai akurasi 82% pada k=1
merupakan nilai akurasi tebesar.dapat dilihat perbandingan dari kelas sebenarnya dan
kelas hasil prediksi. Sebanyak 80 data uji yang digunakan terdapat beberapa data
Tabel 4.15 Perbandingan klasifikasi data benar dan data salah hasil prediksi
Klasifikasi
Jumlah
Nilai K Data
Data Data Salah Akurasi
Benar
1 80 66 14 82%
3 80 63 17 79%
5 80 61 19 76%
7 80 62 18 78%
9 80 64 16 80%
11 80 62 18 78%
13 80 61 19 76%
Tabel 4.15 merupakan Tabel hasil klasifikasi data uji menggunakan fitur
gabungan dengan nilai k=1, k=3, k=5, k=7, k=9, k=11 dan k=13. Hasil pengujian
data uji pada Tabel 4.15 menggunakan fitur Color Histogram dan fitur Gray Level
Co-occurrence Matrix Sebanyak 80 data uji yang digunakan terdapat beberapa data
yang tidak sesuai dengan kelas sebenarnya. Pada k=1 terdapat 14 data yang tidak
sesuai dengan kelas sebenarnya, k=3 terdapat 17 data yang tidak sesuai dengan kelas
62
sebenarnya, k=5 terdapat 19 data yang tidak sesuai dengan kelas sebenarnya, k=7
terdapat 18 data yang tidak sesuai dengan kelas sebenarnya, pada k=9 terdapat 16
data yang tidak sesuai dengan kelas sebenarnya, pada k=11 terdapat 18 data yang
tidak sesuai dengan kelas sebenarnya dan pada k=13 terdapat 19 data yang tidak
Tabel 4.16 Hasil pengujian data uji dengan fitur gabungan dengan nilai k dengan
akurasi tertinggi (k=1)
Kelas Prediksi
Kelas Sebanarnya
Gollamamea Lokasattai Sagu Ubi
Gollamamea 17 1 2 0
Lokasattai 1 15 2 2
Sagu 2 2 15 1
Ubi 0 1 0 19
Tabel 4.16 dapat dilihat perbandingan dari kelas sebenarnya dan kelas hasil prediksi.
Sebanyak 80 data uji yang digunakan terdapat 14 data yang tidak sesuai dengan kelas
sebenarnya.
4. Perbandingan Akurasi
dapat dilihat pada tabe 4.17. Dengan menggunakan fitur Color Histogram dan
GLCM, nilai akurasi tertinggi sebesar 82% dengan nilai k=1. Berbeda dengan nilai
akurasi fitur Color Histogram saja dimana akurasi tertinggi sebesar 65% pada k=1
dan k=3, dan GLCM dengan akurasi tertinggi sebesar 64% pada k=5, k=7, k=9,
BAB V
PENUTUP
A. Kesimpulan
1. Ekstraksi fitur warna Color Histogram dengan citra inputan berupa RGB yang
diperoleh menggunakan library statistik yang terdiri dari fitur Mean, standar
deviasi, dan Skewness serta fitur tekstur yang diperoleh dengan menghitung nilai
matriks ko-okurensi awal untuk jarak antar pixel tetangga d=1 pada sudut 0°, 45°,
90°, dan 135°. Membentuk matriks simetris dengan menjumlahkan nilai matriks
dengan KNN Classifier menghasilkan nilai akurasi sebesar 82% dengan nilai k=1
pada perbandingan 60:40%. Akurasi pada fitur Color Histogram sebesar 65%
pada k=1 dan k=3, dan GLCM dengan akurasi sebesar 64% pada k=5, k=7, k=9,
k=11 dan k=13. Selain itu, hasil dari pengujian yang telah dilakukan
dengan k=3 dan metode GLCM menghasilkan akurasi sebesar 57% dengan k=9.
67
Nilai akurasi tertinggi sebesar 75% dengan nilai k=5 dan k=7 pada perbandingan
70:30%. Nilai akurasi tertinggi sebesar 67% dengan nilai k=9 pada perbandingan
70:30%. Serta nilai akurasi tertinggi sebesar 35% dengan nilai k=1, k=7 dan k=13
B. Saran
Saran yang didapatkan dari hasil penelitian ini yaitu sebagai berikut.
1. Jika menggunakan fitur warna dalam melakukan penelitian, sebaiknya data yang
DAFTAR PUSTAKA
LAMPIRAN-LAMPIRAN
lokas
2 sagu 22 42 sagu 62 ubi
attai
golla golla
lokas
3 mame 23 43 mame 63 ubi
attai
a a
golla golla
4 mame 24 mam 44 sagu 64 ubi
a ea
golla
lokas lokas
5 mame 25 45 65 ubi
attai attai
a
golla
lokas
6 mame 26 46 sagu 66 ubi
attai
a
golla
mame 27 ubi 47 sagu 67 ubi
a
golla
lokas
8 mame 28 48 sagu 68 ubi
attai
a
golla
9 mame 29 ubi 49 sagu 69 ubi
a
golla
lokas lokas
10 mame 30 50 sagu 70
attai attai
a
golla
lokas
11 mame 31 51 sagu 71 ubi
attai
a
73
golla
lokas
13 mame 33 53 sagu 73 ubi
attai
a
golla
14 mame 34 sagu 54 sagu 74 ubi
a
lokas
15 sagu 35 55 sagu 75 ubi
attai
golla
lokas lokas
16 mame 36 56 76 ubi
attai attai
a
golla
lokas
17 mame 37 57 sagu 77 ubi
attai
a
golla
lokas
18 mame 38 58 sagu 78 ubi
attai
a
golla golla
lokas
19 mame 39 59 mame 79 ubi
attai
a a
lokas
20 40 sagu 60 ubi 80 ubi
attai
74
d. Lampiran Sourcode :
Sourcode preprocessing citra, kstraksi fitur color histogram dan GLCM
1.import cv2
2.import numpy as np
3.from matplotlib import pyplot
4.from scipy.stats import skew
5.import matplotlib.pyplot as plt
6.from PIL import Image
7.import xlsxwriter
8.from skimage .feature import graycomatrix, graycoprops
9.from skimage.morphology import (erosion, dilation, closing, opening,
10. area_closing, area_opening)
11. workbook = xlsxwriter.Workbook('Fitur Data uji10persen1.xlsx')
12. worksheet = workbook.add_worksheet()
13. jenis =['gollamamea','lokasattai','sagu','ubi']
14. jumlah_data = 45
15. rgb_properties = ['red','green','blue']
16. histogram_properties = ['mean', 'standar defiasi', 'skew']
17. glcm_properties = ['contrast', 'dissimilarity', 'homogeneity', 'ASM', 'ener
gy', 'correlation']#https://www.mathworks.com/help/images/ref/graycoprops.html
18. angles = ['0' ,'45', '90', '135']
19. #worksheet.write(0,0,"file")
20. kolom = 0
21. #menulis header excel
22. '''for i in rgb_properties :
23. worksheet.write(0,kolom,i)
24. kolom +=1'''
25. for i in histogram_properties:
26. for j in rgb_properties:
27. worksheet.write(0,kolom,i+" "+j)
28. kolom +=1
29. for i in glcm_properties :
30. for j in angles:
31. worksheet.write(0,kolom,i+" "+j)
32. kolom +=1
33. baris = 1
34. #perulangan untuk setiap kumpulan data
35. for i in jenis:
36. for j in range(46, 51):
37. kolom =0
38. file_name =("train/"+"original image/"+i+str(j)+".jpg")
39. print(file_name)
40. #worksheet.write(baris, kolom , file_name)
41. #kolom +=1
75
42. #preprocessing
43. src = cv2.imread(file_name, 1)
44. rez = cv2.resize(src, (300, 300))
45. tmp = cv2.cvtColor(rez, cv2.COLOR_RGB2GRAY)
46. #Konversi ke Gaussian Blur
47. blur = cv2.GaussianBlur(tmp,(3, 3), 0)
48. #Konversi ke Otsu Thresholding
49. _,tresh =cv2.threshold(blur, 50, 255, cv2.THRESH_BINARY)
50. #Konversi ke Erotion
51. opening = area_opening(tresh.copy(),10000)
52. closing = area_closing(opening.copy(),10000)
53. #Konversi ke Masking
54. Mask = cv2.bitwise_and(rez,rez, mask = closing)
55. contours, hierarchy = cv2.findContours(closing,cv2.RETR_TREE,cv2.C
HAIN_APPROX_SIMPLE)
56. selected = max(contours,key=cv2.contourArea)
57. x,y,w,h = cv2.boundingRect(selected)
58. cropped = Mask[y:y+h,x:x+w]
59. gray = cv2.cvtColor(cropped, cv2.COLOR_BGR2GRAY)
60. cv2.imwrite("hist/"+i+str(j)+".jpg", cropped)
61. #color histogram
62. hist = ("hist/"+i+str(j)+".jpg")
63. citra = cv2.imread(hist)
64. colon_number = 0
65. means, dev = cv2.meanStdDev(citra)
66. s= skew (citra)
67. for item in means:
68. worksheet.write(baris, kolom, item)
69. kolom +=1
70. for item in dev:
71. worksheet.write(baris, kolom, item)
72. kolom +=1
73. for item in s:
74. worksheet.write(baris, kolom, item)
75. kolom +=1
76. #glcm
77. glcm = graycomatrix(gray,
78. distances = [5],
79. angles = [0, np.pi/4, np.pi/2, 3*np.pi/4],
80. levels = 256,
81. symmetric = True,
82. normed = True)
83. glcm_props = [propery for name in glcm_properties for propery in gray
coprops(glcm, name)[0]]
76