編程實現提取點雲數據的樹的中心和提取山區的DEM

  1. 芒果樹a的圓心擬合
    1.1 數據:樹木主幹數據-芒果樹a
    在這裏插入圖片描述
    圖1 芒果樹a點雲情況
    1.2 大致思路:
    該點雲數據是空間中的離散點,在三維座標中,構成一個圓柱,由於樹幹處於垂直樹立狀態,因此從已知點雲座標入手,圓柱在不同高度的各個圓的圓心可以視爲x座標與y座標相同,根據各點雲座標求出該圓柱的圓心座標。
    1.3 實現原理:
    平均值法:
    首先考慮在三維空間中處於立體狀態下對於均勻分佈在圓柱上的n個點(Xi,Yi),從理論上講,圓心的X座標應爲Xi的平均值,同樣圓心的Y座標應爲Yi的平均值,圓心到圓上任一點的距離即爲圓的半徑。
    在實際情況中,點雲各點不可能正好均勻分佈在圓上,甚至有些點還不在圓上,但只要各離散點分佈較爲均勻,仍可將均值作爲圓心座標,圓心到各離散點的距離的平均值可作爲圓半徑的近似值。
    加權平均法:
    考慮到一般情況下點雲數據點不可能分佈很均勻,用求平均值法求得的圓心位置會偏向數據點密集的一邊,求出的半徑也會偏小。要克服這種方法的不足,在求圓心座標和半徑大小時,可採用加權平均法。其基本思想是:設L爲所有相鄰兩點之間的弧長之和,點(Xi,Yi)與相鄰兩點之間的弧長之和爲li,在計算圓心座標和半徑大小時,該點和該點到圓心距離的權數爲li/(2l)。 則 圓 心 坐 標 爲(Xili/(2l),Yili/(2*l))。在圓心和半徑還沒確定的情況下,相鄰兩點之間的弧長無法確定,但可用相鄰兩點之間的距離代替相鄰兩點之間的弧長。
    由於數據中點雲都是有一定的高度的,採用該方法計算圓心座標,點雲數據在Z方向上的高度有一定限制。
    最小二乘法:
    最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和爲最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。基於最小二乘法的原理,實現圓心座標擬合計算。

    1.4 代碼實現:
    讀取點雲數據,計算圓心座標x與y
    在這裏插入圖片描述
    1.5 計算結果:
    在這裏插入圖片描述
  2. 柱體4的圓心擬合
    2.1 數據:柱體數據-柱體4
    在這裏插入圖片描述
    圖2 柱體4點雲情況
    2.2 大致思路:
    該點雲數據與芒果樹a類似,同樣是空間中的離散點,在三維座標中,構成一個圓柱,但是由於路燈杆子有傾斜,並且傾斜圓柱有一定的高度,因此從已知點雲座標入手,將三維點數據導入,存爲多行3列的一個數組,所有三維點先按Z座標的值從小到大排列,通過循環,每隔100個點或更少點提取子數組,也就是根據不同高度將點雲劃分成多個較小高度的圓柱,再按照上述求解芒果樹a的方法求出該圓柱子圓心位置座標,從而得到一組各自不同高度的圓心座標。
    2.3 實現原理:
    以下原理與1.3類似,傾斜圓柱在以上基礎上考慮的點多,難度稍大。
    由於點雲數據是較高的傾斜圓柱,首先根據點雲高度將點雲劃分爲多個較小高度的圓柱,以達到圓柱大致呈垂直圓柱狀態,然後同樣按照以下方法求圓心座標。
    平均值法:
    首先考慮在三維空間中處於立體狀態下對於均勻分佈在圓柱上的n個點(Xi,Yi),從理論上講,圓心的X座標應爲Xi的平均值,同樣圓心的Y座標應爲Yi的平均值,圓心到圓上任一點的距離即爲圓的半徑。
    在實際情況中,點雲各點不可能正好均勻分佈在圓上,甚至有些點還不在圓上,但只要各離散點分佈較爲均勻,仍可將均值作爲圓心座標,圓心到各離散點的距離的平均值可作爲圓半徑的近似值。
    最後得到一組高度不同的圓心座標。
    加權平均法:
    考慮到一般情況下點雲數據點不可能分佈很均勻,用求平均值法求得的圓心位置會偏向數據點密集的一邊,求出的半徑也會偏小。要克服這種方法的不足,在求圓心座標和半徑大小時,可採用加權平均法。其基本思想是:設l爲所有相鄰兩點之間的弧長之和,點(Xi,Yi)與相鄰兩點之間的弧長之和爲li,在計算圓心座標和半徑大小時,該點和該點到圓心距離的權數爲li/(2l)。則圓心座標爲(Xili/(2l),Yili/(2*l))。在圓心和半徑還沒確定的情況下,相鄰兩點之間的弧長無法確定,但可用相鄰兩點之間的距離代替相鄰兩點之間的弧長。
    由於數據中點雲都是有一定的高度的,採用該方法計算圓心座標,點雲數據在Z方向上的高度有一定限制。因此,對於傾斜圓柱來說,將圓柱分爲若干個高度較小的小圓柱,再分別計算出各個圓的圓心。
    最小二乘法:
    最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和爲最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。
    基於最小二乘法的原理,推算圓上觀測若干座標點擬合圓心座標的公式,實現圓心座標擬合計算。
    2.4 代碼實現:
    讀取數據代碼同1.4一樣,只是路徑中的文件名字換成柱體4.txt。
    在這裏插入圖片描述
    以下代碼是將點雲數據進行排序,計算圓柱高

在這裏插入圖片描述

通過循環,提取子數組,依次計算各圓心三維座標。
2.5 計算結果:在這裏插入圖片描述

  1. 兩個相交面求交線方程
    3.1 數據:兩個面相交4
    在這裏插入圖片描述
    圖3 兩個面相交4點雲情況
    3.2 大致思路:
    該點雲數據在三維空間中,2個牆面與地面點總體上呈垂直關係,2個牆面均垂直於地面,並且2個牆面之間也呈垂直狀態。從三維空間中,沿Z軸俯視2個牆面,查看X,Y座標的分佈,可以看到2個牆面與X,Y軸不平行,如下圖所示。
    在這裏插入圖片描述
    圖4 兩個面相交4俯視圖
    在求兩個面的交線方程前,先要把兩個面的點區分開來,兩個面分別計算平面方程,進而計算交線方程。
    正如俯視圖展示的,可以通過求出Y座標的最小值時的X座標的值爲閾值來劃分兩個面的點。兩個面的點劃分爲兩個數組,再求平面方程,進而求兩個平面法向量,兩個面的法向量都與交線垂直,得到交線方向向量,通過交線上的點確定交線方程。

    3.3 代碼
    兩個面相交求交線方程的代碼只完成了數據導入,Y座標最值得計算。
    在這裏插入圖片描述
  2. 山區點雲提取DEM
    4.1 數據:山區點雲數據-G01-2
    在這裏插入圖片描述
    圖5 山區點雲數據-G01-2情況
    4.2 大致思路:
    點雲數據以樹木點居多,樹木點數據與地面數據的Z座標值相差較大,首先可以把Z座標值較大的點數據捨去,減少數據量,再分區域考慮地面點的地物剔除問題。小片區域內的地面點的Z座標值相差較小,根據點的近鄰點Z值的判斷,篩選地面點的數據,最後得到山區的DEM數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章