【教程】Win10 安装 python_pcl——点云处理工具

介绍

python-pcl 是一个用来处理点云数据的工具,它是 C++ 上著名的 Point Cloud Library (PCL) 工具包的 Python 版本,更多的介绍在其 python-pcl GitHub 主页。由于安装过程费了很多周折,本文故在此予以记录。

安装过程中,发现了一个同样用来处理点云数据的 pclpy ,mark 下来当个备用选项。pclpy Github 主页

安装

在 Windows 上编译源码时会出现很多莫名的问题,我选择使用别人已经编译好的轮子来安装。python-pcl 主页上罗列了很多安装环境,我选择的是这个:

环境依赖

  • Visual Studio Community 2017 (version 15.9) : 官方下载 安装教程
  • Cython : 要在 Python 3.6 对应的环境目录中执行命令
    pip install Cython==0.25.2
  • pcl 1.8.1:python_pcl-0.3-cp36-cp36m-win_amd64.whl 下载链接
    pip install python_pcl-XXX.whl

感想

要找到个合适的轮子简直太难了,官方推荐的网站 APPveyor 上边编译好的轮子最多保存半年,然而对于 Windows,近半年的记录都是尚未成功的(绿色表示成功)。

话说,感觉这个工具的热度有点低哦,各位大佬都是怎么处理点云数据的呀

( •̀ ω •́ )✧

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PCL(Point Cloud Library)是一个开源的计算机视觉库,其中内置了许多点云处理的算法,包括点云曲面重建。 点云曲面重建是将无序的点云数据转换为连续的曲面模型,常用于三维建模、机器人视觉导航、医学图像处理等领域。PCL提供了多种点云曲面重建算法,包括基于网格的方法和基于隐式曲面的方法。本文将介绍其中的一种基于网格的方法——Poisson重建。 Poisson重建算法的基本思想是,利用点云数据构建一个无向加权图,并将重建的曲面模型视为该图的等势面。在该图上进行拉普拉斯平滑,得到的曲面为最小化拉普拉斯能量的解。 下面是Poisson重建的具体步骤: 1. 对点云进行预处理,去除离群点、滤波、下采样等操作,以减少噪声和计算量。 2. 构建点云的法向量估计算法。Poisson重建算法需要法向量信息作为重建的基础,PCL提供了多种法向量估计算法,如基于协方差矩阵的法向量估计、基于法向量的一致性检测等。 3. 构建无向加权图。Poisson重建算法将点云数据视为一个无向加权图,其中每个点表示一个顶点,每个点之间根据一定的规则连接一条边,边权重表示两个点之间的相似度。PCL中常用的连接规则为K近邻和半径搜索。 4. 执行Poisson重建算法。在无向加权图上进行拉普拉斯平滑,得到的曲面为最小化拉普拉斯能量的解。Poisson重建算法还可以对结果进行后处理,如光滑、去除孔洞等。 下面是Poisson重建算法的Python实现代码: ``` import pcl # 加载点云数据 cloud = pcl.load('input_cloud.pcd') # 预处理 cloud_filtered = cloud.make_statistical_outlier_filter().filter() cloud_downsampled = cloud_filtered.make_voxel_grid_filter().filter() cloud_normals = cloud_downsampled.make_normal_estimation().compute() # 构建无向加权图 search_tree = cloud_downsampled.make_kdtree() mls = cloud_downsampled.make_moving_least_squares() mls.set_search_radius(0.1) mls.set_polynomial_order(2) mls.set_upsampling_method(pcl.MovingLeastSquares.NONE) cloud_smoothed = mls.process() poisson = cloud_smoothed.make_poisson_reconstruction() poisson.set_depth(9) poisson.set_iso_divide(8) poisson.set_point_weight(4) poisson.set_samples_per_node(1.5) poisson.set_confidence(false) poisson.set_output_polygons(true) reconstructed = poisson.reconstruct() ``` 其中,'input_cloud.pcd'为点云数据文件名,需要先使用PCL进行格式转换。以上代码仅为示例,具体参数需要根据实际应用场景进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值