计算图像积分

Mzk*_*Mzk 9 opencv

如何从图像积分中找到均值,std dev和梯度?给出如下图像:

求和面积表和正常数字表

如上图所示,要找到突出显示部分的总和,sum = C+A-B-D.
所以我们有sum = 22.

我如何进行下一步以找到:

  • 意思
  • Std dev
  • 梯度

rem*_*emi 4

C+A-B-D给出由 A、B、C、D 界定的区域中灰度级的总和,因此,要获得平均值,只需将其除以区域面积即可:

mean = (C+A-B-D)/4
Run Code Online (Sandbox Code Playgroud)

要获得 dev,您必须计算平方和面积表(使用时cv::integral您可以传递附加参数来获得平方和)。引用维基百科,标准差等于(平方的平均值减去平均值的平方)的平方根。因此,假设 A'、B'、C'、D' 是正方形面积表中的值:

dev = sqrt((C'+A'-B'-D')/4 - (mean*mean))
Run Code Online (Sandbox Code Playgroud)

因此,使用积分图像计算平均值和偏差非常快,特别是如果您想在随机位置和随机大小的图像块上计算这些量。

关于梯度,它更复杂。您确定不想使用sobel运算符吗?