首页 > 后端开发 > Python教程 > 如何在 OpenCV 中优化 HSV 边界以实现准确的颜色检测?

如何在 OpenCV 中优化 HSV 边界以实现准确的颜色检测?

Linda Hamilton
发布: 2024-12-01 10:00:14
原创
379 人浏览过

How to Optimize HSV Boundaries for Accurate Color Detection in OpenCV?

使用 cv::inRange (OpenCV) 选择最佳 HSV 边界进行颜色检测

在图像处理中,经常使用 HSV 颜色空间用于颜色检测。选择适当的 HSV 上下边界对于准确识别目标颜色至关重要。本问题探讨了咖啡罐上包含橙色盖子的图像的选择过程。

尽管为盖子提供了估计的 HSV 中心值 (22, 59, 100),但最初尝试使用边界 (18 、40、90) 和 (27、255、255) 的结果并不令人满意。为了解决这个问题,我们必须考虑 HSV 比例和图像格式中的潜在问题。

问题 1:HSV 比例差异

不同的应用程序可能使用不同的 HSV 比例。 GIMP采用H=0-360,S=0-100,V=0-100,而OpenCV采用H:0-179,S:0-255,V:0-255。在这种情况下,GIMP 色调值 (22) 应减半以匹配 OpenCV 的比例,导致范围为 (5, 50, 50) - (15, 255, 255)。

问题2:图像格式转换

OpenCV 操作的是 BGR 格式的图像,而不是 RGB。因此,需要将颜色转换行修改为cv.CvtColor(frame,frameHSV,cv.CV_BGR2HSV)。这确保了图像在 HSV 边界检测之前正确转换。

通过合并这些调整,我们获得了更有希望的结果:

[改进的检测图像]

虽然输出并不完美,它改进了对橙色盖子的检测。通过选择与盖子相对应的最大轮廓,可以最大限度地减少错误检测。

结论

选择适当的 HSV 边界需要考虑尺度差异和适当的图像格式转换。通过解决这些问题,我们可以在 OpenCV 中使用 cv::inRange 来提高颜色检测的准确性。

以上是如何在 OpenCV 中优化 HSV 边界以实现准确的颜色检测?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板