首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >低通滤波

低通滤波

作者头像
裴来凡
发布2022-05-28 16:30:53
发布2022-05-28 16:30:53
59100
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png',0)#原始图像
dft=cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT)#傅里叶变换
dftShift=np.fft.fftshift(dft)
rows,cols=img.shape
crow,ccol=int(rows/2),int(cols/2)#计算中心位置坐标
mask = np.zeros((rows,cols,2),np.uint8)
mask[crow-30:crow+30, ccol-30:ccol+30]=1#低通滤波
fShift=dftShift*mask
ishift=np.fft.ifftshift(fShift)
iImg=cv2.idft(ishift)#逆傅里叶变换
iImg=cv2.magnitude(iImg[:,:,0],iImg[:,:,1])#幅度值调整到[0,255]灰度空间内
plt.subplot(121)
plt.imshow(img,cmap='gray')
plt.title('original')
plt.axis('off')
plt.subplot(122)
plt.imshow(iImg,cmap='gray')
plt.title('iimg')
plt.axis('off')
plt.show()

算法:低通滤波将傅里叶变换结果图像中的高频分量值都替换为0,即屏蔽高频信号,只保留低频信号,实现低通滤波。低频信号对应图像内变化缓慢的灰度分量。低通滤波器使高频信号衰减而让低频信号通过,图像进行低通滤波后会变模糊。

  • 首先将图像进行傅里叶变换,得到其频谱图像
  • 然后在频域内将其高频分量的值处理为0,实现低通滤波
  • 最后,对图像进行逆傅里叶变换,得到恢复的原始图像

return=cv2.dft(img,flags)

  • img表示输入图像
  • flags表示转换标识,通常设置为cv2.DFT_COMPLEX_OUTPUT

return=cv2.magnitude(x,y)

  • x表示实部
  • y表示虚部
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档