連通域的繼承關系矩陣¶
概要¶
實例講解繼承關系矩陣所表示的含義.
keywords 關系矩陣 繼承 contours hierarchy
連通域的繼承關系矩陣hierarchy
¶
注意: 該contours樣例講解
是在
mode=cv2.RETR_TREE
與method=cv2.CHAIN_APPROX_SIMPLE
條件下獲取的.
hierarchy
返回的是一個矩陣. 1* N * 4
這里的每一個值代表都是contour的序號(id). -1 代表沒有這個元素
[[[-1 -1 1 -1] [-1 -1 2 0] [ 3 -1 -1 1] [ 4 2 -1 1] [-1 3 -1 1]]] ?
基礎元素由四個值組成.
[Next, Previous, First_Child, Parent]
-
Next
下一個同級的元素的序號. -
Previous
上一個同級元素的序號 -
First_Child
第一個子元素的序號 -
Parent
父元素的序號.
我們用cnt作為contour的簡寫.
cnt0
最外層外輪廓¶
[-1 -1 1 -1] Next =-1 # 最外面的外輪廓. 無同級元素, 所以Next與Previous 均為-1. Previous = -1 First_Child = 1 # 第一個孩子是cnt1 (也是唯一一個孩子), 所以First_Child 為1. Parent = -1 # 因為cnt-0 是老祖宗, 所以沒有爸爸, Parent 為-1
cnt1
最外層內輪廓¶
最外面的內輪廓.
它的孩子有三個, 兩個小星星, 跟一個矩形.
[-1 -1 2 0] Next =-1 # 沒有下一個同級元素 Previous = -1 # 沒有上一個同級元素 First_Child = 2 # 第一個孩子是2號輪廓 Parent = 0 # 父親是0號輪廓
cnt2
矩形嘴巴¶
[ 3 -1 -1 1] Next = 3 # 下一個同級元素 cnt3 小星星 Previous = -1 # 上一個同級元素 沒有 First_Child = -1 # 沒有孩子 Parent = 1 # 父親是cnt1
cnt3
小星星左眼¶
[ 4 2 -1 1] Next = 4 # 下一個同級元素 cnt4 小星星 Previous = 2 # 上一個同級元素 矩形嘴巴 First_Child = -1 # 沒有孩子 Parent = 1 # 父親是cnt1
cnt4
小星星右眼¶
[-1 3 -1 1] Next = -1 # 下一個同級元素 無 Previous = 3 # 上一個同級元素 左眼 First_Child = -1 # 沒有孩子 Parent = 1 # 父親是cnt1