OpenCV中的輪廓發現和輪廓繪製

2021-10-19 13:53:05 字數 1209 閱讀 7616

**實現:

import cv2

import numpy as np

#輪廓發現和輪廓繪製

#img是一張與binary類似的二值圖,contours是list列表結構每個元素包含乙個邊沿資訊,heriachy是乙個矩陣,用處作者也未知,可以**

contours,heriachy = cv2.

findcontours

(binary,cv2.

retr_tree

,cv2.

)#第三個引數是引索,是第幾個輪廓,賦值為-

1則為所有引索,否則需要配合for迴圈和enumerate函式使用

#最後乙個引數為繪製輪廓的畫素寬度,賦值為-

1則會自動填充輪廓內部

#drawcontours可以配合各種邊緣檢測運算元使用

cv2.

drawcontours

(img,contours,-1

,(255,

200,

200),2

)cv2.

imshow

('contour'

,img)

cv2.

waitkey

()

執行結果:

opencv之輪廓發現

opencv版本 3.4.7 編譯器版本 vs2019 在二值影象上發現輪廓 findcontoursapi void findcontours inputoutputarray image,輸入影象,非0影象看做1,0畫素保持不變,8bit outputarrayofarrays contours...

opencv尋找輪廓 繪製輪廓 輪廓層級原理

void findcontours inputoutputarray image,outputarrayofarrays contours,outputarray hierarchy,int mode,int method,point offset point 引數image inputarray型...

OpenCV判斷輪廓是內輪廓還是外輪廓

使用opencv的findcontours函式查詢輪廓,當引數為cv retr list時,查詢到的輪廓不建立等級關係,也就是當前模式下不存在父輪廓或內嵌輪廓的位置關係,所以當圖中存在環形輪廓內外巢狀時 如下圖所示數字輪廓8 如果要判斷輪廓位置關係,需要自行判斷。判斷方法是可通過遍歷輪廓點,計算每個...