【发布时间】:2020-08-22 22:12:00
【问题描述】:
给定一个形状为 (height, width) 的 Numpy 矩阵,我正在寻找创建另一个形状为 (height, width, 4) 的 Numpy 矩阵的最快方法,其中 4 代表 RGBA 值。我想做这个基于价值的;因此,对于第一个矩阵中的所有 0 值,我希望在第二个矩阵中的同一位置有一个值 [255, 255, 255, 0]。
我想用 NumPy 做到这一点,而不需要像下面这样缓慢地迭代:
for i in range(0, height):
for j in range(0, width):
if image[i][j] = 0:
new_image[i][j] = [255, 255, 255, 0]
elif image[i][j] = 1:
new_image[i][j] = [0, 255, 0, 0.5]
如您所见,我正在创建一个矩阵,其中值 0 变为透明白色,1 变为绿色,alpha 为 0.5;有更快的 NumPy 解决方案吗?
我猜numpy.where 应该会极大地帮助加快这个过程,但我还没有弄清楚多重和多重价值转换的正确实现。
【问题讨论】:
标签: python numpy matrix vectorization rgba