3

画像内のオブジェクトを検出するのに大きな問題があります。このトピックはすでに多くのフォーラムで大いに議論されていることは知っていますが、過去 4 日間答えを探していましたが、できませんでした。

実際、ブランチからの写真があります ( http://cl.ly/image/343Y193b2m1c )。私の目標は、この写真のすべての針を数えることです. したがって、いくつかの問題に直面する必要があります。

背景から針で枝を分離します (この場合は問題ありません)。

針の境界を選択します。これは大きな問題です。すべての edge() 関数を含むさまざまな方法を試しましたが、問題は常に同じです-針の周りの境界が閉じられておらず、最後の問題につながります:

針が重なっている!これは、imfill() または等式を使用すると、針の代わりに埋められる「針の間の四角形」につながります。そして、針が集中している場所(1 か所に多くの針が集まっている場所)を区別することはほとんど不可能です。

私は流域を試し、コントラストを高めようとしました。色の小さな変化がすべて境界として認識されないように、針を少し「シャープに」するために、画像を少しフィルタリングして滑らかにすることも試みました(これは別の問題です)。

私はmatlabに比較的慣れていないので、何を探すべきかわかりません。Nuclei検出に使用されるMatLabチュートリアルに従おうとしましたが、これですべての緑色のオブジェクトを取得できます(一度にすべての針)。

この質問が以前に出てこなかったことを願っています。もしそうなら、二重投稿について深くお詫び申し上げます。何をすべきか、またはどのような方法を使用するかを誰かが知っていれば、それは素晴らしいことであり、この本当に悪い週の始まりを安全にするでしょう.

事前にどうもありがとうございました、

フィリップ

4

2 に答える 2

1

重なっているオブジェクトを区別することは非常に困難です。特に、区別する必要があるオブジェクトの数がわからない場合はなおさらです。あなたの脳は、符号化が難しい多くの情報を統合できるため、私が知っているどのセグメンテーション アルゴリズムよりも、重なっているオブジェクトを区別するのに優れています。したがって、自分でいくつかの機能を区別できない場合は、コードで行うことを忘れてください。

そうは言っても、針のおおよその数を取得できる方法があるかもしれません: 画像ピクセルを「針」と「針ではない」の 2 つのクラスに分割でき、写真が針で覆われている場合 (写真を撮るときに定規を含めると役立つ場合があります)、「針」ピクセルの数を 1 本の針で覆われたピクセル数で割り、針の総数を推定できます。画像で。これにより、オーバーラップのために針の数が多少過小評価され、針が密集するほど (オーバーラップが増えるため) 過小評価されますが、針の多い枝と針の少ない枝を自動的に比較できるはずです。時間の変化を特定することが目標の 1 つである場合。

于 2013-01-28T18:25:40.363 に答える
0

私は@Jonasに同意します=あなたは1つの大きな問題を抱えています。

いくつか提案させてください。

まず、@Jonas の方向に沿って、正確なカウントを取得する代わりに、大まかな見積もりを取得する別の方法は、針の先端をカウントすることです。明らかに、すべてのヒントがはっきりと見えるわけではありません。しかし、枝の明確なマスクを取得できれば、あなたが言及した形態学的操作のいくつかを使用して針の先端を特定するのは比較的簡単かもしれません.

第二に、より多くの情報を得る方法はありますか? たとえば、深度情報があれば、針を互いに区別するのに少し役立つかもしれません (タスクを完全に解決するわけではありませんが、役立つ場合があります)。ステレオから深度情報を得ることができます。つまり、カメラを少し動かしながら枝の写真を 2 枚撮ります。Kinect デバイス (またはその他の距離カメラ) を自由に使用できる場合は、深度マップを直接取得できます...

于 2013-01-28T18:59:20.247 に答える