División y fusión de canales con Python-OpenCV

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *