In the field of Image Processing, Butterworth Lowpass Filter (BLPF) is used for image smoothing in the frequency domain. It removes high-frequency noise from a digital image and preserves low-frequency components. The transfer function of BLPF of order is defined as-
- is a positive constant. BLPF passes all the frequencies less than value without attenuation and cuts off all the frequencies greater than it.
- This is the transition point between H(u, v) = 1 and H(u, v) = 0, so this is termed as cutoff frequency. But instead of making a sharp cut-off (like, Ideal Lowpass Filter (ILPF)), it introduces a smooth transition from 1 to 0 to reduce ringing artifacts.
- is the Euclidean Distance from any point (u, v) to the origin of the frequency plane, i.e,
Step 1: Input – Read an image
Step 2: Saving the size of the input image in pixels
Step 3: Get the Fourier Transform of the input_image
Step 4: Assign the order and cut-off frequency
Step 5: Designing filter: Butterworth Low Pass Filter
Step 6: Convolution between the Fourier Transformed input image and the filtering mask
Step 7: Take Inverse Fourier Transform of the convoluted image
Step 8: Display the resultant image as output
Implementation in MATLAB:
Input Image –
Note: A Butterworth filter of order 1 has no ringing artifact. Generally ringing is imperceptible in filters of order 2. But it can become a significant factor in filters of a higher order. For a specific cut-off frequency, ringing increases with an increase in the filter order.
- MATLAB - Ideal Lowpass Filter in Image Processing
- MATLAB - Butterworth Highpass Filter in Image Processing
- MATLAB - Ideal Highpass Filter in Image Processing
- Spatial Filters - Averaging filter and Median filter in Image Processing
- Image Processing in MATLAB | Fundamental Operations
- Image Processing in Java | Set 6 (Colored image to Sepia image conversion)
- Image Processing in Java | Set 4 (Colored image to Negative image conversion)
- Image Processing in Java | Set 3 (Colored image to greyscale image conversion)
- MATLAB | Converting a Grayscale Image to Binary Image using Thresholding
- Image Processing in Java | Set 5 (Colored to Red Green Blue Image Conversion)
- MATLAB | RGB image to grayscale image conversion
- Image Processing in Java | Set 7 (Creating a random pixel image)
- Image Edge Detection Operators in Digital Image Processing
- Getting started with Scikit-image: image processing in Python
- Image Processing in Java | Set 11 (Changing orientation of image)
- Image Processing in Java | Set 8 (Creating mirror image)
- Image Processing in Java | Set 10 ( Watermarking an image )
- Image Complement in Matlab
- Matlab | Dilation of an Image
- Matlab | Erosion of an Image
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.