En este artículo, aprenderemos cómo dividir una imagen multicanal en canales separados y combinar esos canales separados en una imagen multicanal usando OpenCV en Python.
Para hacer esto, usamos las funciones cv2.split() y cv2.merge() respectivamente.
Imagen utilizada:
División de canales
cv2.split() se utiliza para dividir una imagen de varios canales/coloreada en imágenes separadas de un solo canal. El cv2.split() es una operación costosa en términos de rendimiento (tiempo). El orden del vector de salida de las arrays depende del orden de los canales de la imagen de entrada.
Sintaxis: cv2.split(m[, mv])
Parámetros:
- m: Array multicanal de entrada
- mv: vector de salida de arrays
Ejemplo:
Python3
# Python program to explain splitting of channels # Importing cv2 import cv2 # Reading the image using imread() function image = cv2.imread('img.jpg') # Displaying the original BGR image cv2.imshow('Original_Image', image) # Using cv2.split() to split channels of coloured image b,g,r = cv2.split(image) # Displaying Blue channel image # Blue colour is highlighted the most cv2.imshow("Model Blue Image", b) # Displaying Green channel image # Green colour is highlighted the most cv2.imshow("Model Green Image", g) # Displaying Red channel image # Red colour is highlighted the most cv2.imshow("Model Red Image", r) # Waits for user to press any key cv2.waitKey(0)
Producción:
Fusionando Canales
cv2.merge() se utiliza para fusionar varias imágenes de un solo canal en una imagen a color/multicanal.
Sintaxis: cv2.merge(mv[, dst])
Parámetros:
- mv: Vector de entrada de arrays a fusionar. Todas las arrays deben tener el mismo tamaño.
- dst: Array multicanal de salida de tamaño mv[0]. El número de canales será igual al número total. de canal en array de array.
Ejemplo:
Python3
# Python program to explain Merging of Channels # Importing cv2 import cv2 # Reading the BGR image using imread() function image = cv2.imread("img.jpg") # Splitting the channels first to generate different # single # channels for merging as we don't have separate # channel images b, g, r = cv2.split(image) # Displaying Blue channel image cv2.imshow("Model Blue Image", b) # Displaying Green channel image cv2.imshow("Model Green Image", g) # Displaying Red channel image cv2.imshow("Model Red Image", r) # Using cv2.merge() to merge Red, Green, Blue Channels # into a coloured/multi-channeled image image_merge = cv2.merge([r, g, b]) # Displaying Merged RGB image cv2.imshow("RGB_Image", image_merge) # Waits for user to press any key cv2.waitKey(0)
Producción:
Publicación traducida automáticamente
Artículo escrito por vibhutijain99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA