我想使用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
我现在想通过访问直方图对象的红色强度参数并查看某个阈值以上的强度是否与指示红色物体存在的值相结合来推断出红色物体是否在遮蔽区域内,我不确定如何从对象访问这些数据。
答案 0 :(得分:0)
我认为在这种情况下使用直方图不是最佳选择。通常在这种情况下,最简单的(通常 - 足够好)选项是:
您必须自己找到的inRange函数的值。请注意,在HSV颜色模型中,色调通道的值对您来说是最重要的(因为它负责颜色)。
Here是我上面描述的一些例子。