2017-03-02 219 views
0

我有Canny檢測到的邊緣。 我想提取邊緣的輪廓。OpenCV從Canny邊緣到輪廓

我已查看以下內容。 OpenCV converting Canny edges to contours

但它沒有處理複雜的形狀。例如,用矩形圈或用圓圈圈。

cv :: findContours()函數有2個問題。 1.返回非閉合邊的封閉輪廓,但我想要非閉合輪廓 2.返回閉合邊的2個閉合輪廓(也許其中一個輪廓用於邊,另一個輪廓用於邊的內側,但是I希望兩個中的一個

有什麼辦法來解決這一點 感謝

PS:?我已經上傳的樣本圖像

Sample Image.

+0

圖像不顯示,以展示您所描述的問題。此外,你並沒有真正解釋「樣本圖像」顯示的內容。如果您希望得到答案,您需要更具體。 – m3h0w

回答

1

這一切都取決於參數。你在找輪廓時選擇,

在OpenCV中,你可以使用

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 

找到輪廓,並吸引他們

cv2.drawContours(im, contours, -1, (0, 255, 0), -1) #---set the last parameter to -1 

enter image description here

+0

我希望這能回答你的問題 –

+1

我認爲解決方案是使用'connectedComponents' – Miki