CvSeq** firstContour, int cntHeaderSize,
int mode, int method, CvPoint offset )
作用:檢索二值圖像中所有的邊界輪廓,並返回檢測到的輪廓個數。
參數解釋:
img :8比特單通道的源二值圖像。非零像素作爲1處理,0像素保存不變;
storage :返回輪廓的容器;
first_contour : 輸出參數,用於存儲指向第一個外接輪廓;
header_size : header序列的尺寸.一般情況是 header_size >= sizeof(CvContour);
mode:(默認1)
CV_RETR_EXTERNAL:只檢索最外面的輪廓;
CV_RETR_LIST:檢索所有的輪廓,並將其放入list中;
CV_RETR_CCOMP:檢索所有的輪廓,並將他們組織爲兩層:頂層是各部分的外部邊界,第二層是空洞的邊界;
CV_RETR_TREE:檢索所有的輪廓,並重構嵌套輪廓的整個層次。
method :邊緣近似方法
CV_CHAIN_CODE:以Freeman鏈碼的方式輸出輪廓,所有其他方法輸出多邊形(頂點的序列)。
CV_CHAIN_APPROX_NONE:將所有的連碼點,轉換成點。
CV_CHAIN_APPROX_SIMPLE:壓縮水平的、垂直的和斜的部分,也就是,函數只保留他們的終點部分。
CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS:使用the flavors of Teh-Chin chain近似算法的一種。
CV_LINK_RUNS:通過連接水平段的1,使用完全不同的邊緣提取算法。使用CV_RETR_LIST檢索模式能使用此方法。
offset : 偏移量,用於移動所有輪廓點。
2 cvBoundingRect( CvArr* points, int update=0 )
作用:返回二維點集的最外面 (up-right)矩形邊界
參數解釋
points 二維點集,點的序列或向量 (CvMat)
update 更新標識。
update=0, contour ~ CvContour*: 不計算矩形邊界,但直接由輪廓頭的 rect 域得到。
update=1, contour ~ CvContour*: 計算矩形邊界,而且將結果寫入到輪廓頭的 rect 域中 header。
update=0, contour ~ CvSeq* or CvMat*: 計算並返回邊界矩形。
update=1, contour ~ CvSeq* or CvMat*: 產生運行錯誤 (runtime error is raised)。
備註:在做運動目標檢測時,到後面進行跟蹤環節,採用cvFindContours( pBkImg, storage, &contour, sizeof(CvContour),mode, CV_CHAIN_APPROX_SIMPLE)和cvBoundingRect(contour, 0),提取運動物體的座標。