Saturday, March 31, 2018

Mencari Ukuran Gambar, Banyak Label, dan Hasil dari Preprocessing dengan Python

Listing Program :

import tensorflow as tf
import cv2
import os
import numpy as np
import matplotlib.pyplot as plt

def load_data(data_directory):
    directories = [d for d in os.listdir(data_directory)
    if os.path.isdir(os.path.join(data_directory,d))]

    labels = []
    images = []
   
    for d in directories:
        label_directory = os.path.join(data_directory,d)
        file_names = [os.path.join(label_directory,f)
        for f in os.listdir(label_directory)
        if f.endswith(".png")]

        for f in file_names:
                images.append(cv2.imread(f))
                labels.append(int(d))
    return images,labels

ROOT_PATH = "D:\LABTI"

train_data_directory = os.path.join(ROOT_PATH, "Numbers")

images, labels = load_data(train_data_directory)

print("Ukuran gambar: ",images[6].shape)
print("Banyak label: ",len(set(labels)))

dim = (30,30)

images30 = []

for image in images:
    gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
    images30.append(cv2.resize(gray_image, dim,
                               interpolation = cv2.INTER_CUBIC))

print("Ukuran gambar setelah preprocessing :", images30[1].shape)

plt.imshow(images30[1])
plt.show()

Logika Program :

1.      Buka aplikasi text editor apapun, disini saya menggunakan python versi 3.6.
2.      Setelah text editor terbuka, ketikan sintaks sintaks seperti yang ada pada listing program.

Sintaks
Fungsi
import tensorflow as tf

Digunakan untuk meng-import library tensorflow
import cv2

Digunakan untuk meng-import library opencv_python
import os

Digunakan untuk meng-import library os
import numpy as np

Digunakan untuk meng-import library numpy
import matplotlib.pyplot as plt

Digunakan untuk meng-import library matplotlib
def load_data(data_directory):
Mendefinisikan load_data dengan parameternya yaitu data_directory
directories = [d for d in os.listdir(data_directory)
Mendeklarasikan d sebagai sebuah variable dimana terdapat parameter data_directory
if os.path.isdir(os.path.join(data_directory,d))]

jika terdapat parameter data_directory,d maka sistem akan mengecek apa kah ada path di dalam directory, jika ada maka os akan masuk ke directory tersebut.
labels = []
Mendeklarasikan fungsi array dengan nama labels.
images = []
Mendeklarasikan fungsi array dengan nama images.
for d in directories:
Apabila d ada di dalam directories maka program akan melanjutkan ke sintaks berikutnya.
label_directory = os.path.join(data_directory,d)
Label directory masuk kedalam data_directory,d
file_names = [os.path.join(label_directory,f)
File_names / nama file berhubungan dengan label_directory untuk mencari nama file didalam data_directory,d
for f in os.listdir(label_directory)
Mengecek f didalam directory label
if f.endswith(".png")]

Memilih f yang berakhiran .png
for f in file_names:
Apabila f ditemukan oleh file_names maka program akan mengeksekusi sintaks berikutnya.
images.append(cv2.imread(f))

Membuka gambar yang dipilih tadi dengan menggunakan library opencv_python atau cv2 dan di scan.
labels.append(int(d))

Nilai pada labels d diubah menjadi integer
return images,labels
Mengembalikan value dari images dan labels
ROOT_PATH = "D:\LABTI"
Membuka lokasi dari file yang akan di scan oleh library opencv
train_data_directory = os.path.join(ROOT_PATH, "Numbers")
File pada folder Numbers yang ada di sintaks sebelumnya akan diantarkan oleh data_directory
images, labels = load_data(train_data_directory)
Images dan labels akan memuat data atau file pada train_data_directory)
print("Ukuran gambar: ",images[6].shape)
Mengeprint ukuran gambar dengan bentuk nilai berjumlah 6
print("Banyak label: ",len(set(labels)))
Mengeprint panjang atau jumlah labels dari file yang dimuat
dim = (30,30)

Membuat sebuah parameter atau garis batas dengan sumbu x dan y yang bernilai masing masing 30 di masing masing sumbunya
images30 = []
Mendeklarasikan fungsi array dengan nama images30 yang berfungsi untuk memasukkan file
for image in images:
Apabila image atau file ada pada images maka sistem akan mengeksekusi sintaks selanjutnya
gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
Memberikan warna pada gambar.
images30.append(cv2.resize(gray_image, dim,
                               interpolation = cv2.INTER_CUBIC))
Array images30 akan discan oleh library opencv untuk diresize, diberi warna, dan dimasukkan ke dalam parameter atau garis batas.
print("Ukuran gambar setelah preprocessing :", images30[1].shape)
Sistem akan mencetak kalimat dan ukuran gambar yang sesuai dengan file, contohnya pada sintaks images30[1], file yang dipilih untuk di muat adalah file dengan nomor urut 1
plt.imshow(images30[1])
Memasukkan file yang dimuat kedalam library plt untuk ditampilkan
plt.show()

Menampilkan file yang dimuat.

No comments:

Post a Comment

Mengenal Permainan dan Hiburan di Komputer

Dalam perkembangan teknologi, komputer telah menjadi platform utama untuk berbagai jenis hiburan dan permainan. Seiring dengan kemajuan hard...