imboxfilt
2-D box filtering of images
Description
filters
image B
= imboxfilt(A
,filterSize
)A
with a 2-D box filter with size specified
by filterSize
.
uses name-value pair arguments to control aspects of the filtering.B
= imboxfilt(___,Name=Value
)
Examples
Read image into the workspace.
A = imread("cameraman.tif");
Perform the mean filtering using an 11-by-11 filter.
localMean = imboxfilt(A,11);
Display the original image and the filtered image, side-by-side.
imshowpair(A,localMean,"montage")
Read image into the workspace.
A = imread('cameraman.tif');
Change the data type of the image to double
to avoid integer overflow.
A = double(A);
Filter image, calculating local area sums, using a 15-by-15 box filter. To calculate local area sums, rather than the mean, set the NormalizationFactor
parameter to 1.
localSums = imboxfilt(A, 15, 'NormalizationFactor',1);
Display the original image and the filtered image, side-by-side.
imshowpair(A,localSums,'montage')
Input Arguments
Image to be filtered, specified as a numeric array of any dimension. If the input image has
more than two dimensions (ndims(I)>2
), such as for an RGB image, then
imboxfilt
performs box filtering of all 2-D planes along the higher
dimensions.
If A
contains Infs
or NaNs
, then the
behavior of imboxfilt
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 2-element vector of positive, odd
integers. If filterSize
is
scalar, then the box filter is square.
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.
Example: B = imboxfilt(A,5,Padding="circular")
specifies the padding
pattern is "circular"
.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: B = imboxfilt(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.
Value | Description |
---|---|
"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 value of NormalizationFactor
depends on
filterSize
. When filterSize
is a scalar,
then the default value is 1/filterSize.^2
. When
filterSize
is a 2-element vector, the default value is
1/prod(filterSize)
.
The default NormalizationFactor
has the effect of a mean filter —
the pixels in the output image are the local means of the image over the neighborhood
determined by filterSize
. 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
.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Output Arguments
Filtered image, returned as a numeric array of the same size as the input image
A
.
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
Usage notes and limitations:
imboxfilt
supports the generation of C code (requires MATLAB® Coder™). Note that if you choose the genericMATLAB Host Computer
target platform,imboxfilt
generates code that uses a precompiled, platform-specific shared library. Use of a shared library preserves performance optimizations but limits the target platforms for which code can be generated. For more information, see Types of Code Generation Support in Image Processing Toolbox.When generating code, all character vector input arguments must be compile-time constants.
Usage notes and limitations:
When generating code, all character vector input arguments must be compile-time constants.
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
Version History
Introduced in R2015bimboxfilt
now supports thread-based
environments.
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)