泊松盤采樣
泊松盤采樣(possion disk sampling)的特點是任何兩個點的距離都不會隔得太近。
比如下圖,左邊是隨機生成的點,右邊是泊松盤采樣生成的點。
具體流程如下:
1、設(shè)定好兩個點之間最近的距離r,以及采樣點所在空間的維度n,比如2維平面
2、在空間里生成足夠多的網(wǎng)格,保證不接觸的兩個網(wǎng)格之間的點的距離大于r,并且網(wǎng)格數(shù)量足夠多保證每個網(wǎng)格至多只需裝一個采樣點就能滿足采樣數(shù)量。為了最優(yōu)化,一般取網(wǎng)格邊長為r/sqrt{n}。
3、隨機生成一個點,再創(chuàng)建兩個數(shù)組,第一個是處理數(shù)組,第二個是結(jié)果數(shù)組,即最終的輸出數(shù)組。把這個點放進處理數(shù)組中和結(jié)果數(shù)組中。
4、如果處理數(shù)組非空,從中隨機選擇一個點,如下圖的紅點,并把這個點從處理數(shù)組中刪除。如果處理數(shù)組是空的,直接輸出結(jié)果數(shù)組并結(jié)束算法。
5、設(shè)定最小距離minr,比如r,最大距離maxr,比如2*r。以紅點為中心生成一個圓環(huán),如下圖灰色圓環(huán),在這個圓環(huán)中生成一個采樣點,如下圖藍點。
#include < pcl/surface/poisson.h >
//泊松重建
cout < < "begin poisson reconstruction" < < endl;
Poisson< PointXYZRGBNormal > poisson;
//poisson.setDegree(2);
poisson.setDepth(8);
poisson.setSolverDivide (6);
poisson.setIsoDivide (6);
poisson.setConfidence(false);
poisson.setManifold(false);
poisson.setOutputPolygons(false);
poisson.setInputCloud(cloud_smoothed_normals);
PolygonMesh mesh;
poisson.reconstruct(mesh);
-
plc
+關(guān)注
關(guān)注
5031文章
13806瀏覽量
472744 -
采樣
+關(guān)注
關(guān)注
1文章
127瀏覽量
25957 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26410
發(fā)布評論請先 登錄
松翰SN8F5702片子的ADC采樣
關(guān)于232的NCL,PCL的疑問
學(xué)習(xí)單片機的采樣流程
關(guān)于232通信,PCL,NCL,能用DB9的芯片去采集數(shù)據(jù)嗎?
五點差分格式求解泊松方程并行算法的研究
三維泊松方程并行求解算法
機器學(xué)習(xí):泊松分布與指數(shù)分布
基于泊松簇過程的毫米波異構(gòu)網(wǎng)絡(luò)模型

光的波動性之泊松亮斑介紹
PCL中基礎(chǔ)下采樣介紹

評論