python的图像傅里叶变换的可分离性质的代码
时间: 2023-09-28 17:07:42 浏览: 90
图像傅里叶变换简单代码实现
4星 · 用户满意度95%
下面是Python中使用OpenCV库实现图像的可分离傅里叶变换的代码:
```python
import cv2
import numpy as np
img = cv2.imread('lena.jpg', 0) # 读取灰度图像
# 对行进行一维傅里叶变换
f = np.fft.fft(img, axis=1)
# 对列进行一维傅里叶变换
f = np.fft.fft(f, axis=0)
# 计算频谱图
fshift = np.fft.fftshift(f)
# 取绝对值
magnitude_spectrum = 20 * np.log(np.abs(fshift))
# 显示原图和频谱图
cv2.imshow('input image', img)
cv2.imshow('magnitude spectrum', magnitude_spectrum.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这段代码中,首先读取灰度图像,然后对其进行一维傅里叶变换,其中`axis`参数表示变换的维度。由于可分离性质,可以先对行进行一维变换,再对列进行一维变换,等价于对整张图像进行二维变换。然后计算频谱图,并对其进行显示。注意,为了更好地显示频谱图,需要取其绝对值并进行对数变换。
阅读全文