中值滤波在图像去噪点中的应用
来源:互联网 发布:义和团刀枪不入 知乎 编辑:程序博客网 时间:2024/05/22 14:24
中值滤波是一种非线性的图像平滑方法,与均值滤波器以及其他线性滤波器相比,它能够很好地滤除脉冲噪声,同时又能够保护目标图像边缘。它是一种邻域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值,中值滤波可定义为:
式中:g(x,y)和f(x-i,y-i)分别为输出和输入像素灰度值,W为模板窗口。窗W可以取线状、方形、十字形、圆形、菱形等。
中值滤波实现过程如上图所示。标准的中值滤波器都是由一个奇数大小尺寸的滑动窗组成,通常为3x3窗或5x5窗等。以3x3窗为例,该窗沿着图像数据的行方向逐像素滑动,在每一次滑动期间内,方形窗中的所有像素按照灰度值被排序,这组数据中的中值作为输出,替代原来窗函数的中心位置像素的灰度值。
C语言基础实现如下:
windowSize = 3; //windowSize是指窗口的长度。v = (char *)calloc(windowSize*windowSize,sizeof(char)); //v存储的是窗口内所有像素的灰度级。for(i=(windowSize-1)/2;i<height-(windowSize-1)/2;i++){ for(j=(windowSize-1)/2;j<width-(windowSize-1)/2;j++) { //这个嵌套的for循环是为了让窗口在整个图像内进行移动,i和j就是这个窗口的中心像素在整幅图像中坐标位置 k=0; for(l=0;l<windowSize;l++) { for(m=0;m<windowSize;m++) { v[k]=h[i-(windowSize-1)/2+l][j-(windowSize-1)/2+m]; k++; } } //这个嵌套的for循环式获取这个窗口内的所有像素的灰度级,存储在v中 BubbleSort(v,windowSize*windowSize); //对v内的元素进行排序 h[i][j]=v[windowSize*windowSize/2]; //把排序后中间的那个数赋值给窗口的中心像素。 }}
效果图(窗口大小设置成3):
处理之后的图像:
参考链接:
http://blog.csdn.net/vincentzhao2009/article/details/4565601
- 中值滤波在图像去噪点中的应用
- 中值滤波在图像去噪中的应用
- 图像处理去噪点(中值滤波)java
- 图像的中值滤波
- 灰度图像中值滤波
- 【转】图像中值滤波
- 图像中值滤波实现
- 图像处理--中值滤波
- 图像增强-中值滤波
- 图像的中值滤波
- 维纳滤波在图像复原中的应用
- 维纳滤波在图像中的滤波
- Delphi图像处理 -- 中值滤波
- [图像]中值滤波(Matlab实现)
- 中值滤波与图像锐化
- 中值滤波与图像锐化
- MATLAB 图像 均值滤波 中值滤波
- 均值滤波、中值滤波【MATLAB】【图像处理】
- Windows Mobile 6 SDK 中的 GPS 工具 GPS Intermediate Driver
- linux:系统管理(创建硬盘、安排任务)
- Java method invoke的指令简介
- va_list、va_start、va_arg、va_end的原理与使用
- 邮件
- 中值滤波在图像去噪点中的应用
- 访问磁盘中的word文档java实现
- ARM的开发步骤
- opencv反色图片(黑白互换)
- Web 开发
- Android之SQLite数据库
- 真的离职了
- 汇编里 import 和export
- 工作组模式下设置文件共享(转载)