Agregar un canal alfa a una imagen monocromática usando Open CV Python

He estado trabajando en imágenes en color (RGB) e imágenes en color con un canal alfa (RGBA). Leer un canal alfa de una imagen RGBA es bastante fácil e incluso puedo dividir los 4 canales de la imagen. ¿Hay algún método por el cual pueda agregar un canal alfa a una imagen monocromática o en escala de grises? Además, ¿se puede agregar el canal alfa por separado a los canales R, G, B individualmente?

El código que estoy usando para leer una imagen transparente y dividir los canales es el siguiente:

import cv2 img = cv2.imread(image1_path,-1) b = img[:,:,0] g = img[:,:,1] r = img[:,:,2] a = img[:,:,3] img_merge = cv2.merge((b,g,r,a)) cv2.imshow("img_merge",img_merge) cv2.imshow("r channel",r) cv2.imshow("g channel",g) cv2.imshow("b channel",b) cv2.imshow("a channel",a) cv2.waitKey(0) cv2.destroyAllWindows() 

La imagen que estoy usando es –

Imagen RGBA

No puede crear una imagen de “canal-alfa de luminancia” de 2 canales, sin embargo, puede convertir la imagen de escala de grises de 1 canal a BGRA usando solo valores de gris duplicando el canal de escala de grises y agregando el canal alfa a eso. Sea l la imagen en escala de grises:

 img_3gray = cv2.merge((l,l,l,a)) 

Tampoco puede aplicar un canal alfa a solo un canal de una imagen, pero puede tomar un solo canal de la imagen (por ejemplo, azul) y convertirlo en una imagen en escala de grises como lo hicimos antes:

 img_3blue = cv2.merge((b,b,b,a)) 

o puedes mostrar solo el canal azul con alfa:

 img_bzz = cv2.merge((b,z,z,a)) 

donde z es todos los ceros.