i具有一个形状的numpy阵列(224,224,4)。每个像素具有4个维度-r,g,b,alpha。我需要提取每个像素的(r,g,b)值的alpha通道为255。
我想首先删除alpha值为< 255的数组中的所有元素,然后仅提取这些其余元素的前3个值(r,g,b),但在Python中简单地进行操作,非常慢。是否有使用Numpy操作的快速方法?
类似的东西?https://stackoverflow.com/a/21017621/4747268
这应该有效: arr[arr[:,:,3]==255][:,:,:3]
类似的东西?
import numpy as np
x = np.random.random((255,255,4))
y = np.where(x[:,:,3] >0.5)
res = x[y][:,0:3]
在哪里必须适合> 0.5
满足您的需求(例如==255
)。结果将是一个矩阵,所有像素的垂直堆叠