必威体育Betway必威体育官网
当前位置:首页 > IT技术

中值滤波的一种快速计算方法

时间:2019-08-26 21:11:03来源:IT技术作者:seo实验室小编阅读:88次「手机版」
 

中值滤波

中值滤波(median filter)为常用图像滤波算法,用于处理椒盐噪声且能够保持边界,由于是非线性操作,传统的做法即对局部区域进行排序取中值的方法,较为耗时。

一种快速的计算法,即使用直方图取中位数代替排序,且利用相邻元素的直方图变动较少更新直方图,这样迭代获得滤波结果, 如下:

Matlab源码如下:

clc;
clear all;
close all;

image=imread('lena.jpg');
image=rgb2gray(image);
image=double(image);
[ih,iw]=size(image);

%中值滤波器尺寸
fw=5;
fh=5;
hfw=floor(fw/2);
hfh=floor(fh/2);

%1.image pad,边界拓展
src=zeros(ih+fh-1,iw+fw-1);
for i=1-hfh:1:ih+hfh
    row=i;
    if(i<1)
        row=1;
    elseif(i>ih)
        row=ih;
    end
    for j=1-hfw:1:iw+hfw
        col=j;
        if(j<1)
            col=1;
        elseif(j>iw)
            col=iw;
        end
        src(i+hfh,j+hfw)=image(row,col);
    end
end

%2.滤波操作
th=(fw*fh)/2+1;%中值位置
dst=zeros(ih,iw);%输出
for row=1:ih
    
    %2.1当前行先初始化直方图
    imHist=zeros(256,1);
    num=0;
    for i=row:fh+row-1
        for j=1:fw
            imHist(src(i,j)+1)=imHist(src(i,j)+1)+1;%图像取值范围0~255
        end
    end
    for i=0:255
        num=imHist(i+1)+num;
        if(num>th)
            index=i;
            break;
        end
    end
    
    %2.2当前行第1个元素赋值
    dst(row,1)=index;
    
    %2.3当前行其他元素计算
    for col=2:iw
        
        %2.3.1更新直方图
        for i=row:fh+row-1
            imHist(src(i,col-1)+1)=imHist(src(i,col-1)+1)-1;%待输出统计元素
            imHist(src(i,fw+col-1)+1)=imHist(src(i,fw+col-1)+1)+1;%待增加统计的元素
            if(src(i,col-1)<=index)
                num=num-1;
            end
            if(src(i,fw+col-1)<=index)
                num=num+1;
            end
        end
        
        %2.3.2寻找中值滤波结果
        while(num>th)
            num=num-imHist(index+1);
            index=index-1;
        end
        while(num<th)
            index=index+1;
            num=num+imHist(index+1);
        end
        
         dst(row,col)=index;
    end
end

figure,imshow(image,[]),title('src image');
figure,imshow(src,[]),title('pad image');
figure,imshow(dst,[]),title('filter image');

Reference

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

2.中值滤波的快速算法

相关阅读

淘宝卖家怎么处理滞销宝贝?怎么快速处理?

对于淘宝商家来说,在销售产品的时候会有很多的情况出现,如果宝贝比较多的话,那就会对产品不可能一一的照顾过来,所以会有滞销的产品出

淘宝白号怎么快速上星?详细流程介绍

所谓上星,其实主要指的就是卖家账号,因为对于淘宝卖家和买家账号,用来衡量其信誉的相关标准,是存在着一定差异的,卖家的主要是钻石、皇

Excel2010中快速输入身份证号码的操作方法

excel作为功能强大的办公软件,是非常重要的。许多朋友在输入身份证号的时候,会遇到类似3.62202E+17的情况,苦恼不堪。如何迅速的在ex

最简单的淘客建站教程:30分钟6大步快速完成网站搭建【

我推荐新手用wordpress建站程序,该程序漏洞少且稳定,利于SEO优化,更重要的是你可以用wordpress搭建出你想要的任意样式的网站:个人博

QQ空间QQ好友克隆技术,快速打造高人气QQ空间。

QQ克隆,人气圈格外昌盛,沿用相当广泛,还特么免费滴。QQ空间人气圈,克隆好友无人不知,大致的方式就是克隆好友,而后删除好友(双向好友改

分享到:

栏目导航

推荐阅读

热门阅读