2017-03-20 106 views
0

我有半圓或橢圓形物體的邊界。示例圖像爲enter image description hereenter image description here檢測曲線邊界上的點

邊界可以稍微鋸齒(放大時)。我期待檢測感興趣在這些曲線上,我們看到的形狀一定的變化(位置x和y)的點,如

enter image description hereenter image description here

可以有兩個輸出:

  1. 沒有一點興趣:我們無法找到特定功能
  2. 的x和y位置的興趣點

目前,我正在使用Python和OpenCV。我想不出一種有效的方法來解決這個問題。任何幫助將非常感激。

+0

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈指南。[關於主題](http://stackoverflow.com/help/on-topic)和[如何問](http ://stackoverflow.com/help/how-to-ask)在這裏適用 StackOverflow不是一個設計,編碼或教程服務。 – Prune

回答

1

沒有說其他人會與我的封票同意,所以......

我建議兩個步驟:

  1. 適合橢圓給定的點。我相信你現在已經找到了曲線擬合算法(也許還有軟件包) - 並要求那些在Stack Overflow中被明確禁止。
  2. 編寫一個小型異常檢測器,它可以處理擬合曲線和實際數據點之間的差異。

第2步很大程度上取決於您對「興趣點」的定義。什麼是標準?我注意到你的第二個興趣點實際上非常接近擬合曲線;這是在任何一方向內偏離的區域。

我建議你在極座標中做你的擬合,然後根據θ和半徑來考慮結果。考慮將兩條曲線「拼合」爲一個單位,以使中心角(theta)爲新的x座標,而與中心的距離爲新的y座標。

現在,減去兩條曲線並繪製差異(或將這條新曲線存儲爲一個點數組)。在這些差異中尋找適當的異常。這是你必須決定你需要的地方。也許在「r」值(半徑,距中心的距離)方面有足夠的偏差;或許梯度發生了變化(找到一個峯值/谷值,但不是一個平緩傾斜的凸出)你想要絕對差值還是積分值偏差(擬合與異常之間的區域),你想要它是線性的還是平方的......或者其他功能嗎?異常寬度是否符合你的標準?

這就是你需要決定的。讓你感動?