In the field of Image Processing, Butterworth Highpass Filter (BHPF) is used for image sharpening in the frequency domain. Image Sharpening is a technique to enhance the fine details and highlight the edges in a digital image. It removes low-frequency components from an image and preserves high-frequency components.
This Butterworth highpass filter is the reverse operation of the Butterworth lowpass filter. It can be determined using the relation- where, is the transfer function of the highpass filter and is the transfer function of the corresponding lowpass filter.
The transfer function of BHPF of order is defined as-
- is a positive constant. BHPF passes all the frequencies greater than value without attenuation and cuts off all the frequencies less 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 Highpass Filter (IHPF)), it introduces a smooth transition from 0 to 1 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 High 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: The result of BHPF is much smoother than IHPF. Here, the boundaries are much less distorted, even for the smallest value of cutoff frequency. The transition into higher values of cutoff frequencies is much smoother with the BHPF.
- MATLAB - Butterworth Lowpass Filter in Image Processing
- MATLAB - Ideal Highpass Filter in Image Processing
- MATLAB - Ideal Lowpass 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
- MATLAB | RGB image to grayscale image conversion
- Image Processing in Java | Set 5 (Colored to Red Green Blue Image Conversion)
- Image Processing in Java | Set 7 (Creating a random pixel image)
- Image Edge Detection Operators in Digital Image Processing
- Image Processing in Java | Set 11 (Changing orientation of image)
- Getting started with Scikit-image: image processing in Python
- Image Processing in Java | Set 8 (Creating mirror image)
- Image Processing in Java | Set 10 ( Watermarking an image )
- MATLAB | RGB image representation
- Image Resizing in Matlab
- 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.