首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python语言中的RGB颜色检测

Python语言中的RGB颜色检测
EN

Stack Overflow用户
提问于 2016-12-06 19:03:44
回答 1查看 1.1K关注 0票数 0

我用的是树莓派3和Pi相机。我正在做一个图像处理程序,可以检测黄色,现在我正在测试它,但在帧没有happen.My颜色检测是错误的?下面是我的代码:

代码语言:javascript
复制
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 yellow color in HSV
    lower_yellow = np.array([204,204,0])
    upper_yellow = np.array([255,255,254])

    # Threshold the HSV image to get only yellow colors
    mask = cv2.inRange(hsv, lower_yellow, upper_yellow)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask= mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()
EN

回答 1

Stack Overflow用户

发布于 2016-12-06 19:09:21

问题是你正在过滤一个看起来像是RGB值的HSV图像。如果你正在寻找黄色,那么你希望有一个窄的色调范围,然后饱和度和值更宽。

黄色的色调约为60度,这意味着OpenCV的值约为30 (因为色调值是度数的一半,因此可以在0-255范围内调整)。同样,饱和度和值不应该是0-255的全范围,否则接近黑色或白色的东西将会匹配。

试试像这样的东西

代码语言:javascript
复制
lower_yellow = np.array([20, 30, 30])
upper_yellow = np.array([40, 200, 300])

这将有望让你接近,但你仍然可能不得不玩弄数字来获得你想要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40993792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档