您的位置:首页 > 编程语言 > C语言/C++

高斯模糊原理与C++实现

2017-04-22 10:50 363 查看
/****************************************************************
* 程序说明: 高斯模糊的定义、原理及C++实现
* 补充说明: (1)高斯模糊的定义、原理:http://baike.baidu.com/item/高斯模糊
*			为了便于说明,先假设模糊半径 r = 3 ,方差 sigma = 1.5 ,
*			对应的像素矩阵为:
*			14	15	16
*			24	25	26
*			34	35	36
*			简单一点的说,假设要对某个点进行高斯模糊,则把它视为
*			中心点,坐标为(0,0);然后根据其模糊半径的不同(如,模糊
*			半径为3时),其周围的8个点的(上下左右,两个斜对角)坐标
*			如下((0,0)点为二维坐标轴的原点):
*			(-1,1)  (0,1)  (1,1)
*			(-1,0)  (0,0)  (1,0)
*			(-1,-1) (0,-1) (1,-1)
*			然后根据二维高斯函数: G(x,y)=1/(2*pi*sigma^2)*e^(-(x^2+y^2)/(2*sigma^2))
*			计算对应的权重矩阵如下:
*			0.0453542	0.0566406	0.0453542
*			0.0566406	0.0707355	0.0566406
*			0.0453542	0.0566406	0.0453542
*			然后对其归一化:
*			0.0947416	0.1183180	0.0947416
*			0.1183180	0.1477610	0.1183180
*			0.0947416	0.1183180	0.0947416
*			将每个点乘以自己对应的权重:
*			14*0.0947416	15*0.1183180	16*0.0947416
*			24*0.1183180	25*0.1477610	26*0.1183180
*			34*0.0947416	35*0.1183180	36*0.0947416
*			即:
*			1.326380	1.774770	1.515870
*			2.839630	3.694030	3.076270
*			3.221210	4.141130	3.410700
*			将这9个值加起来,所得和值就是中心点的高斯模糊后的值,
*			对所有点重复这个过程,就得到了高斯模糊后的图像,如果
*			图像是彩色图像,可以对RGB通道分别做高斯模糊。
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐