opencv傅里叶——在频域进行高通滤波(b站学习)

import cv2
import numpy as np
import matplotlib.pyplot as plt
o=cv2.imread('0002.jpg',0)
# 进行傅里叶变换
f=np.fft.fft2(o)
# 低频的位置转换
fshift=np.fft.fftshift(f)
# 找到原始图像的行列的多少
rows,cols=o.shape
# 求中心点
crow,ccol=int(rows/2),int(cols/2)
# 中心行/列加减三十 0是黑色的
fshift[crow-30:crow+30,ccol-30:ccol+30]=0
# 逆向变换,由原来中心位置挪到左上角
ishift=np.fft.ifftshift(fshift)
# 逆傅里叶变换
io=np.fft.ifft2(ishift)
# 取到他的复数
io=np.abs(io)
plt.subplot(121)
plt.imshow(o,cmap='gray')
plt.title("original")
plt.axis('off')
plt.subplot(122)
plt.imshow(io,cmap='gray')
plt.title("result")
plt.axis('off')
plt.show()

你可能感兴趣的:(opencv傅里叶相关学习内容,pytorch,python,深度学习,opencv,图像处理)