opencv contours輪廓提取

2021-10-01 10:16:21 字數 1303 閱讀 9618

1、cv::findcontours(cv::inputoutputarray image,cv::outputarrayofarray contours, cv::outputarray hierarchy, int method, cv::point offset = cv::point())

主要用於找到輪廓

eg: vector>contours;

vectorhireachy;

第乙個引數:輸入影象,通常是預處理後的二值影象

第二個引數:是乙個雙重向量,乙個輪廓就是contours裡的乙個元素,有多少個輪廓就有多少個元素,乙個輪廓裡的點集是乙個元  素里的數值

第三個引數:hireachy裡面的引數分別表示當前輪廓的後乙個輪廓、前乙個輪廓、父輪廓、內輪廓

第四個引數:輪廓的檢索方式(常用):

cv_retr_external:只檢測外輪廓

cv_retr_list:檢測所有輪廓,包括內輪廓和外輪廓

cv_retr_ccomp:檢測所有輪廓

cv_retr_tree:檢測所有輪廓(常用)

第五個引數:儲存輪廓引數方法(常用):

第六個引數:輪廓影象偏移量

point():不偏移

2、double cv::contourarea(cv::inputarray contour,bool oriented=false)

主要用於計算輪廓面積

第乙個引數:輸入輪廓點

第二個引數:預設值false,可不寫

3、void cv::drawcontours(cv::inputoutputarray image, cv::inputarrayofarrays contours, int contouridx, const scalar& color, int thickness=1, int linetype=8,cv:: inputarray hierarchy=noarray(), int maxlevel=int_max, point offset=point() )

主要用於畫出輪廓

eg: drawcontours(result, contours, -1, scalar(0, 0, 255), 2, 8, mat(), 0, point());

第乙個引數:目標影象

第二個引數:contours

第三個引數:要畫第幾個輪廓,如果是負值,則畫全部輪廓

第四個引數:畫輪廓的顏色

第五個引數:輪廓的線寬一般為1

第六個引數:線的連通性一般為8

第七個引數:只繪製部分輪廓有用一般為hireachy

第八個引數:一般為0

第八個引數:偏移量

OpenCV contours學習筆記(三)

下面進行第三節的學習,首先上實驗的原圖 邊緣影象 contoursimage mat resultimage srcimage.rows,srcimage.cols,cv 8uc3,scalar 0 for int i 0 i contours.size i imshow 最小包圍圓 resulti...

Opencv contours找出最大輪廓

在處理二值影象時,常用 cv2.findcontours 查詢輪廓,如下所示 find all cohntoursbinary 代表二值影象 之後可以用lambda 表示式對 contours 排序,如下所示 contours.sort key lambda c cv2.contourarea c ...

長輪循,短輪循

b s模型中 長輪循,阻塞在伺服器端,一有訊息就將訊息 推 給客戶端,客戶端收到返回訊息之後,馬上又發出第二次請求,如此迴圈 短輪循,客戶端用ajax之類,過一段時間往伺服器端發乙個請求,不管有沒有訊息都立刻返回。長輪循 適合即時聊天,比如webim,發糖果的聊天工具,暢遊網的結合遊戲與web的聊天...