傅里叶变换的高通滤波

该博客介绍了如何使用傅里叶变换进行图像处理,通过Python实现图片的灰度化、傅里叶变换、低通滤波器的构造以及逆傅里叶变换,展示了低通滤波器如何去除高频噪声,保留图像的基本结构。最终,通过对比处理前后的图像,突显了傅里叶变换在图像去噪中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('E:/tuxiangku/cat.jpg')# 读入图片并灰度化
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

gray_f=np.float32(gray) ##float类型

h,w=gray.shape #获得长宽
a=int(h/2)# 计算图片中心位置
b=int(w/2)

dst=np.ones((h,w,2),np.uint8) #生成一个中间白两边黑的图片
dst[a-30:b-30,a+30:b+30]=0


dft=cv.dft(gray_f,flags=cv.DFT_COMPLEX_OUTPUT)#傅里叶变换
fshift = np.fft.fftshift(dft)#移动低频到中间


f_shift=fshift*dst #两图片位置信息相乘,获得中间白两边黑的低通滤波器
ishift = np.fft.ifftshift(f_shift)#逆移动位置
img_b=cv.idft(ishift)
magnitude_b=cv.magnitude(img_b[:,:,0],fshift[:,:,1])


plt.subplot(121)## 例如:plt.subplot(222)表示将整个图像窗口分为2行2列, 当前位置为2.
plt.imshow(gray_f,cmap='gray')
plt.title('picture')
plt.axis('off') #关闭坐标轴


plt.subplot(122)
plt.imshow(magnitude_b,cmap='gray')#cmap: 颜色图谱
plt.title('result')
plt.axis('off')
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宋宋的秋秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值