【问题标题】:opencv execution time for convert rgb to hsv将 rgb 转换为 hsv 的 opencv 执行时间
【发布时间】:2015-04-19 23:38:05
【问题描述】:

我正在尝试以 30fps 的速度运行相机,并以相似的速度进行图像处理。对于 640 x 480 大小的图像,使用cvCvtColor 将 RGB 图像转换为 HSV 处理时间约为 15fps。

现在,用户必须能够指定 2 个 HSV 值,并且程序应该返回该范围内所有像素的二进制图像。

所以现在,我使用 cvCvtColor 将整个图像转换为 HSV 空间并使用 cvInRangeS。

如何使处理时间缩短到 30fps?

我正在使用带有opencv的vc2010

【问题讨论】:

  • 你能发布一些分析结果吗?这似乎太过真实了。

标签: performance opencv binary rgb hsv


【解决方案1】:

您可以为 RGB 值创建一个查找表(对于 8UC3 图像来说,只是一个包含 256**3 个条目的数组)并对照该表检查每个输入像素。

另一种方法是检查输入图像的每 9 个(或类似的)像素并扩大输出蒙版。如果您想检测颜色,那么相邻像素将经常具有非常相似的颜色,因此输出图像看起来非常相似。

【讨论】:

  • 如果源数据是 8/8/8 int 位,一种选择是花费 16Mbytes 用于查找表。大于缓存会产生明显的 CPU 停顿,即使 16777216 也会导致瓶颈?这是可以做到的。
  • 对于第二种方法无法理解它我只想从 rgb 转换为 hsv,然后将其阈值化为二进制图像二进制 img 或 rgb img 的扩张操作??
  • 如果您认为 16MB 的表太大,只需为 R、G 和 B 的偶数值创建一个查找表。您只需使用一点精度,表只有 2MB 大。对于第二种方法:您只需检查每个第 9 个像素( (for (int x=0; x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 2010-12-14
相关资源
最近更新 更多