import numpy as np
import cv2
# load image and threshold it
original = cv2.imread("a.jpg")
hsvframe = cv2.cvtColor(original, cv2.COLOR_BGR2HLS)
mask = cv2.inRange(hsvframe, (160,40,40), (180, 255, 255))
mask = mask + cv2.inRange(hsvframe, (0,40,40), (12, 255, 255)) # color red is at the beginning and end of the hue wheel
original[mask==255] = (0,255,0)
cv2.imshow("image", original)
cv2.waitKey(0)
cv2.destroyAllWindows()
我建议你使用颜色跟踪。你知道吗
cv2.bgr2hsv型
为什么是hsv?即使亮度发生变化,你仍然可以检测到这种颜色
您可以使用cv2.inrange
使用cv2.Gaussianblur
使用cv2.findContours
对每种颜色的盒子重复这个步骤
希望这有帮助
我只想完成我对你问题的评论。我们可以使用HSV/HLS颜色空间和色调通道使用inRanges。例如:
要记住的是,色调从0到180英寸第8页. 这意味着如果你需要300-360色调的限制将是150-180。其他两个值为0-255,其中255=100%。你知道吗
这个小代码的结果是:
它并不完美,但一方可以使用另一方建议的方法来完善它。我希望这有帮助。你知道吗
相关问题 更多 >
编程相关推荐