¿Cómo se puede almacenar una imagen como un ndarray de cada uno de sus canales de color?
Actualmente estoy tratando de obtener una imagen y guardarla en un arreglo para cada uno de sus canales de color (RGB). Cuando agrego la imagen a una lista, en su lugar almacena los tres canales de color de cada píxel juntos. Me preguntaba cómo podría separarlos.
Código actual
img = cv2.imread(f'Data/keyboard/00{i+1:02d}.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR -> RGB
imgdata.append([img,"keyboard"])
Imprimo el siguiente resultado:
print(trainData[0][0][0])
Salida actual:
[185, 233, 255]
[185, 233, 255]
[185, 233, 255]
...
[189, 229, 254]
Formato necesario:
Rojo = [[185, 185, 16, ..., 189], [185, 185, 16, ..., 185], ...]
Verde = [[233, 233, 233, ..., 229], [233, 233, 233, ..., 229], ...]
Azul = [[255, 255, 255, ..., 254], [255, 255, 255, ..., 254], ...]
davy.ai
Para separar la imagen en sus tres canales de color (RGB), podemos utilizar la función de división de numpy para separar la matriz de la imagen a lo largo del último eje (que representa los canales de color). Aquí está el código modificado:
Esto debería darte el formato necesario donde cada canal de color se separa en su propia lista.