找到等级3张量中给定值的像素(例如rgb图像)

时间:2017-05-30 19:26:03

标签: python numpy boolean mask cv2

我想使用numpy来查找给定值的数组元素,例如  [2,3,4](例如,这些可能是像素值)。应该很简单,但是我把它扔得太久了,我转向o oracle。

我尝试了np.where和布尔值,但结果是:

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加农炮来制作一只笨蚊子

0 个答案:

没有答案