假设我们有两个形状为 (480, 640, 3) 和 (480, 640) 的数组,比如 RGB 和灰度图像。你如何将元素第一个数组除以第二个?到目前为止,我使用以下代码,但是否有更好的代码片段?
arr1[:, :, 0] /= arr2
arr1[:, :, 1] /= arr2
arr1[:, :, 2] /= arr2
最佳答案
您可以向 arr2
添加另一个轴,这样它将 broadcast .
>>> a = np.ones((2,2,3))
>>> b = np.ones((2,2)) * 2
>>> a
array([[[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.]]])
>>> b
array([[ 2., 2.],
[ 2., 2.]])
>>> a = a / b[:, :, np.newaxis]
>>> a
array([[[ 0.5, 0.5, 0.5],
[ 0.5, 0.5, 0.5]],
[[ 0.5, 0.5, 0.5],
[ 0.5, 0.5, 0.5]]])
>>>
关于python - 在numpy中按元素灰度划分RGB图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972572/