【第22期】观点:IT 行业加班,到底有没有价值?

[图像]中值滤波(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实现了图像的中...

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

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

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

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

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

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

均值滤波、中值滤波【MATLAB】【图像处理】

1. 均值滤波:即线性滤波,有:  a.邻域平均, b. 加权平均两种。 a. 邻域平均:用一个像素邻域平均值作为滤波结果,此时滤波器模板的所系数都取1,为保证输出图仍在原来的灰度值范围,在算得R后...

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

本文转自:http://blog.csdn.net/timidsmile/article/details/6904381 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波...

Matlab 最大值滤波 中值滤波 最小值滤波 ordfilt2

【转载】原文出处:http://blog.csdn.net/fengbingchun/article/details/5951629 ordfilt2函数 在MATLAB图像处理工具箱中提供了...

Matlab 最大值滤波 中值滤波 最小值滤波 ordfilt2

Matlab 最大值滤波 中值滤波 最小值滤波 函数 ordfilt2 【转载】原文出处:http://blog.csdn.net/fengbingchun/article/details/5951...

MATLAB 自编3*3中值滤波(含边缘)

先上M文件:function d=midfilt(x) %x是需要滤波的图像 p=length(x); %输入图像是p×p的,且p>3 x1=double(x); x2=x1; for i=1...

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

目前比较经典的图像去噪算法主要有以下三种:   均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度 的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊, 可以对...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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