【问题标题】:Relation between image integral and statistical value图像积分与统计值的关系
【发布时间】:2012-10-17 11:29:22
【问题描述】:

我最近阅读了有关图像积分的内容,我可以理解它的数学方法。不知何故,我注意到它也可以计算统计值,例如均值、标准差、方差。那么问题来了,积分图像做完后,如何计算统计值呢?我们可以从正常图像中找到统计值,那么为什么以及如何需要积分图像然后找到统计值?

【问题讨论】:

    标签: opencv


    【解决方案1】:

    积分图像的每个像素(也称为总面积表)包含位于该像素左上区域的所有像素的总和。通过使用智能减法和加法,您实际上可以获得任何矩形区域的总和: [取自http://en.wikipedia.org/wiki/Summed_area_table]

    SUM(ABCD) = C - B - D + A 
    

    (从[0, 0], C 矩形中减去两个矩形[0,0], D[0,0], B 并加回减去两次的[0,0], A)。

    这非常方便,因为您只需使用 4 次微不足道的操作即可获得任何区域的总和。换句话说,它的速度非常快,并且不受区域大小的影响!

    如果您想获得该区域的平均值,只需将其总和除以其大小即可。

    获取方差有点棘手 - 您需要两个完整的图像。一个将是经典的,另一个将基于平方值 - 首先对所有强度进行平方,然后从中制作积分图像。其余的只是将值插入以下等式:

    Var(area) = Avg(area^2) - Avg(area)^2
    

    您从平方积分图像中获得第一项,从经典积分图像中获得第二项。它仍然只有 9 个简单的操作来计算。整洁,不是吗?

    【讨论】:

    • 我想我明白你在这里的意思。根据关于 cvIntegral 的 opencv 文档,您如何定义“本地窗口”或从图像中定义“矩形框”?
    • 使用它的坐标。您可以像在常规图像中一样访问积分图像的像素。它们只是有不同的含义。
    • Em...你的意思是我需要定义本地窗口,然后在计算 cvIntegral 后再次计算统计值?它如何被认为是快速的?我现在很困惑。
    • 您使用坐标定义本地窗口,不是吗?您只需要 4(或 9)次操作即可找到局部窗口的平均值(或方差)。不过,您需要预先计算积分图像。
    • 是的。如果我错了纠正我。那么,第 1 步:计算 cvIntegral,第 2 步:定义积分图像输出的局部窗口(例如 3x3),第 3 步:根据积分图像输出找到统计值?
    猜你喜欢
    • 2012-07-26
    • 2012-10-18
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多