对图片进行FFT算法和IFFT算法
时间: 2023-12-14 14:33:48 浏览: 116
对图片进行FFT算法和IFFT算法的步骤如下:
1. 读取图片并将其转换为灰度图像。
2. 对灰度图像进行傅里叶变换(FFT)。
```python
import cv2
import numpy as np
# 读取图片并转换为灰度图像
img = cv2.imread('image.jpg', 0)
# 进行傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20 * np.log(np.abs(fshift))
```
3. 对傅里叶变换后的图像进行频谱图像的可视化。
```python
import matplotlib.pyplot as plt
# 可视化频谱图像
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
```
4. 对傅里叶变换后的图像进行逆变换(IFFT)。
```python
# 进行傅里叶逆变换
f_ishift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
```
5. 对逆变换后的图像进行可视化。
```python
# 可视化逆变换后的图像
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(img_back, cmap='gray')
plt.title('Image after LPF'), plt.xticks([]), plt.yticks([])
plt.show()
```
阅读全文