【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                1. 點云重采樣
基于多項式平滑點云及法線估計的曲面重建以實現重采樣,可以使得點云數據更規整一些,沒之前那么雜亂。
- set_Compute_Normals(True) 可以通過在最小二乘法中進行法線估計,提高重采樣準確度;
- set_polynomial_fit(True) 可以通過不需要多項式擬合來加快平滑速度,設置為True則在整個算法運行時采用多項式擬合來提高精度;
2. 效果如下:
重建前:
正面:
 側面:
 
 重建后:
正面:
 
 側面:
 
 可以看到重采樣后點云的形狀清晰了許多。
3. 源碼
# -*- coding: utf-8 -*-
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#  <基于多項式平滑點云及法線估計的曲面重建重采樣,使得數據更規整一些,沒之前那么雜亂>Smoothing and normal estimation based on polynomial reconstructionhttp://pointclouds.org/documentation/tutorials/resampling.php#moving-least-squares
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
import pcldef main():# 加載點云cloud = pcl.load('D:/tests/examples/official/Surface/bun0.pcd')print('cloud(size) = ' + str(cloud.size))# 構建kd樹tree = cloud.make_kdtree()# 重建mls = cloud.make_moving_least_squares()print('make_moving_least_squares')mls.set_Compute_Normals(True)  # 設置在最小二乘計算中需要進行法線估計mls.set_polynomial_fit(True)  # 可以通過不需要多項式擬合來加快平滑速度,設置為true時則在整個算法運行時采用多項式擬合來提高精度mls.set_Search_Method(tree)mls.set_search_radius(0.03)print('set parameters')mls_points = mls.process()print('mls_points(size) = ' + str(mls_points.size))# 存儲重采樣結果pcl.save_PointNormal(mls_points,'D:/tests/examples/official/Surface/bun0-mls-nonormas.pcd')if __name__ == "__main__":main()
參考:
- http://pointclouds.org/documentation/tutorials/resampling.php#moving-least-squares
總結
以上是生活随笔為你收集整理的【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 用错了表情是哪首歌啊?
- 下一篇: 《奇思妙想》是谁画的啊?
