簡體   English   中英

通過點位置或圖像進行角點檢測

[英]Corner detection by points location or image

我有一些簡單的形狀,這些形狀不一定是規則的。 在此處輸入圖片說明

我需要一種算法來找到它們的角,實際上我想將它們的點數最小化,以dxf格式保存它們,並且將它們的點位置放置在數組中。 諸如harris或surf之類的簡單算法找不到合適的點,結果返回的點太多。 您能通過算法,思想或代碼來幫助我解決此問題嗎? (在c,c#,java等中)或圖像處理,謝謝。

您想要實現的目標稱為多邊形矢量化

首先,您需要應用輪廓跟隨算法來按順序獲取像素。 在這種情況下,似乎簡單地將像素鏈接到它們的鄰居就可以了(請注意,在您的示例中,某些形狀是開放的,您可能必須將鄰域擴展為兩個或三個像素。

然后通過Douglas-Peucker算法( https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm )或類似算法來檢測長直邊。

您的某些角落比較鈍,您可能需要將它們糾正。 我建議丟棄形成平角的短段序列,並加入長的相鄰段以恢復方形角。

在此處輸入圖片說明

在此處輸入圖片說明

不要期望“完美”的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM