OpenCV:抓取HSV颜色并与inRange一起使用

时间:2016-04-23 16:17:30

标签: python opencv numpy python-3.4 opencv3.0

所以我试图用Numpy和OpenCV的Python 3.4完成这个:

1) Grab pixel color in HSV format in desired area.
2) Use it with cv2.inRange
3) Track given object 

以下是我的代码片段:

# Capture pixel color from HSV
ret, frame = cap.read()

frame = cv2.GaussianBlur(frame, (11, 11), 0)
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 

height, width = frame.shape[:2]
color = hsv[int(width/2)][int(height/2)] # Grab pixel at center

我的问题是,当我想手动跟踪红色对象时,我需要按如下方式设置inRange:

lower_collor = np.array([0, 150, 150])
upper_collor = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_color, upper_color)

它(几乎)完美地工作,但是当我尝试用像素上面的代码抓取红色物体的颜色时,得到这个值:18 84 183。所以H和V值是+ - 好的,但是S值完全超出范围。

我想我只是遗漏了一些东西,但我无法弄清楚它是什么。

0 个答案:

没有答案