python图像傅里叶变换可分离性质代码
时间: 2023-09-23 08:04:50 浏览: 104
图像傅里叶变换简单代码实现
4星 · 用户满意度95%
以下是使用Python实现傅里叶变换可分离性质的代码示例:
```python
import numpy as np
import cv2
# 读取图像
img = cv2.imread('test.jpg', 0)
# 计算垂直方向和水平方向的傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
mag_spectrum = 20 * np.log(np.abs(fshift))
# 计算垂直方向和水平方向的傅里叶变换的乘积
f_v = np.fft.fft(fshift, axis=0)
f_h = np.fft.fft(fshift, axis=1)
f_m = np.multiply(f_v, f_h)
f_m_shift = np.fft.fftshift(f_m)
mag_spectrum_m = 20 * np.log(np.abs(f_m_shift))
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('FFT', mag_spectrum)
cv2.imshow('Separated FFT', mag_spectrum_m)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,首先使用`cv2.imread`函数读取图像,并使用`np.fft.fft2`函数计算图像的傅里叶变换。然后,使用`np.fft.fftshift`函数将低频分量移动到图像中心,并使用`20 * np.log(np.abs())`函数将结果转换为可视化频谱。接下来,使用`np.fft.fft`函数在垂直方向和水平方向上进行傅里叶变换,并使用`np.multiply`函数计算变换的乘积。最后,再次使用`np.fft.fftshift`和`20 * np.log(np.abs())`函数将结果转换为可视化频谱,并使用`cv2.imshow`函数显示原始图像、傅里叶变换和可分离傅里叶变换的结果。
阅读全文