[PYTHON] Image en niveaux de gris et enregistrer au format csv

Chose que tu veux faire

Chargez un fichier image RVB et enregistrez-le en niveaux de gris et au format CSV Cela semble être un créneau en demande, donc la couleur de mon propre mémo est forte.

Environnement d'exploitation

google colaboratory

Site source de référence

https://newtechnologylifestyle.net/%E7%94%BB%E5%83%8F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8B%E3%82%89numpy%E5%BD%A2%E5%BC%8F%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/ Je l'ai utilisé comme référence.

Contenu du code

from PIL import Image
import os, glob
import numpy as np

#Veuillez ajuster ici à votre propre environnement
files = glob.glob(path + "/" + class_names[1] + "/" + "*.png ")
 
img_list = []

image = Image.open(files[0])
# image = image.convert("RGB")
image = image.convert("L")
data = np.asarray(image)     # <class 'numpy.ndarray'> (33, 13, 3)
print(data)
print(type(data))
print(data.shape)
from matplotlib import pyplot as plt
plt.imshow(data, cmap="gray")
plt.show()

img_list.append(data)            # <class 'list'>  
print(type(img_list))

img_list = np.array(img_list)           # <class 'numpy.ndarray'>  shape(1, 33, 13, 3)
plt.imshow(img_list[0], cmap="gray")
plt.show()

import pandas as pd
df = pd.DataFrame(data)
save_path = drive_root_dir + "/xxxxxxx/data/" + "train.csv"
df.to_csv(save_path, encoding="")

Après cela, ajoutez le processus d'ajout d'images à img_list. Le troisième 3 dans (33, 13, 3) représentait RVB. J'ai finalement compris.

Code de correction

Je veux en faire les données train.csv de l'image, donc je modifie l'endroit où elles sont ajoutées en ajoutant au type de liste. Ce code a également un caractère fort pour mon propre mémo, donc je laisse également un commentaire pour confirmation.

from matplotlib import pyplot as plt
from PIL import Image
import os, glob
import numpy as np

files = glob.glob(path + "/" + class_names[1] + "/" + "*.png ")
 
img_list = []
for i, file in enumerate(files):
    image = Image.open(file)
    image = image.convert("L")
    data = np.asarray(image)     # <class 'numpy.ndarray'> (33, 13, 3)
    # print(data)
    # print(type(data))
    # print(data.shape)
    # plt.imshow(data, cmap="gray")
    # plt.show()

    img_list.append(data)            # <class 'list'>  
    # print(type(img_list))

    # img_list = np.array(img_list)           # <class 'numpy.ndarray'>  shape(1, 33, 13, 3)
    plt.imshow(img_list[i], cmap="gray")
    plt.show()
    if i == 3:   #Je veux juste le tester alors je casse
      break

import pandas as pd
df = pd.DataFrame(img_list)
save_path = drive_root_dir + "/xxxxx/data/" + "train.csv"
df.to_csv(save_path, encoding="")
print("end")

Recommended Posts

Image en niveaux de gris et enregistrer au format csv
Crop Numpy.ndarray et enregistrez-le en tant qu'image
Réduction de l'échelle de gris 8 bits des images et du contraste de l'image
Lire JSON avec Python et générer un CSV
Trier les données Fashion-MNIST et les enregistrer au format PNG
Échelle de gris et lissage de la luminosité
[Python] [Windows] Enregistrer une capture d'écran sous forme d'image
Enregistrez la vidéo d'entrée du tableau de capture sous forme d'image
L'image en échelle de gris est affichée sous forme d'image couleur dans OpenCV / Python
Visualisez l'écoulement de la cavité avec matplotlib et enregistrez-le en tant qu'animation gif
Lire et écrire un fichier csv
Lire et écrire des fichiers csv
100 coups sur le traitement d'image !! (001 --010) Soigneusement et soigneusement
Traitement de l'expansion et de la contraction de l'image
Extraire les données csv et calculer
Extraire le jeu de données bigquery et la liste des tables avec python et la sortie en CSV