python的图像傅里叶变换的平移性质的代码
时间: 2023-09-28 15:07:48 浏览: 165
图像傅里叶变换的平移性质是指图像向右或向下移动,其傅里叶变换结果也会相应地发生平移。在 Python 中,可以使用 NumPy 和 OpenCV 库来实现图像傅里叶变换的平移性质。
下面是一个示例代码,其中使用 OpenCV 读取图像,并使用 NumPy 进行傅里叶变换和平移操作:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('lena.jpg', 0)
# 进行二维傅里叶变换
f = np.fft.fft2(img)
# 将低频分量移到中心位置
fshift = np.fft.fftshift(f)
# 设置平移距离(向右移动50像素,向下移动100像素)
rows, cols = img.shape
M = np.float32([[1, 0, 50], [0, 1, 100]])
# 对频谱进行平移操作
fshift = cv2.warpAffine(fshift, M, (cols, rows))
# 将频谱转换回原始位置
fshift = np.fft.ifftshift(fshift)
# 进行傅里叶逆变换
img_back = np.fft.ifft2(fshift)
# 取出实部作为结果图像
img_back = np.real(img_back)
# 显示结果图像
cv2.imshow('original', img)
cv2.imshow('shifted', np.uint8(img_back))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行以上代码,可以将图像向右移动50像素,向下移动100像素,并显示结果图像。
阅读全文