1. Pregunta: Ingrese directamente la imagen convertida en escala de grises en la red neuronal y busque
FileNotFoundError: [Errno 2] No existe tal archivo o directorio: 'home / JPEGImages / Image_24.jpg'
Segundo, análisis: la imagen en escala de grises tiene solo un canal, mientras que RGB tiene tres canales
3. Solución: copie la imagen en escala de grises de un canal dos veces para obtener la imagen requerida por los tres canales
import cv2
import os
de PIL import Image
import numpy as np
file_dir = 'home / JPEGImages2 /' # 'input folder /'
out_dir = 'home / JPEGImages /' # 'output folder /'
a = os.listdir (file_dir)
# img = Image.open ("home / img / Image_01.jpg") # Método de apertura de una sola imagen
para i en a:
print (i)
I = Image.open (file_dir + i)
L = I.convert ('L' )
a = np.array (L) # convertido a matriz numpy
image = np.expand_dims (a, axis = 2)
image = np.concatenate ((image, image, image), axis = -1) # axis = -1 Es el último canal
# image.save (out_dir + i) #Guardar imagen (guardar imagen como imagen)
cv2.imwrite (out_dir + i, imagen) # Guardar imagen (guardar matriz como imagen)
# print (imagen)
Enlace de referencia:
https://blog.csdn.net/zgcr654321/article/details/88015327 (Varias formas de guardar la matriz como una imagen, también tiene una referencia al stackoverflow)
https://stackoom.com/question/3WAWn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E7 % 81% B0% E5% BA% A6% E5% 9B% BE% E5% 83% 8F% E7% 9A% 84% E9% A2% 84% E5% 85% 88% E8% AE% AD% E7% BB % 83% E7% 9A% 84% E7% A5% 9E% E7% BB% 8F% E7% BD% 91% E7% BB% 9C (Después de leerlo, no elegí cambiar la red original y elegí el método actual)