How to do it...

Perform the following steps:

  1. Import the packages:
import cv2import numpy as npimport matplotlib.pyplot as plt
  1. Read the image as grayscale and convert it to the np.float32 datatype:
image = cv2.imread('../data/Lena.png', 0).astype(np.float32) / 255
  1. Convert the image from the spatial domain to the frequency domain using the discrete Fourier transform:
fft = cv2.dft(image, flags=cv2.DFT_COMPLEX_OUTPUT)
  1. Shift the FFT results in such a way that low frequencies are located at the center of the array:
fft_shift = np.fft.fftshift(fft, axes=[0, 1])
  1. Set the amplitudes for high frequencies to zero, leaving the others untouched:
sz = 25mask = np.zeros(fft_shift.shape, np.uint8)mask[mask.shape[0]//2-sz:mask.shape[0]//2+sz, mask.shape[1]//2-sz:mask.shape[1]//2+sz, ...

Get OpenCV 3 Computer Vision with Python Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.