【问题标题】:Using opencv / Numpy to find white pixels in a color image using python使用opencv / Numpy在使用python的彩色图像中查找白色像素
【发布时间】:2014-03-16 00:40:31
【问题描述】:

我有一张使用 opencv 加载的图像,我想找到白色的像素。

input_img = [[[255,255,255], [0,127,255]],
             [[255,255,255], [255,127,255]]]

应该返回

white = [[1, 0],
         [1, 0]]

有没有一种方法可以做到这一点而无需重塑或无需昂贵的 for 循环?使用类似 numpy.where 的东西?

【问题讨论】:

  • 您是在寻找纯白色还是看起来接近白色的像素?由于图像中的噪声,某些像素不会完全正确,(255、255、255)。如果方便的话,也许可以发布一个示例测试图像。
  • 这些是白色像素——我收到的图像已经去除了噪点(或者至少我可以假设它已经去除了)。

标签: python opencv numpy


【解决方案1】:

怎么样

(input_img == 255).all(axis=2)

【讨论】:

    【解决方案2】:

    应该这样做

    input_img = [[[255,255,255], [0,127,255]],
             [[255,255,255], [255,127,255]]]
    white = np.array(np.sum(input_img, axis=-1) == 765, dtype=np.int32)
    

    【讨论】:

    • 可能是我弄错了,但怎么会返回这个(array([0, 1]), array([0, 0]))
    猜你喜欢
    • 2020-03-07
    • 2015-11-07
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多