opencv python 輪廓的層次結構

2021-09-13 12:16:24 字數 1999 閱讀 8735

contours hierarchy

通常我們使用cv.findcontours()函式來檢測影象中的物件,有時物件位於不同的位置. 但在某些情況下,某些形狀在其他形狀內. 就像巢狀的數字一樣. 在這種情況下,我們將外部乙個稱為父項,將內部項稱為子項.這種關係的表示稱為層次結構.

在這張中,從0-5編號, 2和2a表示最外側盒子的外部和內部輪廓.

輪廓-0,1,2是外部或最外部的. 我們可以說,它們在層次結構-0中,或者只是它們處於相同的層次結構級別.

輪廓-2a可以被認為是輪廓-2的子節點(或者相反,輪廓-2是輪廓-2a的父節點),所以讓它在層次結構-1中.

類似地,輪廓-3是輪廓-2的子節點,它進入下一層次。

最後,輪廓-4,5是輪廓-3a的子節點,它們位於最後的層次結構級別。

每個輪廓都有自己的資訊,關於它是什麼層次結構,誰是它的子,誰是它的父等.opencv將它表示為四個值的陣列:[next,previous,first_child,parent]

連線章節

只是檢索所有輪廓,但不建立任何父子關係, 根據這條規則,父母和孩子是平等的,他們只是輪廓, 即它們都屬於同一層次結構.

>>> hierarchy

array([[[ 1, -1, -1, -1],

[ 2, 0, -1, -1],

[ 3, 1, -1, -1],

[ 4, 2, -1, -1],

[ 5, 3, -1, -1],

[ 6, 4, -1, -1],

[ 7, 5, -1, -1],

[-1, 6, -1, -1]]])

如果使用此標誌,則僅返回最外的輪廓。 所有子輪廓都被遺忘. 我們可以說,根據這項規則,只有每個家庭中最年長的人才能得到照顧, 它並不關心其他家庭成員.

>>> hierarchy

array([[[ 1, -1, -1, -1],

[ 2, 0, -1, -1],

[-1, 1, -1, -1]]])

此標誌檢索所有輪廓並將它們排列為2級層次結構。 即物件的外部輪廓(即其邊界)放置在層次結構-1中. 物件內部的孔的輪廓(如果有的話)放在層次結構-2中.

用1或2標記了輪廓的順序和它們所屬的層次結構

它檢索所有輪廓並建立完整的族層次結構列表。 它甚至告訴,誰是爺爺,父親,兒子,孫子

opencv python 輪廓屬性

它是物件的邊界矩形的寬度與高度的比。a sp ectr atio wid thhe ight aspect ratio frac aspect rati o he ight widt h x,y,w,h cv.boundingrect cnt aspect ratio float w h 它是輪廓區...

OpenCV Python 輪廓屬性 二十三

在這裡,我們將學習提取一些常用的物體屬性,如堅實度,等效直徑,掩模影象,平均強度等。更多的功能可以在matlab regionprops文件中找到。注 質心 面積 周長等也屬於這一類,但我們在上一章已經見過 它是物件邊界矩形的寬度與高度的比值。aspect ratio frac x,y,w,h cv...

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

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