opecv傅里叶——在频域进行低通滤波(b站学习内容)

该博客介绍了如何使用OpenCV库在Python中进行傅里叶变换来处理图像。首先读取图像并进行傅里叶变换,然后通过移动低频成分到中心并创建掩膜来实现图像的模糊和锐化操作。最后应用逆傅里叶变换将处理后的频谱图像还原回空间域,展示原图和处理结果的对比。
摘要由CSDN通过智能技术生成
import  cv2
import numpy as np
import matplotlib.pyplot as plt
o=cv2.imread("(1).png",0)
# 进行傅里叶变换
dft=cv2.dft(np.float32(o),flags=cv2.DFT_COMPLEX_OUTPUT)
# 进行低频位置移动到中心
dshift=np.fft.fftshift(dft)
# 找到行列的值
rs,cs=o.shape
# 计算中心的行和列
cr,cc=int(rs/2),int(cs/2)
# 计算掩膜生成一个行和列控制的,周围都设置成0中心的设置为1
mask=np.zeros((rs,cs,2),np.int8)
# 值越高,越清晰,值约低约模糊
mask[cr-80:cr+80,cc-80:cc+80]=1
# 淹膜和频谱图像进行乘法运算
md=dshift*mask
# 移动到左上角 逆傅里叶变换
imd =np.fft.ifftshift(md)
io=cv2.idft(imd)
io=cv2.magnitude(io[:,:,0],io[:,:,1])

plt.subplot(121)
plt.imshow(o,cmap="gray")
plt.title("origian")
plt.axis("off")
plt.subplot(122)
plt.imshow(io,cmap="gray")
plt.title("result")
plt.axis("off")
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值