如何使用OpenCV Python找到图像的傅里叶变换?
离散傅里叶变换(DFT)和逆离散傅里叶变换(IDFT)可用于图像上的频域分析。要找到图像的傅立叶变换,我们使用函数 cv2.dft() 和 cv2.idft() 。我们可以应用傅里叶变换来分析各种滤波器的频率特性。
步骤
要找到输入图像的傅里叶变换,可以按照以下步骤进行 –
- 导入必需的库。在以下所有Python示例中,所需的Python库为 OpenCV,Numpy 和 Matplotlib。 请确保您已经安装了它们。
-
使用 cv2.imread() 方法将输入图像加载为灰度图像。还将灰度图像的类型转换为 float32 。
-
使用 cv2.dft() 在图像上找到离散傅里叶变换。
-
调用 np.fft.fftshift() 将零频率分量移动到频谱的中心。
-
应用对数变换并可视化幅度谱。
-
为了可视化转换后的图像,我们应用反向变换 np.fft.ifftshift() 和 cv2.idft() 。请参见下面讨论的第二个示例。
让我们看一些示例,以便更清楚地理解问题。
输入图像
我们将在以下示例中使用此图像作为输入文件。
示例
在此程序中,我们找到输入图像的离散傅里叶变换。我们查找并绘制幅度谱。
输出
运行以上Python程序,将会产生以下输出窗口 −
示例
在这个程序中,我们计算了输入图像的离散傅里叶变换,使用反函数进行图像重建,比如 ifftshift() 和 idft() 。