python - 在numpy中按元素灰度划分RGB图像

标签 python numpy

假设我们有两个形状为 (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/

相关文章:

python - sphinx-apidoc 与自动摘要

python - 将图像像素从正方形转换为六边形

python - 对每一列相关性独立排序并得到索引值

python - 按数据帧中的行计算非零值的非重叠运行

python - scipy ndimage.convolve 跳过 channel 求和

python - 使用诗歌在不同平台上安装不同版本的包

python - Pandas - 循环遍历groupBy结果时获取一行数据

python - 如何在 Mac 上安装 Jupyter 的 Rust?

python - 如何迭代这个树/图

创建 numpy 坐标数组的 Pythonic 方法