opencv裏findcontours函數中hierarchy的意義

這兩天用到opencv裏findcontour函數中RETR_TREE模式,對該函數找到的輪廓順序不是很懂,就自己試了一下。

在該模式下查找到的輪廓是以一個樹狀結構存儲的,輪廓的排序是由外側開始查找(圖像的邊界爲第0號輪廓),當一個輪廓既有內嵌輪廓,又有同級輪廓時,內嵌輪廓的優先級更高(即內嵌輪廓的contours序號更小),如下圖所示排序。


hierarchy[i]對應於contours[i],hierarchy[i][0]~hierarchy[i][3] 中,0代表平級輪廓的後一個,1代表平級的前一個,2代表子級,3代表父級,沒有的話則值爲-1,上圖輪廓可用下圖結構表示:


以1號輪廓爲例,hierarchy[1][0]代表4號輪廓,同理4號輪廓的hierarchy[4][1]代表1號輪廓,hierarchy[1][2]代表2號輪廓,hierarchy[1][3]代表0號輪廓。

暫時就瞭解了這麼多~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章