2016-07-16 68 views
0

我的問題如下: 我有一個凸包看起來是這樣的: Raw convex hull簡化凸包

我想組顯著的接近點一起被某種形式的平均來表示例如,這可能是平均值或中值點。 averaged convex hull

我更關注如何進行分組。

如何以系統方式執行此分組?

我明白這似乎是一個非常簡單的問題,答案很明顯。我的主要問題是在試圖解決這個問題時,我最終會遇到一些問題,比如答案會根據我在船體上的位置而改變。例如,如果我從紅線開始,工作順時針我最終會(如果我沒有試圖抓住角落的情況下):

starting from hereenter image description here

我有這個,我每次許多嘗試重新思考我的想法,我最終得到了一個感覺很笨重的新角落案例。我有一種習慣,即尋找最不直觀的方式來解決問題,所以我認爲最好問一個社區。現在我遇到的問題的一個比較例子是我被要求在一個排序數組中找到一個元素,並且我最初執行線性搜索,並且我有一種直覺,那裏有更好的東西。

我無法準確找到我想要的研究成果。我發現了船體簡化算法,但它太多地改變了船體的形狀,這不適合我的程序的目標。

我會在最後添加一個註釋,我使用OpenCV和C++在我正在開發的項目上生成凸包。以防萬一這是一個值得一看的細節(以及爲什麼我將OpenCV作爲標籤添加)。

回答

1

考慮使用Douglas–Peucker algorithm

它的目的是簡化折線,扔掉不太重要的點。

感謝Berriel加法:它在OpenCV中被實施:approxPolyDP

enter image description here

+2

,它是在已經OpenCV的實現:['approxPolyDP()'](http://docs.opencv.org/ 2.4 /模塊/ imgproc/DOC/structural_analysis_and_shape_descriptors.html#approxpolydp) – Berriel