我使用OpenCV(Canny + findCountours)來查找對象的外部輪廓。繪製的曲線通常幾乎但不是完全封閉。我想關閉它 - 找到它所在的區域。在OpenCV中關閉輪廓曲線
我該怎麼做?
的事情考慮:
- 擴張 - 我坎尼後看到顯示這個例子,雖然它似乎對我來說更有意義findContours
- 凸包後,要做到這一點 - 可能會奏效,雖然我真的想完成一個曲線
- 形狀簡單化 - 有關,但不正是我想要
我使用OpenCV(Canny + findCountours)來查找對象的外部輪廓。繪製的曲線通常幾乎但不是完全封閉。我想關閉它 - 找到它所在的區域。在OpenCV中關閉輪廓曲線
我該怎麼做?
的事情考慮:
有點晚,但我不得不處理這個自己。如果在Canny邊緣檢測之前執行開啓操作(侵蝕之後擴張),則檢測到的邊緣應該更連續,從而獲得更好的輪廓。這種方法看起來相當健壯。我在another post中提到過這個問題,並在a recent question上發佈了代碼示例。
使用折線方法畫出輪廓
cv2.PolyLine(img, points, is_closed=True, 255, thickness=1, lineType=8, shift=0)
閱讀文檔瞭解更多細節:http://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html
馬克回答,如果它解決您的問題。如果沒有,然後讓我知道。
[approxPoly](http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#approxpolydp)在findContours()上提供此功能 – berak
只需複製輪廓列表的第一個元素結束? –
MartinBeckett,berak,我認爲這兩個評論都應該是答案, –