matlab 中值滤波

本文介绍了一个MATLAB实现的中值滤波函数,用于图像处理中的噪声去除。通过循环遍历像素并进行排序,选取中间值作为滤波结果。提供了不同大小的滤波核进行测试,并展示原始图像与滤波后的图像对比。
摘要由CSDN通过智能技术生成

从运算算子中,选择中间值作为当前输出。

如果转发,请注明出处。


中值滤波函数


function [ img ] = ImageMidFilter(imin,operator)


[m,n,g] = size(imin);
[k,h] = size(operator);






imin = im2double(imin);


a = fix(k/2);
b = fix(h/2);


img = zeros(m,n,g);
buf = zeros(k*h,1);
buf1 = buf;


for i = 1:m
    for j = 1:n
        cnt = 1;
        for k = -a:a
            for l = -b:b
                
                if (i+k >= 1) && ( i+k <= m) && (j+l >= 1) && (j+l <= n)
                    buf(cnt) = imin(i+k,j+l);
                    cnt = cnt + 1;
                end
                
           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值