0

Open-CV を使用して、以下のような画像内のオブジェクトの数をカウントするプログラムを作成する予定です。

サンプル画像

私が採用しようとしている方法は、ヒストグラムを使用して画像のしきい値を設定し、ブロブ検出を使用して識別されたブロブの数をカウントすることです。ペレットのようなオブジェクトが互いに接触しない限り、これは問題なく機能します。(オーバーラップは範囲外ですが) 私は Watershed セグメンテーションを使用して、互いに接触しているオブジェクトを識別する可能性を調べました。

私がはっきりしていないのは、ペレットが重なっている場合とない場合がある画像にこれら2つの手法を適用する方法です。画像内でペレットが互いに接触しているインスタンスが少なくとも 1 つある場合、両方のテクニックを実行する必要がありますか? もしそうなら、どのような順序で?それとも、どこかでオーバーラップが発生し、Blob 検出を実行すると、結合された Blob のために誤った出力が発生するため、Watershed のみを実行する必要がありますか? 前もって感謝します。

4

1 に答える 1

2

「画像にオーバーラップのインスタンスが少なくとも1つある場合」と言いますが、「オーバーラップは範囲外です」とも言います。

ウォーターシェッドアルゴリズムが重複するペレットを含む画像を処理する場合、ブロブ検出はおそらく利点を提供しません(重複するオブジェクトをマージするため)。

本当にアプローチを組み合わせたい場合は、両方を独自のパイプラインで実行し、確率モデルを使用して2つを組み合わせることができます。ただし、単純なものから始めて、最初にどのような結果が得られるかを確認することをお勧めします。

Watershedを使用してセルセグメンテーションを実行するMatlabを使用した例を次に示します。

http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

部分的にしか表示されていないオブジェクトをカウントしないようにする必要がある場合は、ボロノイ図を使用して、エッジに接続しているオブジェクトを削除できます。

http://pythonvision.org/basic-tutorial

于 2012-05-11T06:23:19.347 に答える