用python写一段将图像转化成高频和低频图像的代码
时间: 2023-04-07 20:00:40 浏览: 204
可以使用OpenCV库来实现将图像转化成高频和低频图像的功能。以下是一个简单的Python代码示例:
```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))
# 构建高频图像
rows, cols = img.shape
crow, ccol = rows // 2, cols // 2
fshift[crow - 30:crow + 30, ccol - 30:ccol + 30] = 0
f_ishift = np.fft.ifftshift(fshift)
img_high = np.fft.ifft2(f_ishift)
img_high = np.abs(img_high)
# 构建低频图像
fshift[crow - 10:crow + 10, ccol - 10:ccol + 10] = 0
f_ishift = np.fft.ifftshift(fshift)
img_low = np.fft.ifft2(f_ishift)
img_low = np.abs(img_low)
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Magnitude Spectrum', magnitude_spectrum)
cv2.imshow('High Pass Filtered Image', img_high)
cv2.imshow('Low Pass Filtered Image', img_low)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码将读取名为“image.jpg”的图像,并将其转换为灰度图像。然后,它将对图像进行傅里叶变换,并构建振幅谱。接下来,它将构建高频图像和低频图像,分别使用高通滤波器和低通滤波器。最后,它将显示原始图像、振幅谱、高频图像和低频图像。
阅读全文