Dalam pengolahan citra digital kita akan sering berhubungan Machine Learning. Sebelum sistem digunakan maka kita akan melatih dengan beberapa data. Data diambil dari sebuah direktori atau folder. Lebih mudah kita akan menyimpan nama-nama file dalam sebuah folder kedalam file txt. Berikut ini beberapa code pendek untuk menyimpan nama-nama image kedalam file txt.
Kita akan menggunakan glob, untuk itu pertama install glob dengan menggunakan PIP
pip install glob2
Buatlah file baru dengan nama list.py, dan tuliskan kode berikut
import numpy as np
import glob
import cv2
import os
f_pos= open("positif.txt","w+")
f_neg= open("negatif.txt","w+")
pos_filenames = [img for img in glob.glob("D:\Project\kopi\Dataset_buah\Test\Apple Red 1\*.jpg")]
pos_filenames.sort() # ADD THIS LINE
'''
neg_filenames = [img for img in glob.glob("/home/aris/Project/negatif/*.jpg")]
neg_filenames.sort() # ADD THIS LINE'''
#
pos_images = []
#neg_images = []
i = 1
for pos_img in pos_filenames:
# Pos_img menyimpan nama image
pos_n= cv2.imread(pos_img)
height = pos_n.shape[0]
width = pos_n.shape[1]
f_pos.write("%s %d 0 0 %d %d\n" %(pos_img,i,height,width))
#myfile.write("the length of phrase #%d is: %f\n" % (NumTrials, length))
resized = cv2.resize(pos_n, (50, 50))
#gray = cv2.cvtColor(resized, cv2.COLOR_RGB2GRAY)
# Menyimpan image
cv2.imwrite('D:\Project\kopi\Dataset_buah\Test\Apel Merah\{}.jpg'.format(i),resized)
i+=1
pos_images.append(pos_n)
print(pos_img)
f_pos.close()
Code language: PHP (php)
Positif.txt digunakan untuk menyimpan data-data yang sesuai, dalam project ini saya ingin menyimpan gambar buah kopi. Sedangkan Negatif.txt digunakan untuk menyimpan gambar-gambar lain selain buah kopi yang akan dilatih untuk membedakan keduanya.
pos_filenames = [img for img in glob.glob("D:\Project\Kopi\Positif\*.jpg")
neg_filenames = [img for img in glob.glob("D:\Project\Kopi\Negatif\*.jpg")
Code language: JavaScript (javascript)
Kode diatas akan membaca file dengan ext .jpg dan menyimpan dalam array pos_filenames dan neg_filenames
pos_images = []
i = 1
for pos_img in pos_filenames:
pos_n= cv2.imread(pos_img)
height = pos_n.shape[0]
width = pos_n.shape[1]
f_pos.write("%s %d 0 0 %d %d\n" %(pos_img,i,height,width))
#myfile.write("the length of phrase #%d is: %f\n" % (NumTrials, length))
resized = cv2.resize(pos_n, (50, 50))
#gray = cv2.cvtColor(resized, cv2.COLOR_RGB2GRAY)
cv2.imwrite('D:\Project\kopi\positif\{}.jpg'.format(i),resized)
i+=1
pos_images.append(pos_n)
print(pos_img)
f_pos.close()
Code language: PHP (php)
perintah untuk membuka file, mendapatkan nilai tinggi dan lebar dari citra dan merubah ukuran citra menjadi 50×50 dan menyimpan dalam file positif.txt