高斯模糊在图像处理中有着非常重要的作用,例如在构建拉普拉斯金字塔时,高斯模糊是核心操作,但是高斯模糊本身比较耗时。本文讲解一个加速高斯模糊的方法,同时会讲一些相关的操作,最后会给出完整的代码。
1、高斯模糊与均值模糊的时间复杂度
在模糊半径为r时,高斯模糊的时间复杂度为
,而均值模糊的时间复杂度为O(N)。这是因为高斯模糊核是一个高斯分布,每个位置的值都不一样,在每个像素位置都要老老实实的算完邻域的乘法,而均值模糊的核是一个常数,每个位置的值是相同的,可以通过各种优化手段优化为线性时间复杂度。具体细节可以参考这篇博客。
2、高斯模糊的加速
高斯模糊可以通过3次均值模糊来近似,这个是有相应的论文支撑的,同时我也在工程中做了验证,参考文献[1]中给出了在给定高斯模糊下的标准差时,如何计算3次均值模糊的模糊半径。这里给出相应的代码: