matlab - matlab中任意x,y坐标的二维中值滤波器
问题描述
我有一组 x,y 坐标和强度 (x,y,I)。这些 x,y 坐标不是统一的,也不会形成有序的二维数组。我想根据 x,y 坐标对强度进行 2D 中值滤波。不幸的是,我不能简单地使用medfilt2
,因为它们不是有序的或均匀间隔的。
我尝试了什么:
制作每个 (x,y) 坐标的邻域图:
for i=1:numel(x) neighbo{i}=find(sqrt( (x-x(i)).^2+(y-y(i)).^2)<150); end
这已经是一个问题,因为向量x
是 1e7 长,而且要做到这一点确实需要很长时间。
接下来我会对每个邻居{i}进行排序并选择中心值,我可以想象它会花费同样长的时间。关于如何实现中值过滤或使上述更有效的任何建议?
解决方案
推荐阅读
- java - 是否可以在 java/swing 中的屏幕程序上编写绘画?
- .net - 如何区分 .NET 中的空字符串和零长度字符串?
- facebook - Facebook 区域设置和货币
- drag-and-drop - 在 TListView 和旧版本的 C++ Builder 上闪烁
- laravel - Laravel API,如何接受 DELETE 方法
- python - Python Selenium - 根据字符串查找表格元素并单击关联单选按钮
- ios - 使用 Alamofire 获取响应
- javascript - 表单不会提交并给出错误信息
- excel - 准确搜索标题名称
- android - 高度为 100% 和背景图像的 Android webview