图像处理:乘法滤波器(Multiplying Filter)和逆FFT位移

一、乘法滤波器(Multiplying Filter)

乘法滤波器是一种以像素值为权重的滤波器,它通过将滤波器的权重与图像的像素值相乘,来获得滤波后的像素值。具体地,假设乘法滤波器的权重为h(i,j),图像的像素值为f(m,n),那么滤波后的像素值g(x,y)可以表示为:

g(x,y) = ∑∑ f(m,n)h(x-m,y-n)

∑∑表示对所有的(m,n)进行求和。

平移后的图像是指将图像进行平移操作后的结果。平移操作通常是指将图像的像素沿着x轴和y轴方向进行平移。平移后的图像与原始图像具有相同的大小和分辨率,但它们的像素位置发生了变化。在滤波操作中,平移后的图像可以用于与滤波器进行卷积运算,以实现滤波操作。

此操作抑制高频并保留低频,对于高通滤波器反之亦然。这个乘法过程对于去除不需要的频率和增强所需的频率是必不可少的,从而产生更清晰和更清晰的图像。

它使我们能够获得期望的频率响应,并在频域获得最终滤波图像。

复制代码
 fig, ax = plt.subplots()
 im = ax.imshow(np.log(1+np.abs(fftshifted_image * idealFilterLP(50,img.shape))), cmap='gray')
 ax.set_title('Filtered Image in Frequency Domain')
 ax.set_xticks([])
 ax.set_yticks([])

 fig.savefig('filtered image in freq domain.png', bbox_inches='tight')

在可视化傅里叶频谱时,使用np.log(1+np.abs(x))和20*np.log(np.abs(x))之间的选择是个人喜好的问题,可以取决于具体的应用程序。

一般情况下会使用Np.log (1+np.abs(x)),因为它通过压缩数据的动态范围来帮助更清晰地可视化频谱。这是通过取数据绝对值的对数来实现的,并加上1以避免取零的对数。

而20*np.log(np.abs(x))将数据按20倍缩放,并对数据的绝对值取对数,这可以更容易地看到不同频率之间较小的幅度差异。但是它不会像np.log(1+np.abs(x))那样压缩数据的动态范围。

这两种方法都有各自的优点和缺点,最终取决于具体的应用程序和个人偏好。

二、逆FFT位移

在频域滤波后,我们需要将图像移回原始位置,然后应用逆FFT。为了实现这一点,需要使用逆FFT移位,它反转了前面执行的移位过程。

复制代码
 fig, ax = plt.subplots()
 im = ax.imshow(np.log(1+np.abs(np.fft.ifftshift(fftshifted_image * idealFilterLP(50,img.shape)))), cmap='gray')
 ax.set_title('Filtered Image inverse fft shifted')
 ax.set_xticks([])
 ax.set_yticks([])

 fig.savefig('filtered image inverse fft shifted.png', bbox_inches='tight')
相关推荐
海绵波波10711 小时前
opencv、torch、torchvision、tensorflow的区别
人工智能·opencv·tensorflow
千宇宙航12 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第二十一课——高斯下采样后图像还原的FPGA实现
图像处理·计算机视觉·fpga开发
蜉蝣之翼❉15 小时前
Amplitude Modulated (AM) Digital Halftoning
计算机视觉
顾随16 小时前
(三)OpenCV——图像形态学
图像处理·人工智能·python·opencv·计算机视觉
布兰妮甜18 小时前
Adobe Photoshop:数字图像处理的终极工具指南
图像处理·ui·adobe·photoshop
格林威20 小时前
Baumer工业相机堡盟工业相机如何通过YoloV8模型实现人物识别(C#)
开发语言·人工智能·数码相机·yolo·计算机视觉·c#
Virgil1391 天前
数据分布是如何影响目标检测精度的
人工智能·深度学习·yolo·目标检测·计算机视觉
CoovallyAIHub1 天前
YOLO11 vs LMWP-YOLO:参数量-52.5%,mAP+22.07%,小型无人机的远距离检测
深度学习·算法·计算机视觉
zhongqu_3dnest1 天前
众趣SDK重磅升级:空间物联IOT新视界,赋能实景三维场景深度应用
人工智能·物联网·计算机视觉·3d·点云处理·点云扫描
jndingxin1 天前
OpenCV直线段检测算法类cv::line_descriptor::LSDDetector
人工智能·opencv·算法