1

opencv (python) の blob について少し助けが必要です。

これは事です:

適切に機能する前処理関数を既に作成しました。これらの関数は、関心のある領域を分離し、しきい値処理された画像を返します。これらの領域は白で、残りは黒です。問題は、私が興味を持っているのは白い領域だけですが、何をしても、背景もブロブとして取得し続けます. オブジェクトの距離がわからないため、サイズでフィルタリングできません。

白いブロブだけを処理する方法はありますか?

これは私が今持っているものの要点です:

mask = cv.cvCreateImage(frame_size,8,1)
cvSet(mask,1)
.
.
.
blob_a_matches = CBlobResult(blob_a,mask,100, True)
blob_a_matches.filter_blobs(10, 1000)
for i in range(blob_a_matches.GetNumBlobs()):
    numbered_blob = blob_a_matches.GetBlob(i)
    area = numbered_blob.Area()
    .
    .
    .

背景もブロブとして扱われるという事実を除いて、これは機能します。

4

1 に答える 1

0

CvSet はクラスなので、2 行目が何をしているのかわかりません。また、Python のネイティブとして Blob はありません - これは cv.CvSet ですか、それとも返されている cv.CvSeq シーケンスですか?

または、しきい値処理後に輪郭を見つけていますか?次に、contours.py の例のようにそれらをトラバースしますか? これはより良いアプローチかもしれません...

于 2010-11-19T09:51:45.107 に答える