画像解析/形態学に関する質問があり、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]])
理想的には、トラックをマスクしたいと思います。右の画像のように、トラックがオブジェクトと完全に交差する場合は、影響を受けていないオブジェクトの部分をマスクせずに、オブジェクトを介してトラック全体をマスクしたいと考えています。トラックによって。したがって、マスクされた最終的な結果は、ここに示す白いトラックのようになります。
ありがとう!-アダム