我需要一个合适的色彩空间来检测与红色和黄色非常相似的颜色之上的橙色。我已经尝试了一些颜色空间:RGB HSV& YUV但是想要检测的物体,改变它的位置,这意味着环境光随着时间的推移而变化。这是我的主要问题。
答案 0 :(得分:3)
HSV是用于颜色检测的良好色彩空间。 这是一个hsv色彩图供参考:
x轴表示[0,180]中的Hue,y轴1表示[0,255]中的饱和度,y轴2表示S = 255,而保持V = 255。
要查找颜色,通常只需查找H和S的范围,并将v设置为范围(20,255)。
例如:
- 检测橙色
醇>
我的另一个答案的详细信息:Choosing the correct upper and lower HSV boundaries for color detection with`cv::inRange` (OpenCV)
要查找橙色,我们会查找地图,找到最佳范围:H:[10,25],S:[100,255]和V:[20,255]。所以面具是cv2.inRange(hsv,(10,100,20),(25,255,255))
#!/usr/bin/python3
# 2018.01.21 20:46:41 CST
import cv2
img = cv2.imread("test.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv,(10, 100, 20), (25, 255, 255) )
cv2.imshow("orange", mask);cv2.waitKey();cv2.destroyAllWindows()
结果:
- 检测绿色/黄色/蓝色
醇>
How to define a threshold value to detect only green colour objects in an image :Opencv
- 检测两种不同的颜色
醇>
How to detect two different colors using `cv2.inRange` in Python-OpenCV?
答案 1 :(得分:2)