0 引言
問題背景:給定cad模型與點雲的情況下,基於cad比對實現對實測點雲的尺寸測量是三維測量技術中一種常用的思路。該思路的關鍵問題在於需要精確求解cad模型與點雲之間的空間轉換矩陣。採用icp(迭代最近鄰點演算法)的變種,將基於點-點對應關係的演算法拓展為基於平面-平面
的演算法。當前,基於二次開發技術求解出了cad模型中的所有平面,並且基於點雲pcl庫中的生長聚類演算法(regiongrowing做分割,ransac
對平面方程進行擬合)提取出了典型平面,因此希望通過平面-平面對應關係解出二者之間的空間轉換矩陣。其中,給定兩組平面,求解出面-面
對應關係是本文**的主要問題。
問題輸入:兩組平面 vectorptsplanes, cadplanes, 並假設平面不重複.
/* myplane為儲存平面方程的機構體* 1、a,b,c,d為平面一般方程的四個引數:ax + by + cz + d =0;
* 2、其中,(a,b,c)為平面的法向量,d代表平面的平移向量
*/struct myplane
問題輸出:int size = ptsplanes.size();
int correspondancerelations[size][2];
1 抽象問題具體化
舉例如下:
1. 給定點雲平面方程如下:
0.244/-0.668/0.702/11.900
-0.146/0.690/0.709/-107.045
0.958/0.277/-0.069/-59.060
0.958/0.277/-0.070/67.981
0.244/-0.669/0.702/3.670
0.244/-0.668/0.703/-127.611
0.957/0.281/-0.074/79.320
-0.147/0.688/0.711/26.081
0.959/0.275/-0.069/-70.594
-0.145/0.690/0.709/9.024
-0.141/0.672/0.727/-123.687
2. 給定cad模型平面方程如下:
0.000/0.000/1.000/-0.000
0.000/0.000/1.000/-8.000
1.000/-0.000/-0.000/75.000
-0.000/1.000/-0.000/75.000
1.000/0.000/0.000/-75.000
0.000/1.000/0.000/-75.000
1.000/-0.000/-0.000/58.000
-0.000/1.000/-0.000/63.500
1.000/0.000/0.000/-58.000
0.000/1.000/0.000/-63.500
0.000/0.000/1.000/-138.000
3. 基於平面是否平行對模型進行分組,並根據d值降序排列
3.1 點雲平面分組結果:
第一組0.244/-0.668/0.702/13.219
0.244/-0.669/0.702/4.989
0.244/-0.669/0.702/-126.284
第二組
0.957/0.282/-0.075/79.085
0.958/0.277/-0.070/67.768
0.958/0.277/-0.069/-59.279
0.959/0.275/-0.068/-70.855
第三組-0.147/0.688/0.710/25.914
-0.145/0.690/0.709/8.861
-0.146/0.690/0.709/-107.206
-0.140/0.668/0.731/-123.745
3.2 cad平面分組結果
第一組
0.000/0.000/1.000/-0.000
0.000/0.000/1.000/-8.000
0.000/0.000/1.000/-138.000
第二組1.000/-0.000/-0.000/75.000
1.000/-0.000/-0.000/58.000
1.000/0.000/0.000/-58.000
1.000/0.000/0.000/-75.000
第三組-0.000/1.000/-0.000/75.000
-0.000/1.000/-0.000/63.500
0.000/1.000/0.000/-63.500
0.000/1.000/0.000/-75.000
hfss螺旋平面 利用HFSS設計平面等角螺旋天線
利用hfss 設計平面等角螺旋天線 杜起飛北京理工大學電子工程系 100081 摘要 本文介紹了一種雙臂平面等角螺旋天線的設計過程,利用ansoft hfss 對其結構進行了建模和 工作頻率為0.4ghz 3ghz,電壓駐波比vswr 2.0,增益gain 5.0db。1.引言 天線的增益 輸入阻抗...
利用 ransac 演算法擬合平面
最近專案中遇到乙個問題,老闆給了一組資料然後要求獲取其中處於同乙個平面上的資料點的資訊,很明顯就是使用ransac 演算法進行處理。這裡我們使用自己的理解來說明下這個演算法。1.首先我們從給定的資料集中隨機挑選幾組資料獲取乙個模型 最好可以保證隨機挑選的資料不重複 2.將這個擬合方程作用於所有的資料...
MATLAB 利用SVD分解擬合三維平面
方法簡述 利用svd分解求擬合平面 擬合方程為ax by cz d,約束條件為a2 b2 c2 1,目標是使得盡可能多的點在平面上。構建矩陣為ax 0,將a矩陣進行奇異值分解之後,最小奇異值對應的特徵值向量即為擬合平面的係數向量。詳細的原理可以檢視 svd分解平面擬合原理 在這裡我舉的例子是利用餘震...