【问题标题】:OpenCV -- how to optimize color tracking program?OpenCV——如何优化色彩跟踪程序?
【发布时间】:2012-03-01 11:59:10
【问题描述】:

我想优化我的程序,我在其中使用here 描述的颜色对象跟踪算法。唯一的区别是我使用的是 cvBlob 库,而不是 cv::moments(cvBlob 更快更准确)。使用分析器(valgrind + kcachegrind),我发现色彩空间转换方法(cv::cvtColor;我正在跟踪三种颜色的对象)花费了大约 29% 的时间。我正在从 BGR 转换为 HSV。

我在一些论文中读到,使用 YCbCr 颜色空间在颜色跟踪方面甚至更好。从 BGR 转换为 YCbCR 是个好主意吗?它应该稍微快一点,因为它需要更少的乘法(我不确定——我不知道 OpenCv 在内部是如何做到的)。该算法是否需要一些更改,或者我可以将跟踪颜色的上下边界从 HSV 转换为 YCbCr,然后使用 inRangeS 方法,就像我对 HSV 所做的那样?

有什么方法可以从 YcbCr(或 YUV)中的驱动程序获取帧?我不是在问 HSV,因为 v4l2 不支持,AFAIR。

您还有其他想法吗?我不想使用 IPP 或 GPU。

【问题讨论】:

    标签: c++ algorithm optimization opencv colors


    【解决方案1】:

    查看cvtColor 的 OpenCV 文档。它讨论了使用cvtColorBGR2YCbCr 之间的转换。

    (请尝试并在此处评论结果,即在 YCbCr 模式下花费的总时间的百分比。因为它会在未来帮助很多人。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2014-04-30
      • 2021-04-26
      相关资源
      最近更新 更多