python - 如何为 Numpy 数组的每个像素添加一个 alpha 值?
问题描述
我正在关注图像识别教程https://www.youtube.com/watch?v=ry9AzwTMwJQ&list=PLQVvvaa0QuDffXBfcH9ZJuvctJV3OtB8A&index=9
但是构建的代码用于比较具有 alpha 值的图像和我要测试的图像没有 alpha 值。
我已经尝试了很多东西,这是我最后一次尝试的样子:
from PIL import Image
import numpy as np
i = Image.open('images/test.png')
iar = np.array(i)
def addAlpha(iar):
b = []
for eachRow in iar:
b += [[255]]
for eachRow in iar:
eachRow = np.append(eachRow, b, axis= 1)
print(eachRow)
print (iar)
return iar
iar = addAlpha(iar)
因此,当我打印 eachRow 时,它看起来就像我想要的那样,但是当我打印 iar 时没有任何改变,仍然只有 RGB 值。
我已经感谢你的帮助,我为我糟糕的英语道歉!
解决方案
鉴于iar
的形状是 8x8x3,我们可以知道我们正在处理一个 8x8 图像,其中每个像素都有三个通道(r、g 和 b)。我们想为 alpha 添加第四个通道,这将使我们的形状达到 8x8x4。
首先,我们创建一个包含所有 alpha 值的数组:
alpha = 255 * np.ones((8, 8, 1))
在这里,我们创建一个 8x8 数组(具有一个额外的维度以使其轴iar
与 对齐)并将其乘以255
得到我们想要的值。
现在,我们可以简单地连接两个数组:
iar = np.concatenate([iar, alpha], axis=2)
我们沿着轴 2 连接,这实际上让我们可以将alpha
数组“粘贴”到 的后面iar
,将我们的第四个通道添加到图像中。
这是在行动。
推荐阅读
- php - 如何在 Braintree-Google Pay 集成中验证客户令牌?
- ruby-on-rails - 令牌寿命不适用于设计身份验证令牌宝石并在 Rails 葡萄 api 中设计
- javascript - 找不到搜索的字符串时,匹配给我错误
- flutter - 如何更改饼图中的图例图标,我使用的是 charts_flutter 0.9.0
- reactjs - 从 VS Code 调试 react js
- asp.net-core - 从第一个重定向到 HTTPS 的请求中删除 Azure Web App 上的响应服务器标头
- arrays - 如何在 Swift 中使用数组中的文本?
- continuous-integration - 如果针对特定 Gitlab 运行者卡住,则禁用标记为失败的作业
- c# - 通过按钮单击更改页面
- elasticsearch - Logstash 从 Kafka 创建管道不起作用