integralBoxFilter3

3-D box filtering of 3-D integral images

Syntax

``B = integralBoxFilter3(A)``
``B = integralBoxFilter3(A,filterSize)``
``B = integralBoxFilter3(___,"NormalizationFactor",normFactor)``

Description

````B = integralBoxFilter3(A)` filters integral image `A` with a 3-by-3-by-3 box filter.```

example

````B = integralBoxFilter3(A,filterSize)` filters integral image `A` with a 3-D box filter with size specified by `filterSize`. ```
````B = integralBoxFilter3(___,"NormalizationFactor",normFactor)` also specifies the normalization factor applied to the box filter.```

Examples

collapse all

```volData = load('mri'); vol = squeeze(volData.D);```

```filterSize = [5 5 3]; padSize = (filterSize-1)/2; volPad = padarray(vol, padSize, 'replicate', 'both');```

Calculate the 3-D integral image of the padded input.

`intVol = integralImage3(volPad);`

Filter the 3-D integral image with a [5 5 3] filter.

`volFilt = integralBoxFilter3(intVol, filterSize);`

Input Arguments

collapse all

Integral image to be filtered, specified as a 3-D numeric array.

`integralBoxFilter3` expects the input integral image, `A`, to be an upright integral image computed using `integralImage3`. `integralBoxFilter3` does not support rotated integral images. The first row, column and plane of the integral image is assumed to be padded, as returned by `integralImage3`.

Data Types: `double`

Size of box filter, specified as a positive odd integer or 3-element vector of positive, odd integers. If `filterSize` is scalar, then `integralBoxFilter3` uses a cube box filter.

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

Normalization factor applied to the box filter, specified as a numeric scalar.

By default, the normalization factor has the value `1/filterSize.^3` when `filterSize` is a scalar, and `1/prod(filterSize)` when `filterSize` is a vector. The default has the effect of a mean filter — the pixels in the output image are the local means of the image.

To get local area sums, set `normFactor` to `1`. To avoid overflow in such circumstances, consider using double precision images by converting the input image to data type `double`.

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

Output Arguments

collapse all

Filtered image, returned as a 3-D numeric array. `integralBoxFilter3` returns only the parts of the filtering that are computed without padding.

Data Types: `double`

Version History

Introduced in R2015b