Main Content

imboxfilt3

3-D box filtering of 3-D images

Description

B = imboxfilt3(A) filters the 3-D image A with a 3-D box filter, 3-by-3-by-3 in size.

example

B = imboxfilt3(A,filterSize) filters 3-D image A with a 3-D box filter of size filterSize.

B = imboxfilt3(___,Name,Value) uses name-value arguments to control aspects of the filtering.

Examples

collapse all

Load 3-D image data into the workspace.

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

Filter the image with a 3-D box filter.

localMean = imboxfilt3(vol,[5 5 3]);

Input Arguments

collapse all

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

If A contains Infs or NaNs, the behavior of imboxfilt3 is undefined. This can happen when integral image based filtering is used. To restrict the propagation of Infs and NaNs in the output, consider using imfilter instead.

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

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

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

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: B = imboxfilt3(A,5,'padding','circular');

Padding pattern, specified as one of the following values or a numeric scalar. If you specify a scalar value, input image pixels outside the bounds of the image are implicitly assumed to have the scalar value.

ValueDescription
'circular'Input image values outside the bounds of the image are computed by implicitly assuming the input image is periodic.
'replicate'Input image values outside the bounds of the image are assumed equal to the nearest image border value.
'symmetric'Input image values outside the bounds of the image are computed by mirror-reflecting the array across the array border.

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

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

The default 'NormalizationFactor' 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 'NormalizationFactor' to 1. To avoid overflow in such circumstances, consider using double precision images by converting the input image to class double.

Example: 'NormalizationFactor',1

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.

Algorithms

imboxfilt performs filtering using either convolution-based filtering or integral image filtering, using an internal heuristic to determine which filtering approach to use.

Extended Capabilities

Version History

Introduced in R2015b

expand all