我有一个以下形式的2D Numpy数组(最多5000行):
[ 247.68512 182.67136]
[ 248.71936 182.67136]
[ 249.74336 182.67136]
[ 253.85984 269.1072 ]
[ 254.89408 269.1072 ]
[ 255.91808 269.1072 ]
[ 249.74336 182.67136]
[ 250.7776 182.67136]
[ 251.8016 182.67136]
...
其中列0对应于x,列1对应于y.
绘制时,数据应类似于blob形状.
如何将这些数据减少到只有blob周围的边缘或轮廓?
我已经看了一些skimage边缘检测功能,但我认为那里有一个纯粹的numpy解决方案.
有帮助吗?如果边缘检测是最好的工具吗?
谢谢
—编辑—-
数据也是未分类的,但我可以用我现有的一些代码对blob的orgin进行排序.不确定这是否有帮助.
—编辑2 —
偶然发现了this K.D.的美丽解决方案.
我认为这应该适合这个应用程序.会尝试这个.
最佳答案 它取决于blob的拓扑结构.如果斑点光滑并且内部没有空隙,则可以执行以下操作:
从远处接近blob.扫描blob位置.当你到达一个点 – 检查相邻的网格.如果你有足够高的点密度,则设置isOnBorder = true.现在,对于每个相邻点,检查它是否具有空的和填充的邻居.如果是 – 这是边界点 – 将其添加到列表中.重复此过程,直到获得完整边框.如果你有空洞,你必须在里面做网格并检查内部边界.