Image Bandpass Filter
Updated 19 Jan 2023
To use: call function
imbandpass(image, low_cutoff, high_cutoff), returns smoothed image.
The default options of Gaussian filter, Gaussian stripe filter, and mirrored padding were chosen to replicate imageJ's FFT Bandpass filter.
To access non-default options including stripe supression, use keyword arguments, for example
imbandpass(I, 3, 250, filter="Butterworth", stripes="Horizontal", stripeTolerance=10)
imbandpass(I, 3, 250, "filter", "Butterworth", "stripes", "Horizontal", "stripeTolerance", 10).
image Image in. Handles single-channel or RGB images as arrays: input (m,n) or (m,n,3) array of values in range 0 to 255.
low_cutoff - filter out features below this (real space) lengthscale in pixels.
high_cutoff - filter out features above this lengthscale.
It's possible to set upper and/or lower cutoff to
 and not apply this aspect of the filter.
Optional keyword parameters
stripes = 'Horizontal' ,
'None' - supress stripes, default
stripeFilter = 'Gaussian' or
'hard' - stripe filter mode, default
stripeTolerance - tolerance (in percent) for stripe deviation from horizontal/vertical alignement, default
filter='gaussian', 'butterworth' or
'hard', filter profile, default
butterworthN exponent in butterworth filter, default
padOption = 'symmetric' ,
0 or other value, or
'None' - how to pad image border for Fourier transform, default
image_out - a uint8 array with the same dimensions and number of channels as
If this is useful to you or you want it fixed, please let me know with a rating/comment that it worked/how it didn't work!
Jason Klebes (2023). Image Bandpass Filter (https://github.com/jklebes/bandpass/releases/tag/v1.2.2), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.2.2
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.2.1
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.2.0
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.1.1
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.1.0
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.0.4
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.0.2
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.0.1
See release notes for this release on GitHub: https://github.com/jklebes/bandpass/releases/tag/v1.0.0