我正在关注图像识别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值。
我已经感谢您的帮助,对于我的英语不好,我深表歉意!
答案 0 :(得分:0)
鉴于iar
的形状为8x8x3,我们可以说我们正在处理一个8x8图像,其中每个像素具有三个通道(r,g和b)。我们想为alpha添加第四个通道,这将使我们的形状变为8x8x4。
首先,我们创建一个包含所有alpha值的数组:
alpha = 255 * np.ones((8, 8, 1))
在这里,我们创建一个8x8的数组(具有一个额外的尺寸,以使其轴与iar
对齐),然后将其乘以255
以为其提供所需的值。
现在,我们可以简单地concatenate两个数组:
iar = np.concatenate([iar, alpha], axis=2)
我们沿着轴2进行连接,这实际上是使我们将alpha
数组“粘贴”到iar
的后面,从而将第四条通道添加到图像的原因。
Here正在起作用。