2013-02-24 38 views
1

我有大量的二維線段列表。我想查找給定片段的最近線段,然後存儲在一個向量中。所以,我想爲每一條線段都做這件事,以便我知道任何線段的最近線段。我所有的線段都是矢量形式,即我知道兩個終點座標。所以在我的數據行號中,begin(x,y,z),end(x,y,z)在那裏。哪個數據結構可以處理二維線段

爲了獲得線段,我想檢查線段與另一線段的終點之間的距離(this)。

我認爲可能會有一些數據結構發生所有這些事情,並給出矢量線段數字的矢量或其他識別鄰近線段的方法。我知道kd-tree(k-nearest)可以做類似的事情。但這是針對點數據的。

我試圖找出opencv r-tree函數。但是因爲我沒有任何使用r-tree的經驗,所以我無法做到,現在我很困惑,因爲它講述了一個分類器並且有一個訓練階段。但對我而言,我覺得我不希望這樣的事情能夠跟隨。

如果有人知道任何函數或代碼或庫做這種類型的事情,請讓我知道。

+0

「巨​​大」有多大?你有什麼樣的系統來解決這個問題? [如果是移動電話或者每個系統有64GB和16個內核的1000臺機器,可能會有所幫助] – 2013-02-24 19:21:28

+0

@Mats Petersson:在我的數據中,近4萬條線段是我的智慧。它的1GB RAM和1.4GHz雙核心機器。 – niro 2013-02-24 20:51:13

+0

你是否有時間限制(例如需要每1/50秒做一次這樣的事情)? – 2013-02-24 21:18:27

回答

0

儘管OpenCV沒有線段的數據結構,但以下方法運行良好。

struct LineSegment{ 
    Point2f a,b; 
}; 
+0

@UlrichEckhardt,爲什麼?有沒有我忽略的C++約定?我複製並粘貼了我的C++程序。謝謝! – bbrame 2015-02-14 19:47:39

+0

謝謝@UlrichEckhardt。現在修復。 – bbrame 2015-02-16 17:59:47