簡體   English   中英

將3D點雲分成較小的方向邊界框

[英]Split up a 3D point cloud into smaller oriented bounding boxes

我正在使用C#WPF。

我有一段時間我正在尋找一種算法來解決我的問題。 可能它不是那么瑣碎,而是進入3D圖形。

我在3D空間中有一個2D表面(也可以用點雲表示)。

我需要將這個表面分成較小的位,這應該適合特定的盒子(例如300 x 300 x 15)。

我正在尋找一種在3d中工作的算法,它不是軸對齊的,類似於最小的體積邊界框,但是如果盒子大於特定的體積,它會將體積分成更小的盒子。

我懷疑OBB的優化問題和很多迭代,但我不知道如何解決這個問題。

圖片說明了一點問題。 紅色和黑色框不是強制軸對齊的,它們應該<或=最大框大小(大小而不是體積!)。

圖片

謝謝大家的支持!

對於使用磁盤覆蓋形狀的情況,已知您的問題是NP難的:請參閱fe https://en.wikipedia.org/wiki/Geometric_set_cover_problem 我強烈懷疑你的封面問題的情況並不好。 因此,您必須求助於在線性或多項式時間內完成工作的近似精確算法。 根據您在解決方案中可以犧牲的條件,您可以使用已知解決方案完成不同的任務。 所以,如果你解釋一下你是如何完成這項任務的,那么你想要解決的真正任務是什么呢?那么我們可以討論哪些近似解決方案對你的案例來說足夠好。

例如,如果您對具有次優大小和方向(但足夠好)的定向框覆蓋您的點集的次優(但足夠好),那么您可以使用一些涉及生成epsilon-net的快速算法(參見fe https://en.wikipedia.org/wiki/%CE%95-net_(computational_geometry)https://en.wikipedia.org/wiki/Delone_set )和/或貪婪地將點集細分為子集為每個子集貪婪地近似一個足夠好的定向邊界框。

另外,我在實踐中沒有自己使用它,但如果我不得不考慮你的任務的近似解決方案知道你對解決方案的限制,我會想到https://arxiv.org/abs/1409.7425這是假設的作為一種框架方法,用於生成與您的任務類似的一系列任務的近似解決方案。 看一下,你可能會看到一些對你有用的東西,或者你可能會看到google准備使用解決方案的有用詞匯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM