[图像]中值滤波(Matlab实现)

原创 2015年07月10日 09:09:34

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:http://blog.csdn.net/humanking7/article/details/46826009


原理简述

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。它也是一种邻域运算,类似于卷积,但是计算的不是加权求和,而是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围像素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点。它能减弱或消除傅立叶空间的高频分量,但影响低频分量。因为高频分量对应图像中的区域边缘的灰度值具有较大较快变化的部分,该滤波可将这些分量滤除,使图像平滑。值滤波技术在衰减噪声的同时能较好的保护图像的边缘。

代码实现

主函数代码

clear all;
clc;
%----------------------------------------------
%图像进行中值滤波,并显示图像
%调用  median_filter( )  进行处理
%----------------------------------------------

%读进图像
[filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.gif'}, '选择图片');

%没有图像
if filename == 0
    return;
end

Image = imread([pathname, filename]);
[m, n, z] = size(Image);

%转换为灰度图
if z>1
    Image = rgb2gray(Image);
end

result = median_filter(Image, 3);

 figure(1)
 subplot(1,2,1);
    imshow(Image);
    title('原图像');
 subplot(1,2,2);
    imshow(result);
    title('中值滤波后');

中值滤波函数代码

代码保存为 median_filter.m

function [ img ] = median_filter( image, m )
%----------------------------------------------
%中值滤波
%输入:
%image:原图
%m:模板的大小3*3的模板,m=3

%输出:
%img:中值滤波处理后的图像
%----------------------------------------------
    n = m;
    [ height, width ] = size(image);
    x1 = double(image);
    x2 = x1;
    for i = 1: height-n+1
        for j = 1:width-n+1
            mb = x1( i:(i+n-1),  j:(j+n-1) );
            mb = mb(:);
            mm = median(mb);
            x2( i+(n-1)/2,  j+(n-1)/2 ) = mm;

        end
    end

    img = uint8(x2);


end

效果展示

1

版权声明:本文为博主原创文章,未经博主允许不得转载。

中值滤波matlab

摘  要 中值滤波技术是一种在去除噪声的同时能较好保护图像边缘细节的非线性技术,在图像增强和恢复等领域中得到了广泛的应用。文章阐述了中值滤波的原理和特点,并使用软件工具MATLAB实现了图像的中...
  • voyagflyer
  • voyagflyer
  • 2016年04月07日 09:13
  • 16966

【Matlab学习笔记】【图像滤波去噪】中值滤波

中值滤波程序: clc; clear all; J=imread('F:\图像去噪\4.jpg'); I=rgb2gray(J); subplot(1,2,1); imshow(I); title('...
  • u013035197
  • u013035197
  • 2015年05月13日 09:01
  • 3859

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

中值滤波是一种非线性滤波方式,它依靠模板来实现。 对于一维中值滤波,设模板的尺寸为 M ,M=2*r+1,r为模板半径,给定一维信号f(i),i = 1,2,3……N,则中值滤波输出为: g(i)...
  • fengxianghui01
  • fengxianghui01
  • 2017年04月11日 18:00
  • 681

均值滤波和中值滤波matlab代码

  • 2017年12月19日 16:33
  • 45KB
  • 下载

自适应中值滤波RAMF

一、回顾一下传统的中值滤波     中值滤波就是选择一定形式的窗口,使其在图像的各点上移动,用窗内像素灰度值的中值代替窗中心点处的像素灰度值。它对于消除孤立点和线段的干扰十分有用,能减弱或消除傅里叶空...
  • qq_20823641
  • qq_20823641
  • 2016年06月26日 21:26
  • 3313

灰度图像--图像增强 中值滤波

图像增强,中值滤波,图像平滑
  • TonyShengTan
  • TonyShengTan
  • 2015年01月30日 15:26
  • 3154

中值滤波 matlab

  • 2012年12月05日 22:40
  • 370KB
  • 下载

均值滤波、中值滤波的matlab实现

目前比较经典的图像去噪算法主要有以下三种:   均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度 的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊, 可以对...
  • timidsmile
  • timidsmile
  • 2011年10月25日 20:26
  • 77590

图像平滑处理(归一化块滤波、高斯滤波、中值滤波、双边滤波)

图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blurGaussianBlurmedianBlurbilateralFilter ...
  • Real_Myth
  • Real_Myth
  • 2016年04月15日 09:06
  • 1803

【图像处理】高效的中值滤波(bug 已修复)

从编程的观点看,直方图是一种很有效的数据结构,所占内存空间很少,又能反映出图像中的灰度分布和目标特性等等,且直方图本身就是有序的。基于直方图可以很容易、很高效地得到图像中亮度、对比度、最大亮度、最小亮...
  • Kena_M
  • Kena_M
  • 2015年07月27日 23:11
  • 2777
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[图像]中值滤波(Matlab实现)
举报原因:
原因补充:

(最多只允许输入30个字)