【发布时间】:2019-11-30 07:25:26
【问题描述】:
我必须转换 ndarray(灰度图像)的所有元素。特别是如果我的值为 0,则所需的值为 0,并且值 > 0 变为 1。 有没有 numpy 的功能可以做到这一点? 我可以做到这一点,但我认为这不是最好的解决方案。
【问题讨论】:
-
这样吗?
myarr[myarr > 0] = 1 -
喜欢这个 myarr[myarr>0] = 1
我必须转换 ndarray(灰度图像)的所有元素。特别是如果我的值为 0,则所需的值为 0,并且值 > 0 变为 1。 有没有 numpy 的功能可以做到这一点? 我可以做到这一点,但我认为这不是最好的解决方案。
【问题讨论】:
myarr[myarr > 0] = 1
你应该在 numpy 中查找花式索引和/或布尔索引。 实际上,您可以做的就是这样
array[array>0] = 1
这会将所有索引 > 0 设置为 1
【讨论】:
如果您不想“就地”工作,您可以这样做:
def to_bw(img, dtype=np.uint8):
return (img > 0).astype(dtype)
例如您将其用作:
import numpy as np
to_bw(np.array([0,1,2]))
它将评估为:
array([0, 1, 1])
注意这听起来很像:Convert RGB to black OR white
【讨论】: