图像处理:乘法滤波器(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')
相关推荐
模拟器连接器曾工6 小时前
CCD定位与图像辨别的智能视觉检测系统
人工智能·计算机视觉·视觉检测·智能视觉检测系统
Dyanic10 小时前
AMSFusion:一种基于注意力机制的自适应多尺度红外与可见光图像融合网络
图像处理·人工智能·学习
Anycall.Q11 小时前
RE-IMAGEN(ICLR 2023)
人工智能·计算机视觉·imagen
Gary jie11 小时前
OpenClaw4月更新的梦境记忆巩固系统
人工智能·深度学习·opencv·目标检测·机器学习·长短时记忆网络
大神的风范11 小时前
QT部署YOLO11实时检测
驱动开发·深度学习·qt·目标检测·计算机视觉
点PY11 小时前
医学图像超分辨率重建论文精度(2)
图像处理·人工智能·超分辨率重建
Westward-sun.12 小时前
OpenCV 实战:基于 SIFT 算法实现指纹图像验证
人工智能·opencv·计算机视觉
輕華12 小时前
角点检测与SIFT特征提取:OpenCV实战指南
人工智能·opencv·计算机视觉
学习永无止境@12 小时前
灰度图像中值滤波算法实现
图像处理·算法·计算机视觉
格林威12 小时前
GigE Vision 多相机同步终极检查清单(可直接用于项目部署)
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·工业相机