1.高斯模糊简介
2.高斯模糊效果的优化
3.高斯模糊基础版实现
4.高斯模糊进阶版本实现
1.高斯模糊简介
1).高斯模糊
高斯模糊是利用高斯函数计算出高斯滤波核中每个元素并进行归一化处理后, 再和目标像素颜色通过卷积计算得到最终的结果
a.高斯函数计算出高斯滤波核中每个元素这个步骤相当于计算权重值
b.归一化处理是避免像素的亮度超过原来像素的亮度

a.σ是标准方差, 一般取值为1即可
b.x和y是相对于高斯核中心的整数距离
c.e是自然对数的底 ≈ 2.71828
d.π是圆周率 ≈ 3.14159
2).高斯滤波核
高斯滤波核被称为高斯核, 它其实是一个n * n的卷积核, 它的大小可以自定义, 但是一般会是奇数 * 奇数的大小, 通常会
是一个 3 * 3, 5 * 5, 7 * 7, 9 * 9的大小
"滤波核越大, 模糊效果越明显"



我们通常会使用"5 * 5"的大小, 高斯滤波核中的权重值, 我们通过"二维高斯函数"来确定


3).归一化处理

注: "高斯滤波核中的数值是定死的规则, 可以直接写死参与计算, 不用在代码中用高斯函数计算,会浪费性能"
3.高斯模糊效果的计算公式优化
3.1.引出问题
如果我们直接基于它的基本原理进行计算, 计算效率比较低, 因为对于一张长W, 宽H的图像, 会进行 "5 * 5 * W * H" 次纹
理采样的颜色计算

为了降低计算次数, 利用二维高斯函数的数学特性(可分离性), 二维高斯函数可以表示为两个一维高斯函数的乘积, 从而大
幅减少计算量

高斯滤波在图像的实现可以用两个一维高斯核分别两次加权实现, 也就是先一维X方向卷积, 得到的结果再一维Y方向卷积


通过对计算公式的优化, 我们将原本需要N * N * W * H的计算次数(N为高斯核大小)优化为了
2 * N * W * H, 相当于将时间复杂度从O(n²)降低到了O(n)
"注: 一个5×5的二维高斯核可以拆分成两个大小为5的一维高斯核, 因此我们只需要计算5个纹理坐标即可"
3.高斯模糊基础版实现






1395

被折叠的 条评论
为什么被折叠?



