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 に答える