但这样并不是最终的处理结果,虽然这种简单的方法可以实现大致的模糊,但图像处理后会显得不是很平滑。如果想实现更加平滑的模糊效果,可用以数学方法。
需要用到一种函数:
高斯函数
(二维正态分布)
可以用高斯函数对图像进行卷积处理,直白的说就是对刚才的平均值做加权处理,得到一个加权平均值,而上面的模型图直观的反映了每一块当中各个像素的权值,当然此图比较突兀,反映到图像上会是处理后的图像颜色相对集中,也就是白的更白,黑的更黑。这种程度可以通过调节参数sigma来改变。
具体实现
此方法基于EasyX,c语言实现,简单易懂。
//======================================================
//项目名称:ATM用户界面
//环境:vs2019,easy x图形
库
//作者:jack shi
//开始时间:2019.6.3
//完成时间:2019.6.20
//======================================================
这篇文章主要讲图像的边缘化处理,之前我已经讲解了图像的灰度化和二值化,在图像处理中还有对图像边缘化的处理,这里我采用各种不同的算子处理图像,读者可以自己看出这些算子的效果。
在写代码之前,我参考了一下这个资料,其实关于图像边缘化的原理,网上有很多,也很详细,这里就不多说了。
https://blog.csdn.net/guanyuqiu/article/details/52993412
自由运动的点
这个程序并没有太强的艺术效果,只是为了做一个全屏模糊处理的范例。
其中,点的非直线自由运动的部分,是用的我在高中时候用 QuickBasic
实现
的一种简单方法,看到这部分代码有点让人怀念过去,呵呵。
简单说明一下:
为了使范例更清晰,全屏模糊处理的代码我做了简化,将第一行和最后一行忽略掉了。通过代码可以清晰地看到,所谓全屏模糊,其实就是对每个点与相邻的几个点的颜色做平均处理(可...
高斯模糊
算法 详见:
高斯模糊
,基本思想就是利用高斯函数,将一个坐标点的所有邻域的加权平均值设置为这些点的颜色值。
中值滤波算法就更简单了:将一个坐标点的所有邻域的平均值设置为这些点的像素值。
二、算法的代码
实现
高斯函数:
使用宏定义来替换:
#define PI 3.1415926
//
高斯模糊
函数
#define GAUSS_FUN(x, y) (exp(-(x*x)
图像模糊处理
/////////////////////////////////////////////////////////////////////////
// 程序名称:将图片进行模糊处理
// 编译环境:VC6.0 ~ 2017,
EasyX
20180727(beta)
// 作 者:鼠瓜
// 最后修改:2018-12-9
//算法说明:遍历图片像素,将每个像素颜色值与其周围像素颜色...