我有一大組數據點(所有的2D代表一個形狀的邊緣),其中存在很多,所有的直線排成一系列的許多點(像素),我想通過刪除點來優化數據組成直線(相同的矢量),只留下系列的最後兩個端點來定義直線並忽略其間的所有點(抽取)。是否有.NET庫或示例代碼可用於優化線上的點或抽取?
嚴格在網格的X軸和Y軸上的線條系列呈現出一種複雜程度。第二級是對角線,當應用於網格(即像素)時,可能需要通過內插圖案來確定一些線。 (即1上升3,超過1上升,1上升5等等代表一條直線)
我想利用任何現有的庫或示例代碼片斷可能已經存在,而不是重新發明輪子完全從頭開始。
任何指針,提示,代碼建議,算法,部分解決方案等將不勝感激。
這將是一個.NET項目,但我也很熟悉其他語言(ruby,perl,python),所以如果這樣的例子存在於類似的語言中,那對我來說會很有用。
感謝
- 添加鏈接到樣本數據集: http://pastie.org/1015421
- 添加 樣本圖像來顯示 優化/抽取
alt text http://www.streamline-ss.com/tmp/point_optimization.png
的目標更新:
- 我們能夠改變所述輸入數據集進行優化是一個無單位的網格/像素的基於位置數據從原始來源,而不是內插單元基於位置設置(以避免所計算的方差格)
- 這個輸入數據集的例子(未優化)是這裏http://pastie.org/1017486
- 到目前爲止,我已經能夠編寫一個程序,將刪除重複,並刪除具有相同的X或任何相同點y作爲前一點
- 需要找到一種方法來識別重複發生的模式並消除所有e開始和結束模式的結束點 - 用於直線抽取。
- 我還沒有找到一個庫,類或代碼段在那裏,其中有人已經做到了這一點,但在我看來,這不是一個新的挑戰,有人肯定已經發明瞭這個輪
這些要點有多準確?你有沒有關於它們的額外信息(比如一個命令,例如,如果它們是用鼠標繪製的,你可以按照它們的順序列出它們)? – Artelius 2010-06-23 03:05:41
這是一個以製表符分隔格式設置的示例數據http://pastie.org/1015400 – Streamline 2010-06-23 03:40:06
數據表示已從圖像文件「像素化」的形狀的邊緣 – Streamline 2010-06-23 04:01:35