5

OpenCV の MSER 検出により、画像上のオブジェクトを見つけようとしています。ただし、関数cvExtractMSERは輪郭ではなく、CvSeq図形を作成する点のセット ( )を返します。

(1, 4), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4), ...

点の集合によって作成された領域

しかし、輪郭の点だけが必要です:

(1, 4), (8, 4), (8, 1), (4, 1)

必要な輪郭点をハイライト

この輪郭を見つけるにはどうすればよいですか?

最も簡単な(ただし最速ではない)方法は次のとおりです。

  • すべてのポイントで白黒画像を描画します(どのようにポイントごとに?)
  • findContours新しい画像の輪郭を見つけるために使用します
4

3 に答える 3

1

findContours() のオプションの 1 つは、直線の水平、垂直、または対角線上の端点を除くすべての点を削除するパラメーターを渡すことです。画像を作成し、リストしたポイントを描画すると、findContours() が残りの作業を実行できます。

CV_CHAIN_APPROX_SIMPLE は、水平、垂直、および斜めのセグメントを圧縮し、それらの終点のみを残します。たとえば、直立した長方形の輪郭は 4 つのポイントでエンコードされます。

http://opencv.itseez.com/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#findcontours

于 2012-04-29T22:57:10.977 に答える
0

私が正しく理解していれば、あなたは検出されたオブジェクトの角を探しています。

カウントのリストを反復処理し、単純な座標比較を行うことで4つのコーナーを検出するための単純なロジックを作成できます。

于 2012-04-24T21:01:57.330 に答える