如何过滤掩码中不需要的点

时间:2014-10-18 07:02:06

标签: python opencv filtering

我想检测一种颜色然后我在HSV中工作并使用3个阈值。

r,BGR = cap.read()
HSV = cv2.cvtColor(BGR, cv2.COLOR_BGR2HSV)
lowerb = np.array([Hrange[0],Srange[0],Vrange[0]])
higherb = np.array([Hrange[1],Srange[1],Vrange[1]])

#Values comes from a trackbar

mask= cv2.inRange(HSV, lowerb, higherb)
result = cv2.bitwise_and(BGR,BGR, mask=mask)

H,S,V范围如下: [20,40],[50-170],[50,170]

如您所见,结果是像素化的,我想统一检测到的每个区域。 (更白的是白色和更黑的黑色)

是否有Numpy或OpenCV2功能吗?

Mask

由于

1 个答案:

答案 0 :(得分:2)

inRange已经为您提供了二进制图像,因此没有“更白”或“更黑”。 您正在寻找的是形态学操作Erode and Dilate

或者,虽然可以说速度较慢且不完全相同,但median filter也值得研究。