首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >圆形中值滤波器matlab

圆形中值滤波器matlab
EN

Stack Overflow用户
提问于 2013-03-10 15:55:09
回答 1查看 1.9K关注 0票数 1

我如何定义一个圆形滤波器,它的作用类似于中值滤波器(medfilt2),而不是n n的正方形邻域,而是在半径为r的圆形邻域上执行中值?我需要在2d-image上执行这个操作。(当然,最好是快速工作)。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-10 16:57:57

ordfilt2与循环域一起使用。例如,

代码语言:javascript
运行
复制
B = ordfilt2(A, order, domain)

将A中的每个元素替换为由域中的非零元素指定的已排序邻居集合中的第3个元素。在您的示例中,创建一个循环域,如下所示

代码语言:javascript
运行
复制
domain=fspecial('disk',10)>0;

这会生成一个很好的二进制磁盘(21x21矩阵),它可能太大了,无法满足您的需求,因此可以使用fspecialimresize重新调整大小以满足您的需要。那么中位数就是从域中排序的非零元素中获得的中间值,因此:

代码语言:javascript
运行
复制
B = ordfilt2(A,round(0.5*numel(find(domain)))),domain);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15320142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档