图像平滑处理
四种常用的线性滤波器对图像进行平滑处理:
1、归一化滤波器(Normalized Filter):
某一像素的邻域内的所有像素求平均值,然后赋值给该像素。
blur(
输入图像,
输出图像,
邻域大小Size(i,i),
中心点Point(-1,-1)
);
2、高斯滤波器(Gaussian Filter):
最有用的滤波器。将输入数组的每一个像素点与高斯内核卷积,卷积和当作输出像素值。
假设图像是1维的,不难知道中间像素的加权系数时最大的,周边像素的加权系数随着它们远离中间像素的距离增大而逐渐减小。
二维高斯函数中,u为均值,6代表标准差,(变量x和y各有一个均值,也各有一个标准差)
GaussianBlur(
输入图像,
输出图像,
滑块大小Size(i,i),
double sigmaX,
double sigmaY
);//当sigmaX和sigmaY都为0时会根据图像自动生成,i为奇数;
3、中值滤波器(Median Filter):
某一像素的邻域内的所有像素的中值,然后赋值给该像素。
medianBlur(
输入图像,
输出图像,
inti ksize
);//ksize均为模板大小
4、双边滤波器(Bilateral Filter):
有些时候滤波器不仅仅削弱了噪声,连带着把边缘也给磨掉了。为了在一定程度上避免这样的情况,可以使用双边滤波。
类似与高斯滤波,双边滤波器也给每一个邻域像素分配一个加权系数。这些加权系数包含两部分,第一部分加权方式与高斯滤波一样。第二部分的权重则取决于该邻域像素与当前像素的灰度差值。
bilateralFilter(
输入图像,
输出图像,
像素邻域直径int d,
double sigmaColor,
double sigmaSpace
);//sigmaColor为颜色空间的标准偏差,//sigmaSpace为坐标空间的的标准偏差