2012-11-07 35 views
6

在上面的圖像中有一些幾何圖案。型號a距離已知。點嚴格不在模型距離內。幾何圖案質量和填充

我想:

  • 計算每個點的質量(點之間的實際距離並不a)好點適合於模式更優質的係數應該有(我試圖採取距離和45度角)
  • 排除錯誤的點(我用紅色標記) - 它與圖案質量計算

我試過到目前爲止:

  1. 以每個點與它們之間的相互
  2. 計算距離和角度
  3. 只取分的鄰居當前點(這距離之間a - deltaa + delta
  4. 質量是realDistance/modelDistance * realAngle/modelAngle

失敗的原因:

  • 好點的質量是緊密聯繫在一起壞點附近
  • 如果壞點只有一個鄰居的距離和角度是確定它的質量是確定的下降。

所以,問題是:什麼是計算在這種情況下,點質量,填充圖案最好的算法。模式應該通過考慮鄰居位置的元素平均位置來填充。最好的答案將是僞代碼或代碼或引用某些已知的算法,在這種情況下可能會有所幫助。

問題與我以前的問題Filling rectangle with points pattern有點相關,但填寫不能用錯誤的質量點完成。

回答

1

如果從左到右或從上到下(即相鄰點之間的平均距離a已知足夠準確),點的誤差/失真不會變大,則可以嘗試以下操作:

  • 使每個點P 成方形[0,a[ x [0,a[通過取x的其餘部分,並通過一個(產生Q )除以時y座標。因此,優點將或多或少地映射到一個點上。
  • 在這些生成的點Q i選擇一個點與最近的鄰居(例如,總計1/distance所有到其他點的距離Q j,j ≠ i,並選擇最大總和)。
  • 現在你可以P 通過在距離Q looing我到R.分好壞區分(點P ,其對應的Q 接近R將是好點。)

如果點R(與最近的鄰居)的座標接近0或一個(即R是接近正方形[0,a[ x [0,a[的邊界),你最好從頭開始,並添加a/2到相應的座標(的每個P i)befo重新計算餘數,以便將點R更多地移到正方形的中心。 (或者你可以設法計算離開方塊[0,a[ x [0,a[一側的不同可能性的最小距離,並在另一側回到它的最小距離。)

+0

但是這個解決方案依賴於一些基礎選擇。也許我所附的圖片太具體了。如果第一點不好,該怎麼辦? – krzych

+0

你的意思是什麼「基礎選擇」?在這種方法中,所有的觀點都是平等對待的,沒有什麼像「第一點」。所有的點被映射到正方形[0,a [x [0,a [。在這個廣場上靠近的人是「好」的人。問題只會在好點之間的平均距離「a」不完全知道的情況下出現。 – coproc

+0

你能否澄清你的答案的最後一段(來自「如果點R ...」)。填充模式的第二部分是什麼? – krzych

1

好點似乎沿網格對齊。網格線可以使用RANSAC使用線擬合算法找到。 RANSAC線擬合是一種概率算法。你將不得不重複它直到你找到一條几乎是水平或垂直的線。將這條線上/附近的點取出並進入下一個網格線。根據您的問題特徵,如果剩餘的點數太少或在一條線附近點數太少,您將停止尋找新的網格線。其餘的點是不好的。當您找到找到的網格線的交點並且在交點附近沒有點(來自所有原點的點)時,您可以在這裏填入一個點。