用python写一段将图像转化成高频和低频图像的代码
时间: 2024-05-09 08:18:25 浏览: 9
下面是一段用Python实现图像高频和低频分离的代码:
``` python
import cv2
import numpy as np
#读取图像
img = cv2.imread('image.jpg', 0)
#进行傅里叶变换,得到频率图像
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
mag_spec = np.log(np.abs(fshift))
#从频率图像中分离高频和低频部分
row, col = img.shape
crow, ccol = int(row/2), int(col/2)
fshift[crow-30:crow+30, ccol-30:ccol+30] = 0 #高通滤波器
fshift[0:30, 0:30] = 0 #低通滤波器
fshift[row-30:row, col-30:col] = 0 #低通滤波器
fshift[row-30:row, 0:30] = 0 #低通滤波器
f_ishift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
#显示原图、频率图像、分离的高频和低频图像
cv2.imshow('Original Image', img)
cv2.imshow('Magnitude Spectrum', mag_spec)
cv2.imshow('Low Frequency Image', img_back)
cv2.imshow('High Frequency Image', img - img_back)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先读取一张图像,然后对其进行傅里叶变换,得到频率图像。接下来,使用高通和低通滤波器从频率图像中分离出高频和低频部分。最后,对分离的高频和低频图像分别显示出来。