我想要创建一个空白alpha映像来解析py-opencv中的一些数据,并将其保存在透明的背景png文件中。
我试过:
blank_image = np.zeros((H,W,4), np.uint8)
和
blank_image = np.full((H, W, 4) , (0, 0, 0, 0), np.uint8)
(H和W是高度和宽度)
两者仍然呈现黑色背景,而不是透明背景。
如何获得空白α透明图像?
(预先谢谢:)
编辑:
正如Mark Setchell所提到的:您需要在其他颜色上指定alpha通道:
# size of the image
(H , W) = 1080, 1080
# Blank image with RGBA = (0, 0, 0, 0)
blank_image = np.full((H, W, 4), (0, 0, 0, 0), np.uint8)
# Green color with Alpha=255
RGBA_GREEN = (0, 255, 0, 255)
# Opencv element using the RGBA color
cv2.putText(blank_image, 'my opencv element', (20 , 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, RGBA_GREEN, 2)
cv2.imwrite('image_alpha.png', blank_image)
发布于 2020-03-20 11:16:34
您需要使alpha通道= 255才能看到任何东西。
import numpy as np
H, W = 128, 256
blank_image = np.zeros((H,W,4), np.uint8)
# Make first 10 rows red and opaque
blank_image[:10] = [255,0,0,255]
# Make first 10 columns green and opaque
blank_image[:,:10] = [0,255,0,255]
您还可以根据自己的意愿制作RGB映像,然后完全分开创建alpha层,然后添加它:
# Make solid red image
RGB = np.full((H, W, 3) , (255, 0, 0), np.uint8)
# Make a gradient alpha channel, left-to-right, 0..255
alpha = np.repeat(np.arange(256,dtype=np.uint8)[np.newaxis,:], 128, axis=0)
# Apply alpha to RGB image to yield RGBA image
RGBA = np.dstack((RGB,alpha))
https://stackoverflow.com/questions/60772938
复制相似问题