kia*_*ian 0 python opencv colors image-processing color-space
我需要一个合适的颜色空间来检测与红色和黄色非常相似的颜色之上的橙色。我已经尝试了一些颜色空间:RGB HSV & YUV 但我想检测的对象改变了它的位置,这意味着环境光会发生变化随着时间的推移,这是我的主要问题。
HSV 是用于颜色检测的良好颜色空间。这是一个 hsv 颜色图供参考:

x 轴代表 [0,180) 中的色相,y 轴 1 代表 [0,255] 中的饱和度,y 轴 2 代表 S = 255,同时保持 V = 255。
要查找颜色,通常只需查找 H 和 S 的范围,并在 range(20, 255) 中设置 v。
例如:
- 检测橙色
来自我的另一个答案的详细信息:使用`cv::inRange`(OpenCV)选择正确的HSV上下边界进行颜色检测
为了找到橙色,我们查找地图,并找到最佳范围: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()
Run Code Online (Sandbox Code Playgroud)
结果:

- 检测绿色/黄色/蓝色

- 检测两种不同的颜色
如何在 Python-OpenCV 中使用 `cv2.inRange` 检测两种不同的颜色?

| 归档时间: |
|
| 查看次数: |
8103 次 |
| 最近记录: |