Main Content

integralImage3

Calculate 3-D integral image

Description

J = integralImage3(I) calculates the integral image, J, from grayscale volumetric image I.

example

Examples

collapse all

Create a 3-D input image.

I = reshape(1:125,5,5,5);

Define a 3-by-3-by-3 sub-volume as [startRow, startCol, startPlane, endRow, endCol, endPlane].

[sR, sC, sP, eR, eC, eP] = deal(2, 2, 2, 4, 4, 4);

Create an integral image from the input image and compute the sum over a 3-by-3-by-3 sub-volume of I.

J = integralImage3(I);
regionSum = J(eR+1,eC+1,eP+1) - J(eR+1,eC+1,sP) - J(eR+1,sC,eP+1) ...
        - J(sR,eC+1,eP+1) + J(sR,sC,eP+1) + J(sR,eC+1,sP) ... 
        + J(eR+1,sC,sP) -J(sR,sC,sP)
regionSum = 
1701

Verify that the sum of pixels is accurate.

sum(sum(sum(I(sR:eR, sC:eC, sP:eP))))
ans = 
1701

Input Arguments

collapse all

Grayscale volume, specified as a 3-D numeric array.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Output Arguments

collapse all

Integral image, returned as a numeric array. The function zero-pads the top, left and along the first plane, resulting in size(J) = size(I) + 1. side of the integral image. The class of the output is double. The resulting size of the output integral image equals: size(J) = size(I) + 1. Such sizing facilitates easy computation of pixel sums along all image boundaries. The integral image, J, is essentially a padded version of the value cumsum(cumsum(cumsum(I),2),3).

Data Types: double

More About

collapse all

Extended Capabilities

expand all

Version History

Introduced in R2015b

expand all