imboxfilt
2-D box filtering of images
Description
B = imboxfilt(A,filterSize)A with a 2-D box filter with size specified
by filterSize.
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:
- imboxfiltsupports the generation of C code (requires MATLAB® Coder™). Note that if you choose the generic- MATLAB Host Computertarget platform,- imboxfiltgenerates 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)