Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何向Numpy阵列的每个像素添加alpha值?_Python_Arrays_Numpy_Alpha - Fatal编程技术网

Python 如何向Numpy阵列的每个像素添加alpha值?

Python 如何向Numpy阵列的每个像素添加alpha值?,python,arrays,numpy,alpha,Python,Arrays,Numpy,Alpha,我正在学习图像识别的教程 但是构建的代码是用来比较有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]]

我正在学习图像识别的教程

但是构建的代码是用来比较有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)
所以当我打印每个箭头时,它看起来就像我想要的那样,但是当我打印时,没有任何变化,仍然只有RGB值


我已经感谢你的帮助,我为我糟糕的英语道歉

鉴于
iar
的形状是8x8x3,我们可以看出我们使用的是8x8图像,其中每个像素有三个通道(r、g和b)。我们想为alpha添加第四个通道,这将使我们的形状达到8x4

首先,我们创建一个包含所有alpha值的数组:

alpha = 255 * np.ones((8, 8, 1))
在这里,我们创建一个8x8的1数组(带有一个额外的维度,使其轴与
iar
对齐),并将其乘以
255
,以获得我们想要的值

现在,我们可以简单地使用两个阵列:

iar = np.concatenate([iar, alpha], axis=2)
我们沿着轴2连接,这基本上让我们将
alpha
数组“粘贴”到
iar
的背面,将第四个通道添加到图像中


它正在运行。

鉴于
iar
的形状是8x8x3,我们可以看出我们正在处理一个8x8图像,其中每个像素有三个通道(r、g和b)。我们想为alpha添加第四个通道,这将使我们的形状达到8x4

首先,我们创建一个包含所有alpha值的数组:

alpha = 255 * np.ones((8, 8, 1))
在这里,我们创建一个8x8的1数组(带有一个额外的维度,使其轴与
iar
对齐),并将其乘以
255
,以获得我们想要的值

现在,我们可以简单地使用两个阵列:

iar = np.concatenate([iar, alpha], axis=2)
我们沿着轴2连接,这基本上让我们将
alpha
数组“粘贴”到
iar
的背面,将第四个通道添加到图像中


它正在运行。

iar的形状是什么?(检查
iar.shape
)打印iar.shape给出:(8,8,3)什么是
iar
的形状?(检查
iar.shape
)打印iar.shape给出:(8,8,3)感谢您的回复,它确实工作得很好,但在我的值之前添加了一些“.”。我找到了一个解决方案:iar=np.concatenate((iar,np.full((8,8,1),255,dtype=int)),axis=2)谢谢你的回复,它确实工作得很好,但在我的值之前添加了一些“.”。我找到了一个解决方案:iar=np.concatenate((iar,np.full((8,8,1),255,dtype=int)),axis=2)