Numpy数组的减法

2024-04-19 00:40:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy数组的形状(244244,3)。每个存储一个RGB图像作为numpy数组。我想从每个通道中减去一个值。在

当然,我可以很容易地用for循环来完成,但是我假设在numpy中有一种更快的方法?在

有什么想法吗?在

非常感谢


Tags: 方法图像numpyforrgb数组形状地用
1条回答
网友
1楼 · 发布于 2024-04-19 00:40:31

你可以简单地减去一个向量。在

一个5x5 RGB图像的小演示,红色通道减去2,绿色通道减去5,蓝色通道减去3:

>>> A = 10*np.ones((5,5,3), dtype=int)
>>> A -= [2, 5, 3]
>>> A[:,:,0]  # Red
array([[8, 8, 8, 8, 8],
       [8, 8, 8, 8, 8],
       [8, 8, 8, 8, 8],
       [8, 8, 8, 8, 8],
       [8, 8, 8, 8, 8]])
>>> A[:,:,1]  # Green
array([[5, 5, 5, 5, 5],
       [5, 5, 5, 5, 5],
       [5, 5, 5, 5, 5],
       [5, 5, 5, 5, 5],
       [5, 5, 5, 5, 5]])
>>> A[:,:,2]  # Blue
array([[7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7]])

相关问题 更多 >