红色对象检测器-python opencv
我想使用open cv的histrogram实用程序检测图像遮罩区域内的红色对象。这是我生成histrogram的方法,它被打包成一个类红色对象检测器-python opencv,python,opencv,image-processing,histogram,Python,Opencv,Image Processing,Histogram,我想使用open cv的histrogram实用程序检测图像遮罩区域内的红色对象。这是我生成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])
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
现在,我想通过访问直方图对象的红色强度参数,并查看高于某个阈值的强度是否与指示红色对象存在的值积分,来推断红色对象是否在遮罩区域内,我不确定如何从对象访问此数据。我认为在这种情况下,使用直方图不是最佳选择。一般来说,在这种情况下,最简单(且通常足够好)的选择是:
- 将图像转换为HSV颜色空间
- 使用inRange函数查找具有某种颜色的图像部分
- 根据上一步的结果找到最大轮廓。如果此轮廓大于某个阈值,则这是您的对象
opencv_source/samples/python2/color_histogram.py
中,其中opencv_source
是指向本地源代码的路径,或者,并相应地修改它。