function f = adaptive_median_filter (g, Smax)
%% 判断邻域是否合理
if (Smax <= 1) || (Smax/2 == round(Smax/2)) || (Smax ~= round(Smax))
error ('SMAX must be an odd integer > 1.')
end
%%
f = g;
f(:) = 0;
%% 标记是否已处理过
alreadyProcessed = false (size(g));
%% 开始自适应滤波
for k = 3:2:Smax
zmin = ordfilt2(g, 1, ones(k, k),'symmetric');
zmax = ordfilt2(g, k * k, ones(k, k), 'symmetric');
zmed = medfilt2(g, [k k], 'symmetric');
%% 判断是否进入进程B
processUsingLevelB = (zmed > zmin) & (zmax > zmed) & ~alreadyProcessed;
%% 若g不是脉冲,保留原值
zB = (g > zmin) & (zmax > g);
outputZxy = processUsingLevelB & zB;
%% 若是脉冲,用Zmed替换
outputZmed = processUsingLevelB & ~zB;
f (outputZxy) = g(outputZxy);
f (outputZmed) = zmed(outputZmed);
%% 已处理记录
alreadyProcessed = alreadyProcessed | processUsingLevelB;
%% 是否退出
if all (alreadyProcessed (:))
break;
end
end
%% 大于窗口尺寸后,Zxy替换成Zmed输出
f (~alreadyProcessed) = zmed (~alreadyProcessed);
end


海神之光
- 粉丝: 6w+
最新资源
- 综合布线系统介绍.pptx
- 复杂地形的遮挡剔除算法研究.doc
- 浅析电子商务与社交SNS的结合.doc
- 项目部安全管理网络图.doc
- 市场营销(网络营销方向)专业剖析报告PPT课件.ppt
- 专题讲座资料(2021-2022年)单片机控制直流电机并测速电压AD、DA转换以及pwm按键调速正转反转要点.doc
- 信息交换平台网络策划方案.doc
- 2023年CAD智慧树考试题库.doc
- 调度自动化标准.ppt
- 对多道心理测试仪生理参数提取算法的研究.doc
- 如何打造学习型团队武汉掘金网络营销顾问有限公司.pptx
- 快速成型机设计设计含全套CAD图纸和WORD说明.doc
- 国家开放大学电大《数控加工工艺》《健康评估》网络课形考网考作业(合集)答案.docx
- 基于单片机的智能电动窗帘控制器设计.doc
- 旅游网站的设计与开发论文.doc
- 互联网+农村电商信息服务平台策划书.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


