红色物体探测器 - python-opencv

时间:2015-03-05 21:50:51

标签: python opencv image-processing histogram

我想使用open cv的histrogram实用程序检测图像的蒙版区域内的红色对象。这是我生成组织图的方法 - 它被打包成一个类;

import cv2
import numpy as np

class red_detector:

def __init__(self, image):

    mask = self.get_mask(image)
    histogram = cv2.calcHist([image], ['r'], mask, [256], [0, 256])
    #some functionality to see whether the volume of red is above a certain amount to denote a red object within the mask


def get_mask(self, image):

    mask = np.zeros(image.shape[:2], np.uint8)
    mask[100:300, 100:400] = 255
    return mask

我现在想通过访问直方图对象的红色强度参数并查看某个阈值以上的强度是否与指示红色物体存在的值相结合来推断出红色物体是否在遮蔽区域内,我不确定如何从对象访问这些数据。

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下使用直方图不是最佳选择。通常在这种情况下,最简单的(通常 - 足够好)选项是:

  • 将图片转换为HSV色彩空间
  • 使用inRange功能查找具有某种颜色的图像部分
  • 找到上一步结果的最大轮廓。如果这个轮廓大于某个阈值,那么你就是对象。

您必须自己找到的inRange函数的值。请注意,在HSV颜色模型中,色调通道的值对您来说是最重要的(因为它负责颜色)。

Here是我上面描述的一些例子。