资讯专栏INFORMATION COLUMN

pythonopencv图象高通滤波和低通滤波器的范例编码

89542767 / 940人阅读

  文章主要是详细介绍了pythonopencv图像高通滤波和低通滤波器,此文经过案例编码为大家介绍得非常详尽,对大家学习培训和工作具有很强的参照参考意义,必须的小伙伴可以借鉴一下


  序言


  上一章大家反映了如何把图象机娘傅立叶变换,将图象由时域转换成时域,并把低频率挪动至图象核心。那样将低频率总厅后,就可以把图象的低频率和高频率分离,进而开展低通滤波器跟高通滤波的处理方法。

01.png

  详细编码


  低通滤波


  import cv2
  import numpy as np
  import matplotlib.pyplot as plt
  #cv2.imread()在读取图像的时候,默认的是读取成RGB图像,cv2.IMREAD_GRAYSCALE将以灰度图的形式读取
  img=cv2.imread('./moon.jpg',flags=cv2.IMREAD_GRAYSCALE)
  #将图像除以255是为了将图像向数字准换成fioat32数据
  img1=img/255
  #进行傅里叶变换,时域——>频域
  dtf=cv2.dft(img1,flags=cv2.DFT_COMPLEX_OUTPUT)
  #移动低频波到中心位置
  dft_shift=np.fft.fftshift(dtf)
  #低通滤波
  h,w=img.shape
  #图像中心点即低频波所在位置
  h2,w2=h//2,w//2
  mask=np.zeros((h,w,2),dtype=np.uint8)
  #选取长宽为100的区域的低频部分为1,其余部分为0
  mask[h2-50:h2+50,w2-50:w2+50]=1
  #低频部分保留,其余部分*0被滤掉
  dft_shift*=mask
  #傅里叶逆变换,频域——>时域
  ifft_shift2=np.fft.ifftshift(dft_shift)
  result=cv2.idft(ifft_shift2)
  #创建显示窗口,显示原图
  plt.figure(figsize=(12,9))
  plt.subplot(121)
  plt.imshow(img,cmap='gray')
  #创建显示窗口,显示低通滤波后的图像
  plt.subplot(122)
  plt.imshow(result[:,:,0],cmap='gray')
  plt.show()


  高通滤波


  高通滤波和低通滤波的主要区别在于,低通滤波是保留中心的低频波去除高频波,高通滤波是去除中心的低频波保留高频波。


  import cv2
  import numpy as np
  import matplotlib.pyplot as plt
  #cv2.imread()在读取图像的时候,默认的是读取成RGB图像,cv2.IMREAD_GRAYSCALE将以灰度图的形式读取
  img=cv2.imread('./moon.jpg',flags=cv2.IMREAD_GRAYSCALE)
  #将图像除以255是为了将图像向数字准换成fioat32数据
  img1=img/255
  #进行傅里叶变换,时域——>频域
  dtf=cv2.dft(img1,flags=cv2.DFT_COMPLEX_OUTPUT)
  #移动低频波到中心位置
  dft_shift=np.fft.fftshift(dtf)
  #高通滤波
  h,w=img.shape
  #图像中心点即低频波所在位置
  h2,w2=h//2,w//2#中心点
  #选取长宽为100的区域的低频部分为0,其余高频部分为1
  dft_shift[h2-5:h2+5,w2-5:w2+5]=0
  #傅里叶逆变换,频域——>时域
  ifft_shift2=np.fft.ifftshift(dft_shift)
  result=cv2.idft(ifft_shift2)
  #创建显示窗口,显示原图
  plt.figure(figsize=(12,9))
  plt.subplot(121)
  plt.imshow(img,cmap='gray')
  #创建显示窗口,显示低通滤波后的图像
  plt.subplot(122)
  plt.imshow(result[:,:,0],cmap='gray')
  plt.show()


  结果展示

02.png

  改变滤波区域的大小可以改变滤波的程度,可以修改如图所示的代码中的相关部分:


  低通滤波

03.png

  高通滤波

04.png

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130279.html

相关文章

  • opencv python 图像平滑/2D卷积/图像平滑/平均值法/高斯模糊/中值模糊/双边滤波

    摘要:卷积与一维信号一样,图像也可以使用各种低通滤波器,高通滤波器等进行滤波有助于消除噪声,模糊图像等滤波器有助于找到边缘图片将内核与图像进行卷积应用对图像进行平均过滤。它只取内核区域下所有像素的平均值并替换中心元素。 Smoothing Images 1 2D卷积 与一维信号一样,图像也可以使用各种低通滤波器(LPF),高通滤波器(HPF)等进行滤波.LPF有助于消除噪声,模糊图像等.H...

    Little_XM 评论0 收藏0
  • HTML5音频API Web Audio

    摘要:属性返回对象,表示当前中所有节点的最终节点,一般表示音频渲染设备。包括音频源,音频输出,中间处理模块。延迟停止时间,单位为秒。音频终点是通过接口的属性访问的。各个音频处理通道内的操作是独立的,不影响其他音频通道。 此文介绍HTML5音频API的主要框架和工作流程,因为音频处理模块很多,因此只简单介绍几种音频处理模块,并通过例子来展示效果。后续会介绍利用HTML5音频API实现的项目,欢...

    Juven 评论0 收藏0
  • Chrome 53 Beta一些有意思改动

    摘要:那些嵌入了第三方内容的站点需要确保引入的样式不会影响到已有的应用。这项技术提高了那些大型或者有很多组件站点的可维护性。相较于有一些重大变化,并且已经得到主要的浏览器厂商的认可。为支持添加了响应头支持的而被废弃。 原文链接: http://blog.chromium.org/2016...译者:Icarus邮箱:xdlrt0111@163.com 如果没有特殊说明的话,以下都是应用在An...

    lifefriend_007 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<