一、基本原理

上述均值滤波虽然可以降低噪声,但是也会导致图像模糊。而中值滤波在一定条件下可以克服线性滤波带来的图像细节模糊的问题,它对处理椒盐噪声非常有效。
中值滤波通常采用一个含有奇数个点的滑动窗口,将窗口中各点的灰度值按照从小到大的顺序排列,用这个排列的中值来代替中心点的灰度值。常用的中值滤波窗口形状有线状、方形和圆形等。在该算法中,我采用的是方形的窗口。

二、实现步骤

(1)采用一个大小为m×n的滑动窗口;
(2)令窗口在图像中滑动,并将窗口中心与某像素重合;
(3)将窗口下方图像区域的灰度值按照从小到大的顺序排列;
(4)找出上述排列的中间值;
(5)将上述中间值赋予窗口中心对应的像素。

三、效果演示

(1)使用大小为3×3的窗口进行中值滤波;

(2)使用大小为5×5的窗口进行中值滤波;

(3)使用大小为15×15的窗口进行中值滤波;

四、matlab实现代码

%% 中值滤波,模板的大小可以改变
clear,close all
srcImg = imread('中值滤波用.tif');
a = 1;% 模板行数为2*a+1
b = 1;% 模板列数为2*b+1
dstImg = median_Filter(srcImg,a,b);
h = figure(1);
size = get(0,'ScreenSize');
set(h,'position',size)
subplot(121);
imshow(srcImg);
title('原始图像','fontsize',24);
subplot(122);
imshow(dstImg);
title(sprintf('中值滤波后的图像(窗口大小为%d×%d)',2*a+1,2*b+1),'fontsize',24);
%% 函数定义:排序并找到中值
function mid_value = rank(mat)mat = mat(:);len = length(mat);for i = 1:lenmin_index = i;for j = i+1:lenif mat(j) < mat(min_index)min_index = j;endendif (min_index ~= i)temp = mat(i);mat(i) = mat(min_index);mat(min_index) = temp;endendmid_index = (len+1)/2;mid_value = mat(mid_index);
end
%% 函数定义:中值滤波函数
function dstImg = median_Filter(srcImg,a,b)srcImg = double(srcImg);% 注意[rows,cols] = size(srcImg);dstImg = srcImg;m = 2*a+1;n = 2*b+1;for i = 1:rows-m+1for j = 1:cols-n+1masked = srcImg(i:i+m-1,j:j+n-1);mid_value = rank(masked);dstImg(i+a,j+b) = mid_value;endenddstImg = uint8(dstImg);
end

中值滤波原理及matlab实现代码相关推荐

  1. 数字图像处理实验(三)|图像增强{归一化直方图imhist(f)/numel(f)、直方图均衡化histeq、生成线性空间滤波fspecial、中值滤波medfilt2}(附matlab实验代码截图)

    文章目录 一.实验目的 二.实验原理 1. 基本亮度变换函数 2.直方图均衡化 3.空间域滤波 三.预备知识: 四.实验内容 1.灰度修正 2.直方图均衡化: 3.空间域滤波 4. 频域率滤波 五.思 ...

  2. 中值滤波原理及MATLAB算法实现

    中值滤波是一种非线性滤波方式,它依靠模板来实现. 对于一维中值滤波,设模板的尺寸为 M ,M=2*r+1,r为模板半径,给定一维信号f(i),i = 1,2,3--N,则中值滤波输出为: g(i) = ...

  3. matlab图像处理-中值滤波原理

    中值滤波原理   中值滤波本质上是一种统计排序滤波器.对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i,j)点的响应.   中值不同于均值,是指排序队列中位于中 ...

  4. java 中值滤波_matlab图像处理-中值滤波原理(示例代码)

    中值滤波原理 ??中值滤波本质上是一种统计排序滤波器.对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i,j)点的响应. ??中值不同于均值,是指排序队列中位于中 ...

  5. 中值滤波原理及其代码实现

    本文主要是对高斯滤波,中值滤波原理进行简单介绍,随后用代码实现高斯噪声和椒盐噪声.以及用高斯滤波和中值滤波对这两种图像进行相关的处理. 高斯噪声:就是服从高斯正态分布的噪声,通常是因为高温或者是传感器 ...

  6. 中值滤波原理及其C++实现与CUDA优化

    对于数字图像的去噪,前边我们讲了均值滤波算法与高斯滤波算法,此外很常见的还有中值滤波算法,这些滤波算法都属于空间滤波,即对于每一个像素点,都选取其周围矩形区域中的像素点来计算滤波值.最近在项目中要使用 ...

  7. 中值滤波原理及c++实现

    写在前面 中值滤波器是一种非线性滤波器,或者叫统计排序滤波器. 应用:中值滤波对脉冲噪声(如椒盐噪声)的抑制十分有用. 缺点:易造成图像的不连续性. 原理 原理很简单,如果一个信号是平缓变化的,那么某 ...

  8. 基于FPGA的图像中值滤波原理与实现

    图像中值滤波的FPGA实现 项目简述 中值滤波器原理 中值滤波器的实现 测试模块的代码 仿真结果 下板结果 总结 项目简述 中值滤波器在去除尖端噪声中非常重要,是信号处理中最长用到的滤波器.图像中的一 ...

  9. 均值滤波原理及matlab实现代码

    一.基本原理 噪声点像素的灰度与其邻域内像素的灰度显著不同,根据噪声点的这一特性,可以使用邻域均值滤波来降低噪声. 利用一个大小为m×n的模板对一幅大小为M×N的图像进行均值滤波可以表示为如下公式,其 ...

最新文章

  1. 爬虫之手机APP抓包教程-亲测HTTP和HTTPS均可实现
  2. org.hibernate.MappingException: duplicate import异常
  3. 修改echarts环形图的牵引线及文字位置
  4. Hadoop常见面试45问
  5. vue项目实现列表页-详情页返回不刷新,再点其他菜单项返回刷新的需求
  6. c语言编程常见问题解答,C语言编程常见问题解答之常用函数的包含文件
  7. 信息学奥赛一本通 1028:字符菱形 | OpenJudge NOI 1.1 09
  8. Func和Action的介绍及其用法
  9. docx文档怎么排列图片_格式转换太麻烦?仅需一行命令,搞定图片、音频、视频、文本批量转换!...
  10. python中类的定义和使用_Python中类的定义与使用
  11. 如何卸载mysql5.6.28_如何完全删除MySQL以进行全新安装
  12. 如何用php开发oa系统,oa系统怎么使用
  13. android p正式版一加6,一加6T出厂搭载Android P 将于11月5日发布tokyo hot n0727
  14. DZ导航栏目参数说明
  15. linux单引号作用,单引号 双引号如何输入(Linux运维:单引号与双引号的使用)...
  16. 【转】《飞鸟集》325首全文
  17. 解决百度ueditor富文本编辑器不能插入视频的问题/src掉链/src清空,不能显示视频
  18. 经典伴读_GOF设计模式_结构型模式
  19. windows下服务器的数据的迁移解决方案
  20. mysql数据库连接失败_mysql数据库连接失败问题排查

热门文章

  1. Linux 文件按照大小排序
  2. Oracle——如何使用
  3. 1503_PPAP简介
  4. linux7硬盘自动挂载,Centos7自动挂载硬盘参数详解
  5. MongoDB备份及恢复
  6. 计算机系统英语作文结尾万能句子,英语作文开头结尾万能句子
  7. 【网易云信】直播推流SDK
  8. pandas中的DataFrame 的values 方法
  9. Android Studio 新建工程出现 Waiting for build to finishing
  10. python的opencv操作记录(五) - 插值第一篇