我目前正在使用OpenCV内置的基于补丁的直方图反投影(cv::calcBackProjectPatch()
)来识别图像中目标材质的区域。图像分辨率为640 x 480,窗口大小为10 x 10,处理单个图像需要约1200 ms。虽然结果很好,但这对于实时应用来说太慢了(处理时间不应超过100毫秒)。
我已经尝试过缩小窗口大小并从CV_COMP_CORREL
切换到CV_COMP_INTERSECT
以加快处理速度,但是没有看到任何明显的加速。这可以通过OpenCV文档(强调我的)来解释:
然后测量每个新图像 转换为图像图像阵列 超过选定的投资回报率。直方图是 取自该区域中的该图像 由一个“补丁”覆盖,锚点位于 中心如下图所示。 使用直方图对直方图进行归一化 参数norm_factor以便它可以 与hist进行比较。计算出来的 直方图与模型进行比较 直方图; hist使用该功能 cvCompareHist()与比较 方法=
method
)。所结果的 输出放在该位置 对应于补丁锚点 概率图像dst。这个 补丁程序重复进程 滑过投资回报率。 迭代直方图 通过减去尾随像素进行更新 由补丁覆盖并添加新的 直方图覆盖的像素可以 尽管如此,节省了大量的操作 尚未实施。
这给我留下了几个问题:
答案 0 :(得分:2)
如OpenCV中所提到的,积分直方图肯定会提高速度。
请查看以下链接中的示例实现 http://smsoftdev-solutions.blogspot.com/2009/08/integral-histogram-for-fast-calculation.html