高斯滤波的快速实现方法

1. 介绍

二维高斯函数具有旋转对称性,处理后不会对哪一个方向上的边缘进行了过多的滤波,因此相对其他滤波器,具有无法比拟的优越性。但是传统Gauss滤波随着图像尺寸的增加,运算复杂度呈平方上涨,因此需要对其优化改进。下面,分别介绍传统型,分解型和递归迭代型三种实现方法。

2. 传统型

Gauss滤波首先需要构建一个Gauss滤波核,公式为:
在这里插入图片描述
Matlab代码实现:


dSigma =0.8;
fK1=1.0/(2*dSigma*dSigma);
fK2=fK1/pi;
iSize = 5;
step = floor(iSize/2 + 0.5);
for i = 1 : iSize
    x=i-step;
    fTemp=fK2*exp(-x*x*fK1);
    for j = 1 : iSize
        y=j-step;
        model(x+step,y+step)=fTemp*exp(-y*y*fK1);
    end
end
dSum = sum(sum(model));
model = model/dSum;                     %Gauss核数值归一化

在这里插入图片描述
  接下来就是将输入图像和滤波核进行卷积操作。其实质就是对原始图像进行加权求和,把这个“和”赋给中心像素。对于一个2048*2048的图像,需要进行104734756次乘法运算,和104734756次加法运算,运算复杂度是很高的。

3. 分解型

我们可以把一个二维Gauss核分解为两个一维高斯核,然后先对行做一次一维卷积,再对这个卷积结果做一次一维列卷积,得到的结果完全一模一样,而开销会小很多。

一维高斯核函数:
在这里插入图片描述
Matlab代码实现:


dSigma =0.8;
fK1=1.0/(2*dSigma*dSigma);
fK2=fK1/pi;
iSize = 5;
step = floor(iSize/2 + 0.5);
for i = 1 : iSize
    x=i-step;
    fTemp=fK2*exp(-x*x*fK1);
    model(1,x+step) = fTemp;
end
dM = sum(model);
model = model / dM;

在这里插入图片描述
一维卷积原理和二维卷积一样,只不过我们只需要将同一行或同一列上的数据,按位置一一加权求和,再把“和”赋给中心元素。

对于一个2048*2048的图像,需要进行41918464次乘法运算,和41918464次加法运算。相比传统运算量,只是前者的1/2.4985。如果遇到频繁计算Gauss滤波的算法,后者明显比前者速度快很多。

4. 递归迭代型

第二种方法较第一种方法,虽然有了较大改善,但是任然复杂度较高。这里再介绍一种更快速的逼近Gauss滤波方法。

具体步骤分为两步:首先对图像做一次前向滤波,其次,对图像再做一次后向滤波。

Forward:
在这里插入图片描述
Backward:
在这里插入图片描述
在这里插入图片描述
补充:图像处理高斯滤波


http://www.niftyadmin.cn/n/1715136.html

相关文章

局部色调映射(Local Tone Mapping)

重建视觉外观是色调映射的终极目标。色调映射算法在降低高动态图像(HDR)范围的同时着力保护捕捉到的原始图像的外观。色调映射算子分两种策略,一种是全局的,另一种是局部的。 1. 全局映射算子 每一个像素点将会根据它的全图特征和亮度信息进行映射&…

真实场景超分算法-Real-ESRGAN

1. 介绍 在单张图片超分辨率(Single Image Super-resolution)的问题中,许多方法都采用传统的 Bicubic 方法实现降采样,但是这与现实世界的降采样情况不同,太过单一。 盲超分辨率(Blind Super-resolution)旨在恢复未知且复杂的退化的低分辨率…

可逆网络实现 RAW 和 RGB 图像转换:Invertible Image Signal Processing

1. 摘要 未经处理的 RAW 数据对于图像编辑和计算机视觉来说是一种非常有价值的图像格式。然而,由于RAW 数据的文件大小巨大,大多数用户只能访问经过处理和压缩的 sRGB 图像。为了弥补这一差距,本文设计了一个可逆图像信号处理 (InvISP) pipl…

噪声及降噪算法总结

1. 噪声介绍 噪声是图像中不请自来的信号。当相机拍摄一个亮度十分均匀的区域时,相机输出的结果会不可避免地叠加一部分噪声。 相机的输出信号真实信号噪声信号。由于真实信号的具体值是未知的,所以只能用多次测量的平均值来代替。用数学公式表示就是&a…

基于时空融合的高效率多阶段视频降噪方法-EMVD

1. 介绍 这是Huawei Noah‘s Ark Lab在CVPR2021上的文章。他们针对于终端设备算力有限的条件下,提出了一种有效的视频降噪算法EMVD,其主要特点在于 通过可学习的可逆变换,将图像的亮度和颜色信息,以及不同的频率信息进行分解&am…

模型压缩之知识蒸馏

1. 介绍 1.2 背景 虽然在一般情况下,我们不会去区分训练和部署使用的模型,但是训练和部署之间存在着一定的不一致性: 在训练过程中,我们需要使用复杂的模型,大量的计算资源,以便从非常大、高度冗余的数据集中提取出…

运动补偿和运动估计总结(MEMC)

1.概念 1.1 ME ME用来将获得相邻两帧图像中块或者像素的位移矢量 详见 https://zhuanlan.zhihu.com/p/100311043 1.2 MC MC通过获得的运动矢量,对前一帧进行warp,获得新的帧。它是减少帧序列冗余信息的有效方法。 详见 https://zhuanlan.zhihu.com/p…

手把手教你训练自己的YOLO V4数据集,过程超详细,附带作者测试数据集

手把手教你训练自己的YOLO V4数据集,超详细教程,附带训练数据集整体训练来源与结果YOLO V4 论文链接:https://arxiv.org/abs/2004.10934YOLO V4 开源代码:https://github.com/AlexeyAB/darknet本次训练系统环境整体数据处理流程训…