貪婪投影三角化演算法對有向點雲進行三角化

2021-07-09 06:44:21 字數 2423 閱讀 4024

貪婪投影法:先將有向點雲投影到某一區域性座標平面內,再在座標平面內進行平面內的三角化,根據平面內三位點的拓撲關係獲得乙個三角網格曲面模型。

#include 

#include

#include

#include

#include

#include

#include

#include

#include

void main()

pcl:

:pointcloud::pointnormal>::ptr cloud_with_normals(new pcl:

:pointcloud::pointnormal>) ;

pcl:

:normalestimation::pointxyz , pcl:

:normal> n ;//法線估計物件

pcl:

:pointcloud::normal>::ptr normals(new pcl:

:pointcloud::normal>) ;//儲存估計的法線

pcl:

:search

::kdtree

:pointxyz>

::ptr tree(new pcl:

:search

::kdtree

:pointxyz>) ;

tree->setinputcloud(cloud) ;

n.setinputcloud(cloud) ;

n.setsearchmethod(tree) ;

n.setksearch(20) ;

n.compute(*normals) ;

pcl:

:concatenatefields(*cloud , *normals , *cloud_with_normals) ;

pcl:

:search

::kdtree

:pointnormal>

::ptr tree2(new pcl:

:search

::kdtree

:pointnormal>) ;

tree2->setinputcloud(cloud_with_normals) ;

pcl:

:greedyprojectiontriangulation::pointnormal> gp3 ;

pcl:

:polygonmesh mesh ; //儲存最終三角化的網格模型

gp3.setsearchradius(0.025) ;

gp3.setmu(2.5) ;//設定樣本點到最近鄰域距離乘積的係數

gp3.setmaximumnearestneighbors(100) ;//設定樣本點搜尋的鄰域個數為100

gp3.setmaximumsu***ceangle(m_pi/4) ;//設定某點法線方向偏離樣本點法線方向的最大角度為45度

gp3.setminimumangle(m_pi/180) ;//設定三角化後得到的三角形內角最小角度為10度

gp3.setmaximumangle(2*m_pi/3) ;

gp3.setnormalconsistency(false) ;//設定該引數保證法線朝向一致

gp3.setinputcloud(cloud_with_normals) ;//設定輸入點雲為有向點雲

gp3.setsearchmethod(tree2) ;//設定搜素方式為tree2

gp3.reconstruct(mesh) ;//重建提取三角化

std:

:vector parts = gp3.getpartids() ;

std:

:vector status = gp3.getpointstates() ;

fstream fs ;

fs.open("partsid.txt" , ios:

:out);

if (!fs)

fs<<"點雲數量為:"

<"\n" ;

for (int i = 0 ; i < parts.size() ; i++)

}boost:

:shared_ptr:

:visualization

::pclvisualizer> viewer(new pcl:

:visualization

::pclvisualizer("3d viewer")) ;

viewer->setbackgroundcolor(0 , 0 , 0) ;

viewer->addpolygonmesh(mesh , "my") ;

viewer->initcameraparameters() ;

while (!viewer->wasstopped())

return ;

}

酉三角化和實正交三角化

介紹乙個非常有用的定理 任何復方陣 a 與以 a 的特徵值作為對角元素的乙個三角矩陣酉相似,以及總可以通過實正交相似將矩陣化為乙個實的擬三角型並作了相應的推廣.證明 設 u 1 x quad u 2 quad cdots quad u n 是任意乙個第一列為 x 的酉矩陣,比方說利用 qr 分解 中...

Delaunay三角化演算法

1 首先了解一下什麼是delaunay三角網 delaunay三角剖分是前蘇聯數學家 delaunay在 1934年提出的 對於任意給定的平面點集 只存在著唯一的一種三角剖分方法 滿足所謂的 最大 最小角 優化準則 即所有最小內角之和最大 這就是 delaunay三角剖分。這種剖分方法遵循 最小角最...

PCL 無序點雲快速三角化

使用貪婪投影三角化演算法對有向點雲進行三角化,具體方法是先將有向點雲投影到某一區域性二維座標平面內,再在座標平面內進行平面內的三角化,再根據平面內三位點的拓撲連線關係獲得乙個三角網格曲面模型。貪婪投影三角化演算法原理是處理一系列可以使網格 生長擴大 的點 邊緣點 延伸這些點直到所有符合幾何正確性和拓...