Necesito obtener una imagen de laboratorio, pero sin el canal l. Eliminando el canal l o dividiendo los tres canales y fusionando los canales ayb nuevamente.

Mi código hasta ahora (ni siquiera en ningún lugar al lado de resolver esto):

lab_image = cv2.cvtColor(numpy.array(color_images_array)[i], cv2.COLOR_RGB2LAB)

_, a, b = cv2.split(lab_image)

Este código solo divide los canales, pero no combina los canales a y b ...

2
Stefan 1 oct. 2019 a las 11:31

3 respuestas

La mejor respuesta

cv2.split separa los canales de la imagen. Debe llamar a la función cv2.merge para fusionarlos.

merged = cv2.merge((a,b))
3
Piotr Siekański 1 oct. 2019 a las 09:15

Puede usar la función cv2.merge(). La sintaxis correcta es:

merged = cv2.merge( (channel_1,channel_2,...) )

En su caso:

merged = cv2.merge((a,b))
2
ilVacca 1 oct. 2019 a las 09:57

Podrías usar la función delete() de Numpy para eliminar el primer canal (índice = 0) en el 3er eje (eje = 2), donde el primer eje corresponde a las columnas, el segundo eje corresponde a las filas y el tercer eje corresponde a los canales:

# Delete "L" channel from Lab image
ab = np.delete(lab_image, 0, 2)
0
Mark Setchell 1 oct. 2019 a las 09:39
58180899