绘制计算机图形学图像进行傅里叶变换的代码
时间: 2024-11-25 11:08:56 浏览: 30
在计算机图形学中,傅里叶变换常用于处理图像的频域分析,如滤波、压缩和增强等。以下是一个简单的Python示例,使用numpy库来演示如何对二维图像进行离散傅立叶变换(DFT):
```python
import numpy as np
import matplotlib.pyplot as plt
def dft_2d(image):
N = image.shape[0] # 图像行数
M = image.shape[1] # 图像列数
X = np.zeros((N, M), dtype=complex) # 初始化复数数组
u, v = np.meshgrid(np.arange(N), np.arange(M)) # 创建网格索引
for i in range(N):
for j in range(M):
k_real = -i * 2 * np.pi / N
k_imag = -j * 2 * np.pi / M
X[i, j] = np.sum(image * np.exp(1j * (k_real * u + k_imag * v))) # 离散傅立叶变换
return X
# 加载一幅图像
image = plt.imread('your_image.jpg') # 替换为你实际的图片路径
image = image.astype(float) / 255 # 归一化到0-1之间
# 进行傅立叶变换
fft_image = dft_2d(image)
# 可视化原图和傅立叶变换结果
fig, axs = plt.subplots(nrows=2)
axs[0].imshow(image)
axs[0].set_title("Original Image")
axs[1].imshow(np.abs(fft_image), cmap='gray')
axs[1].set_title("Magnitude of Fourier Transform")
plt.show()
阅读全文