积分图像介绍

入门系列索引:OpenCV入门系列教程索引目录

积分图

以灰度图像来说。一个图像内矩形区域的积分是指这个矩形区域内所有灰度值的和,如图所示:

所选定区域的积分为:

i=2,j=4i=4,j=6=image(i,j)\sum_{i=2,j=4}^{i=4,j=6} = image(i,j)

如图以3x6图像为例,左侧是原始图像,右侧是其积分图像,其中(2,4)位置的积分为16:

如果每个像素点都公式计算其积分,其运算量就太大了,为了减少计算量,专家经过推导给出了如下计算方法:如图所示:

区域1 : = sum(A);
区域2 : = sum(A + B);
区域3 : = sum(A + C);
区域4 : = sum(A + B + C + D);
所以,如果需要计算D区域中的灰度和,则
sum(D) = 区域4 - 区域2 - 区域3 + 区域1 (都是灰度值)。
很明显,这里仅仅只需要通过查表得到 1、2、3、4点的积分图像的值即可得到。由此计算任意点积分方法可以化为:

intergral(i,j)=image(i,j)+intergral(i1,j)+intergral(i,j1)intergral(i1,j1)intergral(i,j)=image(i,j)+intergral(i-1,j)+intergral(i,j-1)-intergral(i-1,j-1)

其中integral(i,j)表示(i,j)点积分值,而image(i,j)表示的是该点图像灰度值,由此可以知道计算一个图像积分的运算量与这个图像的大小差不多。

积分直方图

下面再说,积分直方图(Integral Histogram)。一个图像内矩形区域的积分积分直方图是指这个矩形区域内所有灰度值的频数。普通的灰度直方图是指一个图像各灰度级出现的频数,如图所示:

而积分直方图如图所示:

本图是一个灰度级为[0,9]的图像,H(4,5)表示的是(0,0)到(4,5)所有像素所有灰度级出现的频数,即后面的数字[2 1 4 3 2 2 2 1 2 1]表示灰度级[0 1 2 3 4 5 6 7 8 9]在区域里出现的频数。如同积分图的计算方法,积分直方图也可以用类似的方法进行。

公式如下:

也就是可以如下进行: