在opencv python中通过颜色检测对象

在opencv python中通过颜色检测对象,python,python-3.x,opencv,color-picker,hsv,Python,Python 3.x,Opencv,Color Picker,Hsv,我试图用hsv颜色范围来检测我的手机,但问题是我应该如何选择颜色范围来检测我的手机 手机颜色为金属金 如果我知道BGR值,有什么简单的方法可以找到hsv中的颜色范围吗 这是我的密码 detectMobile.py import cv2 import numpy as np cap = cv2.VideoCapture(0) while True: _, frame = cap.read() hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV

我试图用hsv颜色范围来检测我的手机,但问题是我应该如何选择颜色范围来检测我的手机

手机颜色为金属金

如果我知道BGR值,有什么简单的方法可以找到hsv中的颜色范围吗

这是我的密码

detectMobile.py

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while True:
    _, frame = cap.read()
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    lowerColor = np.array([0, 0, 0])
    upperColor = np.array([74, 74, 83])

    mask = cv2.inRange(hsv, lowerColor, upperColor)
    res = cv2.bitwise_and(frame, frame, mask=mask)

    cv2.imshow('frame', frame)
    cv2.imshow('mask', mask)
   #cv2.imshow('res', res)

    if cv2.waitKey(1) & 0xff == ord('q'):
        break

cv2.destroyAllWindows()
cap.release()

是的,有一个简单的方法:你可以写一些类似的东西

lowerColor = np.uint8([[[0, 0, 0]]])
upperColor = np.uint8([[[74, 74, 83]]])
hsv_lower = cv2.cvtColor(lowerColor, cv2.COLOR_BGR2HSV)
hsv_upper = cv2.cvtColor(upperColor, cv2.COLOR_BGR2HSV)

正如opencv python教程()中所建议的那样

是的,有一个简单的方法:你可以写一些类似的东西

lowerColor = np.uint8([[[0, 0, 0]]])
upperColor = np.uint8([[[74, 74, 83]]])
hsv_lower = cv2.cvtColor(lowerColor, cv2.COLOR_BGR2HSV)
hsv_upper = cv2.cvtColor(upperColor, cv2.COLOR_BGR2HSV)

正如opencv python教程()中所建议的那样

请不要重复同样的问题。如果你编辑了你的帖子,它会把你的帖子推到新队列的最前面。请不要回复同样的问题。如果你编辑你的帖子,它会把它推到新队列的前面。我遵循opencv python教程,得到了金属金黄色的BGR值[55212175]的hsv_颜色值[[37 189 212]],现在我应该如何调整范围?在RGB颜色空间中确定你的范围,然后将其转换为hsv,就像我发布的代码一样。我遵循opencv python教程,得到了金属金黄色[55212175]的BGR值的hsv_颜色值[[[37 189 212]],现在我应该如何调整范围?确定RGB颜色空间中的范围,然后将其转换为hsv,就像我发布的代码一样。