OpenCVのプロファイル関数findContoursを検索

プロトタイプ:

findContours( InputOutputArray image, OutputArrayOfArrays contours,  
                              OutputArray hierarchy, int mode,  
                              int method, Point offset=Point());  

パラメータ1:画像は、単一チャネル画像マトリクスは、グレースケール画像であってもよいが、より一般的には、典型的には、エッジ検出キャニー、ラプラス演算子、および他の処理バイナリイメージを通して、二値画像であり、
パラメータ2:輪郭「ベクター<ベクトル>輪郭」として定義され、ベクトル、ベクトルは二重であり、ベクトル点で連続する点で構成点の集合を記憶されたベクトルの集合の各要素は、点の各セットは、ポイントを設定されていますプロファイル。どのように多くのアウトライン、ベクトル等高線はその多くの要素があります。
パラメータ3:階層、「ベクター階層」と定義。
Vec4iの定義における最初のルック:Vecを<整数、4>のtypedef Vec4i; Vec4iがVecを<整数、4>別名で、ベクトルを定義し、 "各ベクトル要素内には4つのint型を含みます"。したがって、定義により、階層ベクトルは、アレイ内に保存されたベクトルの各要素は、4つの整数INTが含まれます。そしてベクターhiararchy輪郭内輪郭ベクトル要素内の要素は、一つ、ベクターの同じ容量のものです。[I] [0]〜--hierarchy 4つのINT変数のベクトルの各要素の階層内の階層[I] [3]、 それぞれ、輪郭のi番目の輪郭、フロントプロファイル、親プロファイルを表し、インラインインデックス番号プロファイル。対応するビットがプロファイル内の現在の輪郭、プロファイル、親または埋め込み輪郭形状は、階層に対応しない場合は[I] [0]〜階層は、[I] [3] -1のデフォルト値に設定されています。
パラメータ4:int型のモード、検索モードが定義された輪郭。

   取值一:CV_RETR_EXTERNAL只检测最外围轮廓,包含在外围轮廓内的内围轮廓被忽略
   取值二:CV_RETR_LIST   检测所有的轮廓,包括内围、外围轮廓,但是检测到的轮廓不建立等级关 系,彼此之间独立,没有等级关系,这就意味着这个检索模式下不存在父轮廓或内嵌轮廓, 所以hierarchy向量内所有元素的第3、第4个分量都会被置为-1,具体下文会讲到
   取值三:CV_RETR_CCOMP  检测所有的轮廓,但所有轮廓只建立两个等级关系,外围为顶层,若外围内的内围轮廓还包含了其他的轮廓信息,则内围内的所有轮廓均归属于顶层
   取值四:CV_RETR_TREE, 检测所有轮廓,所有轮廓建立一个等级树结构。外层轮廓包含内层轮廓,内 层轮廓还可以继续包含内嵌轮廓。

パラメータ5:int型の方法、定義された輪郭近似法:

取值一:CV_CHAIN_APPROX_NONE 保存物体边界上所有连续的轮廓点到contours向量内
取值二:CV_CHAIN_APPROX_SIMPLE 仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours向量内,拐点与拐点之间直线段上的信息点不予保留
取值三和四:CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近  似算法

パラメーター6:ポイントオフセットは、すべてが元の画像点に対応する輪郭情報に対してオフセット、プラスオフセット検出された輪郭点の各々に対応し、また負点であってもよいです!

おすすめ

転載: blog.csdn.net/zzh_AI/article/details/90697840