高斯滤波和均值滤波的原理一样,不过在均值滤波中像素点的权重都一样,而在高斯滤波中越靠近中心的像素点的权重越大,具体权重值由二维高斯公式生成的矩阵决定,矩阵的阶和扫描的窗口大小一致。
关于二维高斯公式这里不再赘述,不了解的可以看看这篇文章:高斯函数的详细分析。
这里就只给出一个二维高斯分布的产生函数了, size是矩阵的阶,sigma是高斯函数的方差,一般来说图片的噪声越大,sigma也就越大,在去噪效果不理想时可以尝试调整sigma的值。
//生成高斯核
double* make_kernel(int size, double sigma) {
if (size % 2 == 0) {
cout << "size必须为奇数"