我想使用 numpy 来查找给定值的数组元素,例如 [2,3,4](例如,这些可能是像素值)。应该很简单,但它把我扔了足够长的时间,我转向你或神谕。
我尝试了 np.where 和 boolean 但对结果感到困惑:
In [4]: x=np.array([[[2,3,4],[4,5,6]],[[5,6,7],[6,7,8]]])
In [5]: x.shape
Out[5]: (2, 2, 3)
In [6]: np.where(x==[2,3,4])
Out[6]: (array([0, 0, 0]), array([0, 0, 0]), array([0, 1, 2]))
In [7]: [x==[2,3,4]]
Out[7]:
[array([[[ True, True, True],
[False, False, False]],
[[False, False, False],
[False, False, False]]], dtype=bool)]
我知道我能做到
In [14]: import cv2
In [15]: cv2.inRange(x,np.array([2,3,4]),np.array([2,3,4]))
Out[15]:
array([[255, 0],
[ 0, 0]], dtype=uint8)
但我有点想避免使用 cv2 大炮来对付麻木的蚊子