b我有一個帶形狀的二進制二維矩陣(340,490)并應用cv2.findContours(b,1,2)到它上面。結果是一個 3D 數組,形狀(6, 2, 1)像[[90,3],[5,60],[90, 110],[5,135],[3,200],[3,3]]. 我看不懂。我申請了cv2.drawContours(b,contours, -1, (0,0,255), 3)它工作完美。因為我在原來的 b 上有一堆噪音。我不知道為什么它只能由 12 個數字修復。這些數字代表什么?
1 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
cv2.drawContours()
函數返回 2 個值:
“Contours”中的第一個,第二個是“Hierarchy”。
輪廓包含圖像中檢測到的每個輪廓的邊界點坐標。
要查找輪廓數,請使用:
len(Contours)
這將給出圖像中找到的輪廓數。
現在“Contours”中的每個元素都是以下類型:
Contours[i] = [[[x1, y1]], [[x2, y2]], [[x3, y3]], [[x4, y4]], [[x5, y5]], ... [[xn, yn]]]
其中 x 和 y 是圖像中該輪廓邊界點的坐標,n 是該輪廓邊界點的總數。
要了解返回值“層次結構”,請參閱此鏈接。
添加回答
舉報
0/150
提交
取消