3

我有一个图像分析/形态学问题,我需要一个基于 python 的解决方案。我是一名天文学家,试图从我的图像中掩盖宇宙射线轨迹(从 1 到 100 像素长的条纹)。我使用带有阈值的过滤技术挑选出曲目。它工作得很好,除非轨道碰到一个物体(恒星或星系)。正如您在下面看到的那样,我的轨迹上出现了斑点(如左图中的那个)和环(如右图中的那个)。

明星旁边的条纹 穿越银河

在这些图像中,您可以忽略波浪线和“X”,黑框是我的蒙版像素。我想做的是将轨道(长条纹)与斑点和环分开(仅供参考,环出现是因为过滤提高了对象边缘的重要性)。所以我的问题是如何对面具某些部分的形态进行分类并将斑点/环与轨道分开。

如果这样可以更容易地回答问题,这里是左侧图像的掩码:

spots=array([[False,False,False,False,False,False,False,False,False,False,False],
   [False,False,False,False,False,False,False,False,False,False,False],
   [False,False,False,False,True ,False,False,False,False,False,True ],
   [False,False,True ,True ,True ,True ,False,False,False,True ,False],
   [False,False,True ,True ,True ,True ,False,False,True ,True ,False],
   [False,False,True ,True ,True ,True ,False,True ,True ,False,False],
   [False,False,False,True ,True ,True ,True ,True ,False,False,False],
   [False,False,False,False,False,True ,True ,True ,False,False,False],
   [False,False,False,False,False,True ,True ,False,False,False,False],
   [False,False,False,False,True ,True ,False,False,False,False,False],
   [False,False,False,False,True ,False,False,False,False,False,False],
   [False,False,False,True ,False,False,False,False,False,False,False]])

理想情况下,我希望掩盖轨道,并且当它们与对象完全相交时,如右图所示,我想掩盖整个轨道,穿过对象,而不掩盖对象中不受影响的部分由轨道。所以我希望最终的蒙面结果看起来像这里显示的白色轨道:

想要明星面具 想要银河面具

谢谢!-亚当

4

1 回答 1

0

如果我对问题的理解正确,您希望在移除围绕或穿过对象的长链的同时保留斑点。我建议的最简单的测试是使用一个简单的形态开口(腐蚀然后膨胀),其半径大于链的厚度但小于斑点的厚度。例子可以在这里看到。当然,可以在灰度中尝试开口,这将产生比仅在单个水平设置阈值上操作更好的结果。我想这可以很容易地在Scikit中找到。

于 2014-05-13T22:28:35.390 回答