[英]How to replace color for colored objects in image?
我建议您然后使用颜色跟踪。
cv2.bgr2hsv
为什么是HSV? 即使亮度变化,您仍然可以检测到该颜色
您可以使用cv2.inrange
使用cv2.Gaussianblur
使用cv2.findContours
对包装盒的每种颜色重复此步骤
希望这个帮助
只是为了完成我对您问题的评论。 可以使用HSV / HLS色彩空间,并在Hue通道中使用inRanges。 例如:
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()
要记住的是,Hue在np.uint8中从0到180。 这意味着,如果您需要色相300-360,则限制为150-180。 其他两个值是0-255,其中255 = 100%。
这个小代码的结果是:
它不是完美的,但是可以使用另一种答案建议的方法对其进行优化。 我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.