对于我的项目,我想使用运行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()
答案 0 :(得分:1)
您可以使用以下方式获取颜色值:
values = img[100,100]
你必须检查Mask是否为255(范围内的像素)并从图像中获取颜色(hsv)。
要迭代您可以使用的图像:
img.shape
返回行,列和通道。
总的来说,你会得到类似的东西:
row, col, chan = img.shape
for r in row:
for c in col:
if mask[r,c] == 255:
print img[r,c]
中找到更多信息