当前位置:   article > 正文

图像的高频和低频滤波处理_图像高频低频

图像高频低频

图像的高频和低频

低频对应图像内变化缓慢的灰度分量。列如,在一副大草原上的图像中,低频对应着广袤的颜色趋于一致的草原

高频对应着图像内变化越来越快的灰度分量,是由灰度的尖锐过度造成的,列如,在一副大草原的图像中,其中狮子的边缘等信息

衰减高频而通过低频,低通滤波器,将模糊一幅图像
衰减低频而通过高频,高通滤波器,将增强尖锐的细节,但是会导致图像的对比度降低

滤波

接受(通过)或者拒绝一定频率的分量
通过低频的滤波器称为低通滤波器
通过高频的滤波器称为高通滤波器 

修改傅里叶变换以达到特殊的目的,然后计算IDFT返回到图像域
特殊目的:图像增强、图像去燥、边缘检测、特征提取、压缩、加密等

代码:高频滤波,中心部分设置成0

  1. import numpy as np
  2. import cv2 #opencv-python
  3. import matplotlib.pyplot as plt
  4. img = cv2.imread("../images/chenqiaoen.jpg",0)
  5. #傅里叶变换
  6. f = np.fft.fft2(img)
  7. #得到左上角低频成分放到中间
  8. fshift = np.fft.fftshift(f)
  9. #得到图片的行列,也就是宽高
  10. rows,cols = img.shape
  11. #获取中心位置
  12. crow,ccol = int(rows/2),int(cols/2)
  13. #中心低频的区域,+-30都变为0
  14. fshift[crow-30:crow+30,ccol-30:ccol+30] = 0
  15. #低频中心位置移动到左上角
  16. ishift = np.fft.ifftshift(fshift)
  17. #傅里叶逆变换
  18. iomage = np.fft.ifft2(ishift)
  19. #取绝对值
  20. iimg = np.abs(iomage)
  21. #展示
  22. plt.subplot(121)
  23. plt.imshow(img,cmap = "gray")
  24. plt.title("original")
  25. plt.axis("off")
  26. plt.subplot(122)
  27. plt.imshow(iimg,cmap="gray")
  28. plt.title("iimg")
  29. plt.axis('off')
  30. plt.show()

 效果展示:左边是原始图像,右边是滤掉低频的图像

代码:低频滤波,中心部分设置成1

  1. # -*- coding: utf-8 -*-
  2. """
  3. create time:2023年4月1日17:37:22
  4. @author: seer_HT
  5. """
  6. import numpy as np
  7. import cv2 #opencv-python
  8. import matplotlib.pyplot as plt
  9. img = cv2.imread("../images/chenqiaoen.jpg",0)
  10. #傅里叶变换
  11. dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT)
  12. #低频左上角移动到中心位置
  13. dftShift = np.fft.fftshift(dft)
  14. #计算中心位置,行列
  15. rows,cols = img.shape
  16. crow,ccol=int(rows/2),int(cols/2)
  17. #眼膜图像,2通道
  18. mask = np.zeros((rows,cols,2),np.uint8)
  19. #中心位置设置成1
  20. mask[crow-30:crow+30,ccol-30:ccol+30]=1
  21. #眼膜和频谱图像进行乘法,得到低通滤波
  22. fShift = dftShift*mask
  23. #低频移动到左上角
  24. ishift = np.fft.ifftshift(fShift)
  25. #傅里叶反变换
  26. iImg = cv2.idft(ishift)
  27. #将俩个通道的图像转换为灰度图像
  28. Imgre = cv2.magnitude(iImg[:,:,0],iImg[:,:,1])
  29. plt.subplot(121)
  30. plt.imshow(img,cmap="gray")
  31. plt.title("original")
  32. plt.axis('off')
  33. plt.subplot(122)
  34. plt.imshow(Imgre,cmap='gray')
  35. plt.title('inverse')
  36. plt.axis('off')
  37. plt.show()

效果展示:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/72576
推荐阅读
相关标签
  

闽ICP备14008679号