本文目录一览

1,去除尖锐噪声是用中值滤波还是均值滤波

均值滤波是对窗口所覆盖的像素求取均值,这种滤波方法是将噪声平均到邻域像素里面,所以会模糊图像;中值滤波是对窗口下的像素值进行排序,将中间位置的像素值赋给窗口中心像素,对于滤除诸如椒盐噪声等有很好的效果。对于你说的尖锐噪声,建议使用中值滤波。以上。
alpha-trim比较好

去除尖锐噪声是用中值滤波还是均值滤波

2,均值滤波

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。 均值滤波也称为线性滤波,其采用的主要方法为领域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。

均值滤波

3,高斯滤波和均值滤波的区别 opencv

滤波实质上就是对图像进行卷积运算。而卷积的运算可以分为反转、平移,相乘,求和。 在图像处理中,图像是一个大矩阵,卷积模板是一个小矩阵。按照上述过程,就是先把小矩阵反转,然后平移到某一位置,小矩阵的每一个小格对应大矩阵里面的一个小格,然后把对应小格里面的数相乘,把所有对应小格相乘的结果相加求和,得出的最后结果赋值给小矩阵中央小格对应的图像中小格的值,替换原来的值。就是上述说到的,反转、平移、相乘、求和。 一般图像卷积就是从第一个像素(小格)开始遍历到最后一个像素(小格)。之后的平滑、模糊、锐化、边缘提取等本质上都是卷积,只是模板不同。 了解以上之后,就很好理解了。均值滤波就是对模板对应的图像像素求均值然后赋值给模板中心对应的那个像素值。高斯滤波模板是二维高斯函数的离散化表示,高斯函数就是我们熟悉的正态分布。所以可以知道模板是中心值大,而越往外越小,高斯模板就是按照高斯函数递减的模板。 如果把模板小矩阵的每一个元素视为一个权值的话,均值滤波就是所有元素权值相等,高斯滤波就是中心点权值最大,越往外所占越小。比平均滤波的好处是可以突出重点。 可以参考浅墨大神的这篇博文,里面有更细致的介绍:http://blog.csdn.net/pi9nc/article/details/22977297

高斯滤波和均值滤波的区别 opencv

4,关于c中均值滤波求助

这个filter是用来平滑图像用的,简单来说是对一幅(width * height)大小的图像按下述方法进行平滑化,以达到除去图像中噪声的目的。 首先把输入图像中每个像素点和该像素点四周的8个像素点作为一组来看,将这9个像素点的灰度进行排序后取最中间的...
//中值滤波和均值大概这个样子 int nbytewidth=nwidth*3; if (nbytewidth%4) nbytewidth+=4-(nbytewidth%4); byte p[9],s; int i,j; for(y=1;y{ for(x=3;x { //把一个像素周围的8个像素值分别赋值给p[0]到p[8] p[0]=lpinput[x-3+(y-1)*nbytewidth]; p[1]=lpinput[x+(y-1)*nbytewidth]; p[2]=lpinput[x+3+(y-1)*nbytewidth]; p[3]=lpinput[x-3+y*nbytewidth]; p[4]=lpinput[x+y*nbytewidth]; p[5]=lpinput[x+3+y*nbytewidth]; p[6]=lpinput[x-3+(y+1)*nbytewidth]; p[7]=lpinput[x+(y+1)*nbytewidth]; p[8]=lpinput[x+3+(y+1)*nbytewidth]; //将p[0]到p[8]从小到大排列 for(j=0;j<5;j++) { for(i=j+1;i<9;i++) { if (p[j]>p[i]) { s=p[j]; p[j]=p[i]; p[i]=s; } } } //将各点的中值赋值给该像素 lpoutput[x+y*nbytewidth]=p[4]; } //---------------------------------------- int sr,sg,sb; int nbytewidth=nwidth*3; if (nbytewidth%4) nbytewidth+=4-(nbytewidth%4); for(y=1;y { for(x=1;x { p=x*3+y*nbytewidth; sb=0; sg=0; sr=0; for(y1=-1;y1<=1;y1++) for(x1=-1;x1<=1;x1++) { //像素本身及其周围的八个像素(3x3窗口内的像素)的blue值之和 sb+=lpinput[(y+y1)*nbytewidth+(x+x1)*3]; //像素本身及其周围的八个像素(3x3窗口内的像素)的green值之和 sg+=lpinput[(y+y1)*nbytewidth+(x+x1)*3+1]; //像素本身及其周围的八个像素(3x3窗口内的像素)的red值之和 sr+=lpinput[(y+y1)*nbytewidth+(x+x1)*3+2]; } //将red,green,blue值的平均值赋值给该像素 lpoutput[p+2]=sr/9; lpoutput[p+1]=sg/9; lpoutput[p]=sb/9; } }

文章TAG:均值滤波  去除尖锐噪声是用中值滤波还是均值滤波  
下一篇