【发布时间】:2014-04-07 04:52:55
【问题描述】:
对于我的项目,我想使用运行Raspberry Pi 的网络摄像头来控制一辆遥控车避开红色障碍物。
我可以控制我的遥控车,但我对openCV 了解不多。我也可以使用网络摄像头检测选定的颜色,但我不知道如何将图像中的颜色值获取到我的遥控车。
我遇到的问题是我的车不知道摄像头前面有一个蓝色物体。
这是我的代码:
import cv2
import numpy as np
cap = cv2.videoCapture(0)
while(1):
# take each frame
_,frame=cap.read()
#convert BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
#define range of blue color in HSV
lower_blue = np.array([160,50,50],dtype=np.uint8)
uper_blue np.array([179,255,255],dtype=np.uint8)
#Threshold the HSV image to get only blue colors
mask = cv2.inRange(hsv,lower_blue,upper_blue)
cv2.imshow('mask',mask)
k=cv2.waitKey(5) &0xFF
if k == 27 :
break
cv2.destroyAllwindows()
【问题讨论】:
-
在窗口上显示
mask,您会看到其中的对象是在您指定的范围之间定义的对象。之后,对该图像的像素进行迭代将得到这些对象的具体 (x,y) 坐标,因此您可以将机器人转向其他方向。 -
谢谢先生,但是如果有任何关键字,我应该使用哪个函数或命令来迭代像素以获得 x 和 y 坐标
标签: python opencv raspberry-pi