MATLAN图像处理之统计滤波

我们先看下面两图的结果  在进行方法代码描述

 

%非线性空间滤波  统计排序滤波器
%MATLAB 中使用ordfilt2生成飞线型滤波器
%g=ordfilt2(f,order,domain)
%该函数的作用,domain会生成 0 1 的元素的m n矩阵,其中非零元素作为领域 
%对领域内的元素排序, 选取第order个元素  作为该领域的像素值
%如果想对每一个部分进行统计排序滤波   可以不使用domain  使用onse(m,n)来生成全1 的矩阵

%如果要实现统计的最小滤波器   order=1   最大滤波器   order=m*n   中值滤波器order=median(1:mn)

%非线性空间滤波需要对图像进行填充后操作
%对图像填充用padarray函数
%fp=padarray(f,[r c],method,direction)
%f为输入图像  fp为填充后的图像  [r c] 用于给出填充f的行数 列数
%方法
%'symmetric'  (对称)图像大小通过围绕边界的镜像反射来填充
%'replicate'  图像大小通过复制边界中的值来扩展
%'circular'   图像大小铜鼓瓯江图像看成是一个周期函数的一个周期来扩展
% 方向
% 'pre'         在每一维的第一个元素的填充
% 'post'        在每一维的最后一个元素后填充
% 'both'        在每一维的第一个元素前和最后一个元素后填充
%若  f=[1 2;3 4]    fp=padarray(f,[3 2],'replicate','post') 生成结果如下
%fp=1 2 2 2 
%   3 4 4 4 
%   3 4 4 4 
%   3 4 4 4 
%   3 4 4 4 

clc
clear
f=imread('D:\亮度调节与空间滤波\9.jpg');
f1=f(:,:,1);
f2=ordfilt2(f1,1,ones(5,5));
f3=padarray(f1,[2 2],'replicate', 'pre');
f4=ordfilt2(f3,1,ones(5,5));
subplot(2,2,1)
imshow(f1)
title('原图')
subplot(2,2,2)
imshow(f2)
title('没有扩展进行滤波')
subplot(2,2,3)
imshow(f4)
title('扩展后进行滤波')
figure
f5=ordfilt2(f1,1,ones(5,5));
subplot(2,2,1)
imshow(f5)
title('最小滤波')
f6=ordfilt2(f1,9,ones(5,5));
subplot(2,2,2)
imshow(f6)
title('最大滤波')
f7=ordfilt2(f1,5,ones(5,5));
subplot(2,2,3)
imshow(f7)
title('中值滤波')
subplot(2,2,4)
imshow(f1)
title('原图')

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值