int cvFindContours( CvArr* image, // CvMemStorage* storage, // CvSeq** first_contour, // int header_size=sizeof( CvContour ), // int mode=CV_RETR_LIST, // int method=CV_CHAIN_APPROX_SIMPLE, // CvPoint offset=cvPoint( 0, 0 ) // );FindContours - OpenCV 1.0 リファレンス - opencv.jp
得られた輪郭は、cvDrawContours()関数で確認できます。
どのような輪郭を、どのようなデータ構造で格納するかを指定します。
定数 | 説明 |
---|---|
CV_RETR_EXTERNAL | 最も外側の輪郭のみ抽出する。 |
CV_RETR_LIST | すべての輪郭を抽出し、リストに追加する。 |
CV_RETR_CCOMP | すべての輪郭を抽出し、二つのレベルを持つ階層構造を構成する。1番目のレベルは連結成分の外側の境界線、2番目のレベルは穴 (連結成分の内側に存在する) の境界線。 |
CV_RETR_TREE | すべての輪郭を抽出し、枝分かれした輪郭を完全に表現する階層構造を構成する。 |
定数 | 説明 |
---|---|
CV_CHAIN_CODE | 出力はフリーマン チェーンコード (Freeman chaincode) で表現される。他の手法ではポリゴン (頂点のシーケンス) で表現する。 |
CV_CHAIN_APPROX_NONE | すべての点をチェーンコードから点に変換する。 |
CV_CHAIN_APPROX_SIMPLE | 水平・垂直・斜めの線分を圧縮する。すなわち、この関数はそれぞれの端点のみを残す。 |
CV_CHAIN_APPROX_TC89_L1 | Teh-Chinチェーンの近似アルゴリズム中の一つを適用する。 |
CV_CHAIN_APPROX_TC89_KCOS | |
CV_LINK_RUNS |
値1の水平セグメントの接続に基づく、異なる輪郭を抽出する全く異なるアルゴリズムを適用する。 ※抽出モードがCV_RETR_LISTの場合のみ指定可能 |
元画像 |
検出結果 |