【发布时间】:2018-11-12 08:52:44
【问题描述】:
我找到了将 RGB 转换为 HSV 的方法,但我仍然无法找到颜色的上限和下限。怎么计算?
我必须从图片中取出皮卡丘
这是我到目前为止的代码
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_red = np.array([30,50,50])
upper_red = np.array([255,255,180]) #it is trial and error
mask = cv2.inRange(frame, lower_red, upper_red)
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()
cap.release()
请帮帮我
【问题讨论】:
-
那么,你想提取什么颜色?黄色的?大约是 Hue = 60,所以在 openCV 中(至少 C++,不确定 python)大约是 hue = 30。尝试 lower = np.array([20,50,50]) upper = np.array([40,255,255 ])
-
stackoverflow.com/users/2393191/micka 谢谢你,但右侧的部分上方仍然不可见
-
尝试允许较小的饱和度和值(较低范围内的第 2 和第 3 参数)和/或允许更多的色调变化。