【问题标题】:How to apply a mask to a numpy array maintaining shape and retrieving values?如何将掩码应用于保持形状和检索值的 numpy 数组?
【发布时间】:2019-05-12 04:49:09
【问题描述】:

我正在创建一个蒙版(布尔数组)的图像分割。我现在想在保持图像阵列形状的同时提取遮罩区域的成像数据。

由于图像数据太大,这里是我的问题的简化形式:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([False, False, True, True])

这就是我真正想要的:

c = np.array([False, False, 3, 4])
  = np.array([0, 0, 3, 4])

我尝试了各种切片方法,包括:

a[b]
np.extract()
np.choose()
np.take

然而,这些要么不返回数组的形状,要么只返回一个布尔值。

感谢您的帮助。 烤羊肉

【问题讨论】:

  • a*b 可能是最简单的一个
  • 这也有效。显然,事情不必像最初看起来那样复杂。谢谢!

标签: python numpy image-processing


【解决方案1】:

你可以使用np.where:

np.where(b, a, 0)
# np.array([0, 0, 3, 4])

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 2020-05-02
    • 2020-05-24
    • 1970-01-01
    • 2021-04-04
    • 2016-08-28
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多