首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Numpy创建一个空alpha映像

Numpy创建一个空alpha映像
EN

Stack Overflow用户
提问于 2020-03-20 11:05:53
回答 1查看 2.1K关注 0票数 1

我想要创建一个空白alpha映像来解析py-opencv中的一些数据,并将其保存在透明的背景png文件中。

我试过:

代码语言:javascript
运行
复制
blank_image = np.zeros((H,W,4), np.uint8)

代码语言:javascript
运行
复制
blank_image = np.full((H, W, 4) , (0, 0, 0, 0), np.uint8)

(H和W是高度和宽度)

两者仍然呈现黑色背景,而不是透明背景。

如何获得空白α透明图像?

(预先谢谢:)

编辑:

正如Mark Setchell所提到的:您需要在其他颜色上指定alpha通道:

代码语言:javascript
运行
复制
# 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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-20 11:16:34

您需要使alpha通道= 255才能看到任何东西。

代码语言:javascript
运行
复制
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层,然后添加它:

代码语言:javascript
运行
复制
# Make solid red image
RGB = np.full((H, W, 3) , (255, 0, 0), np.uint8)

代码语言:javascript
运行
复制
# Make a gradient alpha channel, left-to-right, 0..255
alpha = np.repeat(np.arange(256,dtype=np.uint8)[np.newaxis,:], 128, axis=0)

代码语言:javascript
运行
复制
# Apply alpha to RGB image to yield RGBA image
RGBA = np.dstack((RGB,alpha))

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60772938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档