python对灰度图进行傅里叶变换和低通滤波
2021/9/14 9:04:52
本文主要是介绍python对灰度图进行傅里叶变换和低通滤波,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('lenaNoise.png', 0) # 直接读为灰度图像 fft2 = np.fft.fft2(img) # FFT快速傅里叶变换 s1 = np.log(np.abs(fft2)) fftShift = np.fft.fftshift(np.fft.fft2(img)) # 将低频部分移动到中间 s2 = np.log(np.abs(fftShift)) plt.subplot(221), plt.imshow(np.abs(img), 'gray'), plt.title('original') plt.subplot(222), plt.imshow(np.abs(s1), 'gray'), plt.title('fft') plt.subplot(223), plt.imshow(np.abs(s2), 'gray'), plt.title('fftShift') #定义掩模:生成的掩模中间为1周围为0 row, col = int(img.shape[0] / 2), int(img.shape[1] / 2) # 求得图像的中心点位置 mask = np.zeros((img.shape[0], img.shape[1])) mask[row-20:row+20, col-20:col+20] = 1 # 保留了中间40^2个低频部分 #将掩模与傅里叶变化后图像相乘,保留中间部分 mask_img = fftShift * mask #使用np.fft.ifftshift将低频移动到原来的位置 ifftShift = np.fft.ifftshift(mask_img) ifft2 = np.fft.ifft2(ifftShift) plt.subplot(224), plt.imshow(np.abs(ifft2), 'gray'), plt.title('ifft2') plt.show() 结果如下图
这篇关于python对灰度图进行傅里叶变换和低通滤波的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础