好的,我正在寻找类似于积分图像(求和面积表)的东西,用于在窗口上加速积分计算。
我有一个图像I和它的梯度图像G。我想从图像中任意两个点a和b计算G的绝对值的直线积分。显然我可以跨过线(1-t )a + t*b, t in [0, 1] 并在给定正确的 t 步长的情况下求和。然而,我想这样做几百万次,所以我想要一些加速结构,最好不需要我为每一对 (a, b) 运行一个循环。
有谁知道现有的算法可以完成这类事情吗?
最佳答案
我认为答案是否定的。如果您要积分梯度而不是它的绝对值,那将是微不足道的。
不过,我还有另一个问题:如何对 G 进行插值?您将拥有像素值,并且您将用于计算积分的采样点通常不会完全落在像素上。 “选择最接近的像素值”或“在四个相邻像素之间进行插值”都可以。后者更精确,前者更快。
自|G|很可能不平滑,您别无选择,只能使用(昂贵的)梯形规则进行积分。
编辑:看Bresenham's algorithm .由于您不会进行插值,因此它应该提供有用的优化。
关于math - 二维离散函数上多线积分的快速算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389261/