从检测颜色python opencv获取价值

时间:2014-04-07 04:52:56

标签: python opencv raspberry-pi

对于我的项目,我想使用运行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() 

1 个答案:

答案 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]

您可以在OpenCV Python Tutorial

中找到更多信息