说说高斯模糊
高斯模糊的理论我这里就不太多费话了,百度下太多,都是抄来抄去。
主要用到二个函数“高斯函数”
一维形式为:
二维形式为:
X,Y对应的一维二维坐标,σ表示模糊半径(半径* 2 + 1) / 2)
根据这二个公式获取对应的权重。
先看二维
假设我们现在图片中的像素点位置为(0,0)
假设我们设置的模糊半径为1,那么对应的坐标为如下图
它是以(0,0)这个坐标为标记,向外扩展1个像素。
接下来就是计算各个坐标的权重值,我们采用二维的高斯函数来计算,计算的代码如下:
- /// <summary>
- /// 获取权重
- /// </summary>
- /// <param name="x"></param>
- /// <param name="y"></param>
- /// <returns></returns>
- private double GetWeighing(int x, int y) {
- double q = (this.BlurRadius * 2 + 1) / 2;
- return 1 / (2 * Math.PI * Math.Pow(q, 2)) * Math.Exp(-(x * x + y * y) / (2 * q * q));
- }
this.BlurRadius 为我们设置的模糊