如何在 OpenCV Python 中找到高斯和拉普拉斯滤波器的傅里叶变换?


我们应用傅里叶变换来分析各种滤波器的频率特性。我们可以使用np.fft.fft2()对高斯和拉普拉斯滤波器应用傅里叶变换。我们使用np.fft.fftshift()将零频率分量移到频谱的中心。

步骤

要找到高斯或拉普拉斯滤波器的傅里叶变换,可以按照以下步骤操作:

  • 导入所需的库。在下面所有 Python 示例中,所需的 Python 库是OpenCV、NumpyMatplotlib。请确保您已安装它们。

  • 定义高斯或拉普拉斯滤波器。

  • 使用np.fft.fft2(filter)对上述定义的滤波器应用傅里叶变换。

  • 调用np.fft.fftshift()将零频率分量移到频谱的中心。

  • 应用对数变换并可视化滤波器和幅度谱。

让我们看一些示例,以便更清楚地了解问题。

示例

在这个 Python 程序中,我们找到了高斯滤波器的傅里叶变换。我们还可视化了高斯滤波器和傅里叶变换后的高斯滤波器。

# import required libraries import cv2 import numpy as np from matplotlib import pyplot as plt # create a Gaussian filter x = cv2.getGaussianKernel(5,10) gaussian = x*x.T # apply Fourier transform on the Gaussian Filter fft_filter = np.fft.fft2(gaussian) # Shift zero-frequency component to the center of the spectrum fft_shift = np.fft.fftshift(fft_filter) # apply log transformation mag_spectrum = np.log(np.abs(fft_shift)+1) # visualize the Gaussian filter and transformed Gaussian Filter plt.subplot(1,2,1),plt.imshow(gaussian,cmap = 'gray') plt.title('Gaussian Filter'), plt.xticks([]), plt.yticks([]) plt.subplot(1,2,2),plt.imshow(mag_spectrum,cmap = 'gray') plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([]) plt.show()

输出

上述 Python 程序将生成以下输出窗口:


示例

在这个程序中,我们找到了拉普拉斯滤波器的傅里叶变换。我们还可视化了拉普拉斯滤波器和傅里叶变换后的拉普拉斯滤波器。

# import required libraries import cv2 import numpy as np from matplotlib import pyplot as plt # create a laplacian Filter laplacian=np.array([[0, 1, 0],[1,-4, 1],[0, 1, 0]]) # apply Fourier transform on the Laplacian Filter fft_filter = np.fft.fft2(laplacian) # shift zero-frequency component to the center of the spectrum fft_shift = np.fft.fftshift(fft_filter) # apply log transformation mag_spectrum = np.log(np.abs(fft_shift)+1) # visualize the Laplacian filter and transform Laplacian Filter plt.subplot(1,2,1),plt.imshow(laplacian,cmap = 'gray') plt.title('Laplacian Filter'), plt.xticks([]), plt.yticks([]) plt.subplot(1,2,2),plt.imshow(mag_spectrum,cmap = 'gray') plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([]) plt.show()

输出

它将生成以下输出窗口:


更新于: 2022年12月2日

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.