均值滤波
来源:互联网 发布:arp查看mac 编辑:程序博客网 时间:2024/05/16 01:46
均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y),即g(x,y)=1/m ∑f(x,y), m为该模板中包含当前像素在内的像素总个数。这样的方法可以平滑图像,速度快,算法简单。但是无法去掉噪声,这能微弱的减弱它。
void MeanFilter(CvMat *pGrayMat, CvMat *pFilterMat, int nWidth, int nHeight, int nWindows)
{
////////////////////////参数说明///////////////////////////////////
//pGrayMat:待处理图像数组
//pFilterMat:保存高斯滤波结果
//nWidth:图像宽度
//nHeight:图像高度
//nWindows:滤波窗口大小
if((nWindows%2) == 0)
{
MessageBox("此函数必须设置邻域为奇数矩阵");
return;
}
int nNumData = nWindows/2;
if((nWindows>nHeight) && (nWindows>nWidth))
{
MessageBox("滤波窗口超出许可范围,请检查!");
return;
}
for(int i=nNumData; i<(nHeight-nNumData); i++)
{
for(int j=nNumData; j<(nWidth-nNumData); j++)
{
double dData = 0.0;
int nNum = 0;
for(int m=-nNumData; m<=nNumData; m++)
{
for(int n=-nNumData; n<=nNumData; n++)
{
if((m!=0) && (n!=0))
{
dData += cvmGet(pGrayMat ,i+m, j+n);
nNum++;
}
}
}
dData /= nNum;
cvmSet(pFilterMat, i, j, dData);
}
}
}
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波
- 均值滤波&阈值均值滤波
- 均值滤波 中值滤波 对称均值滤波
- 中值滤波VS.均值滤波
- 均值滤波vs中值滤波
- 图像处理:均值滤波
- K近邻均值滤波
- 对称邻近均值滤波
- 快速均值滤波
- 中值和均值滤波
- 均值滤波快速算法
- 均值滤波函数
- 移动均值滤波
- (总结)Nginx配置文件nginx.conf中文详解
- Hadoop别人的学习总结
- ImageView 使用 setAlpha() 设置控件透明
- SIFT算法的应用--目标识别之Bag-of-words模型(转)
- 10.3修改
- 均值滤波
- acm-poj1050解题报告
- 【Android 个人理解(七)】用ContentValues和自定义Application处理数据
- 【随堂笔记】指针变量
- nginx 配置从零开始
- es-aop
- 中值滤波
- Java设计模式——状态模式(State)
- php怎样清除浏览器缓存