Solución:
Eso es tan simple como cargar una imagen usando cv2.imread
y luego usa cv2.split
:
>>> import cv2
>>> import numpy as np
>>> img = cv2.imread("foo.jpg")
>>> b,g,r = cv2.split(img)
La documentación de OpenCV está disponible en docs.opencv.org
Como se menciona en el tutorial de documentación, cv2.split () es una operación costosa en términos de rendimiento (tiempo) si no desea operar en todos los canales, sino solo en uno o dos, por lo que se prefiere la indexación numpy:
import cv2
import numpy as np
img = cv2.imread("foo.jpg")
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
Recuerde que opencv lee las imágenes como BGR en lugar de RGB
Editar: @Mitch McMabers, gracias por señalar esto. Utilice este método para obtener la máxima eficiencia si desea trabajar solo en uno o dos canales por separado. Si desea operar en los tres canales, acceda a los canales usando cv2.split () como se menciona en la respuesta de @jabaldeno.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)