首页 > 解决方案 > matlab中任意x,y坐标的二维中值滤波器

问题描述

我有一组 x,y 坐标和强度 (x,y,I)。这些 x,y 坐标不是统一的,也不会形成有序的二维数组。我想根据 x,y 坐标对强度进行 2D 中值滤波。不幸的是,我不能简单地使用medfilt2,因为它们不是有序的或均匀间隔的。
我尝试了什么:

  1. 制作每个 (x,y) 坐标的邻域图:

    for i=1:numel(x)
    
     neighbo{i}=find(sqrt( (x-x(i)).^2+(y-y(i)).^2)<150);
    
    end
    

这已经是一个问题,因为向量x是 1e7 长,而且要做到这一点确实需要很长时间。

接下来我会对每个邻居{i}进行排序并选择中心值,我可以想象它会花费同样长的时间。关于如何实现中值过滤或使上述更有效的任何建议?

标签: matlabfilteringvectorizationmedian

解决方案


推荐阅读