MATLAB超限邻域滤波

286 篇文章 33 订阅
236 篇文章 15 订阅

在这里插入图片描述
% 超限邻域滤波器
clc,clear,close all % 清理命令区、清理工作区、关闭显示图形
warning off % 消除警告
feature jit off % 加速代码运行
[filename ,pathname]=…
uigetfile({‘.bmp’;'.jpg’;},‘选择图片’); % 选择图片路径
str = [pathname filename]; % 合成路径+文件名
im = imread(str); % 原图像
im = imnoise(im,‘gaussian’,0,1e-3); % 原图像 + 白噪声

im1 = threddmean_filter( im,5, 5/255 ); % 应用超限邻域滤波
figure(‘color’,[1,1,1])
subplot(121),imshow(im,[]),title(‘original image’)
colormap(jet) % 颜色
shading interp % 消隐
subplot(122),imshow(im1,[]),title(‘超限邻域滤波’)
colormap(jet) % 颜色
shading interp % 消隐
function Z = threddmean_filter(X,n,thred)
% 函数对输人图像进行超限邻域平均法滤波
% 函数输入
% X:输人二维图像矩阵
% n:掩膜尺寸
% thred:阈值
% 函数输出
% Z:输出图像矩阵,数据类型与输人相同
if size(X,3)~=1
error(‘图像应该为2维矩阵’)
end
if ~isa(X,‘double’)
X = double(X)/255; % 数据类型
end
H = fspecial(‘average’,n); % 均值模板
Y = imfilter(X, H);
thre = abs(X-Y)>thred; % 判断哪些是门限
Z = X; % 赋值
Z(thre)=Y(thre);
Z = im2uint8(Z); % 类型转换

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值