python-pcl可视化点云工具(windows和ubuntu18.04安装及测试)

python-pcl可视化点云工具(windows和ubuntu18.04安装及测试)

python 可视化点云工具 python-pcl

(感谢前辈)转自:https://zhuanlan.zhihu.com/p/72116675


python-pcl github地址

python-pcl 是我尝试过使用体验最好的点云数据可视化工具,它是c++上著名的pcl的python版本,虽然还有很多代码没有写完整,但是不妨碍它成为一个优秀的python 点云工具;

GitHub页面:
https://github.com/strawlab/python-pcl


windows下安装python-pcl

载安装的 whl 页面,我没有尝试去直接编译它的代码,感觉会很麻烦,所以选择了用它已经编译好的版本:

https://pypi.org/project/python-pcl/#files


ubuntu18.04配置python-pcl

这里用最简单并且最好用的方法:

pip3 install cython==0.26.0    # 看到python-pcl中setup.py提示cython>=0.26.0
pip3 install numpy  # 还需要安装一下numpy
sudo apt-get install libpcl-dev pcl-tools

完美完成,这里默认的安装版本的pcl1.8.1,vtk6.3
安装python-pcl

git clone https://github.com/strawlab/python-pcl.git
cd python-pcl-master

这里先不要着急buildinstall,修改setup.py文件中的两处地方
第一处是:由于libpcl-dev默认的依赖是6.3,而python-pclsetup.py文件里是7.0,所以我们在setup.py文件里728行更改配置,将7.0注释掉,改成默认装好的6.3版本。
在这里插入图片描述

第二处是,删除752行中一些不需要的东西:

vtkexpat
vtkfreetype
vtkgl2ps
vtkhdf5
vtkhdf5_hl
vtkjpeg
vtkjsoncpp
vtklibxml2
vtkNetCDF
vtkNetCDF_cxx
vtkoggtheora
vtkpng
vtkproj4
vtksqlite
vtktiff
vtkzlib

或者直接复制下面替换一下也OK

vtklibreleases = ['vtkalglib-' + vtk_version, 'vtkChartsCore-' + vtk_version, 'vtkCommonColor-' + vtk_version, 'vtkCommonComputationalGeometry-' + vtk_version, 'vtkCommonCore-' + vtk_version, 'vtkCommonDataModel-' + vtk_version, 'vtkCommonExecutionModel-' + vtk_version, 'vtkCommonMath-' + vtk_version, 'vtkCommonMisc-' + vtk_version, 'vtkCommonSystem-' + vtk_version, 'vtkCommonTransforms-' + vtk_version, 'vtkDICOMParser-' + vtk_version, 'vtkDomainsChemistry-' + vtk_version, 'vtkexoIIc-' + vtk_version, 'vtkFiltersAMR-' + vtk_version, 'vtkFiltersCore-' + vtk_version, 'vtkFiltersExtraction-' + vtk_version, 'vtkFiltersFlowPaths-' + vtk_version, 'vtkFiltersGeneral-' + vtk_version, 'vtkFiltersGeneric-' + vtk_version, 'vtkFiltersGeometry-' + vtk_version, 'vtkFiltersHybrid-' + vtk_version, 'vtkFiltersHyperTree-' + vtk_version, 'vtkFiltersImaging-' + vtk_version, 'vtkFiltersModeling-' + vtk_version, 'vtkFiltersParallel-' + vtk_version, 'vtkFiltersParallelImaging-' + vtk_version, 'vtkFiltersProgrammable-' + vtk_version, 'vtkFiltersSelection-' + vtk_version, 'vtkFiltersSMP-' + vtk_version, 'vtkFiltersSources-' + vtk_version, 'vtkFiltersStatistics-' + vtk_version, 'vtkFiltersTexture-' + vtk_version, 'vtkFiltersVerdict-' + vtk_version,  'vtkGeovisCore-' + vtk_version, 'vtkImagingColor-' + vtk_version, 'vtkImagingCore-' + vtk_version, 'vtkImagingFourier-' + vtk_version, 'vtkImagingGeneral-' + vtk_version, 'vtkImagingHybrid-' + vtk_version, 'vtkImagingMath-' + vtk_version, 'vtkImagingMorphological-' + vtk_version, 'vtkImagingSources-' + vtk_version, 'vtkImagingStatistics-' + vtk_version, 'vtkImagingStencil-' + vtk_version, 'vtkInfovisCore-' + vtk_version, 'vtkInfovisLayout-' + vtk_version, 'vtkInteractionImage-' + vtk_version, 'vtkInteractionStyle-' + vtk_version, 'vtkInteractionWidgets-' + vtk_version, 'vtkIOAMR-' + vtk_version, 'vtkIOCore-' + vtk_version, 'vtkIOEnSight-' + vtk_version, 'vtkIOExodus-' + vtk_version, 'vtkIOExport-' + vtk_version, 'vtkIOGeometry-' + vtk_version, 'vtkIOImage-' + vtk_version, 'vtkIOImport-' + vtk_version, 'vtkIOInfovis-' + vtk_version, 'vtkIOLegacy-' + vtk_version, 'vtkIOLSDyna-' + vtk_version, 'vtkIOMINC-' + vtk_version, 'vtkIOMovie-' + vtk_version, 'vtkIONetCDF-' + vtk_version, 'vtkIOParallel-' + vtk_version, 'vtkIOParallelXML-' + vtk_version, 'vtkIOPLY-' + vtk_version, 'vtkIOSQL-' + vtk_version, 'vtkIOVideo-' + vtk_version, 'vtkIOXML-' + vtk_version, 'vtkIOXMLParser-' + vtk_version, 'vtkmetaio-' + vtk_version,  'vtkParallelCore-' + vtk_version,  'vtkRenderingAnnotation-' + vtk_version, 'vtkRenderingContext2D-' + vtk_version, 'vtkRenderingContextOpenGL-' + vtk_version, 'vtkRenderingCore-' + vtk_version, 'vtkRenderingFreeType-' + vtk_version, 'vtkRenderingGL2PS-' + vtk_version, 'vtkRenderingImage-' + vtk_version, 'vtkRenderingLabel-' + vtk_version, 'vtkRenderingLIC-' + vtk_version, 'vtkRenderingLOD-' + vtk_version, 'vtkRenderingOpenGL-' + vtk_version, 'vtkRenderingVolume-' + vtk_version, 'vtkRenderingVolumeOpenGL-' + vtk_version,  'vtksys-' + vtk_version, 'vtkverdict-' + vtk_version, 'vtkViewsContext2D-' + vtk_version, 'vtkViewsCore-' + vtk_version, 'vtkViewsInfovis-' + vtk_version]

这下就可以放心的进行安装,执行以下两条命令即可:

python3 setup.py build_ext -i
python3 setup.py install

看到下面提示就代表安装成功了
在这里插入图片描述
在这里插入图片描述


到该页面后点击绿色的便签,绿色代表编译成功,红色表示失败,然后看是不是符合你的系统和python版本,我用的是Windows版本,python可以随意选,因为用的虚拟环境;

下载完成后直接pip 安装就可以了:

pip3 install python_pcl-XXX.whl

可视化的实例代码 1:

import pcl.pcl_visualization


# lidar_path 指定一个kitti 数据的点云bin文件就行了
points = np.fromfile(lidar_path, dtype=np.float32).reshape(-1, 4)  # .astype(np.float16)
cloud = pcl.PointCloud(points[:,:3])
visual = pcl.pcl_visualization.CloudViewing()
visual.ShowMonochromeCloud(cloud)


flag = True
while flag:
    flag != visual.WasStopped()

可视化的实例代码 2, 可以加入颜色显示:

import pcl.pcl_visualization

# lidar_path 指定一个kitti 数据的点云bin文件就行了 points = np.fromfile(lidar_path, dtype=np.float32).reshape(-1, 4) # .astype(np.float16)


# 这段代码省略,要在这里对第四列进行赋值,它代表颜色值,根据你自己的需要赋值即可; points[:,3] = ...


# PointCloud_PointXYZRGB 需要点云数据是N*4,分别表示x,y,z,RGB ,其中RGB 用一个整数表示颜色; color_cloud = pcl.PointCloud_PointXYZRGB(points) visual = pcl.pcl_visualization.CloudViewing() visual.ShowColorCloud(color_cloud, b'cloud') flag = True while flag:
    flag != visual.WasStopped()

效果如下图,可以任意旋转查看视图,非常快捷方便,并且一点都不卡!!

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2176.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • LQR控制器(控制器的功能是什么)

    LQR控制器是常见的最优控制器,它的主要特点是将控制量加入到了成本函数中。对于线性系统:x˙=Ax+Bu\dotx=Ax+Bux˙=Ax+Bu设计控制器u=−Kxu=-Kxu=−Kx使得J=12∫0∞xTQx+uTRu dtJ=\frac{1}{2}\int_0^\inftyx^TQx+u^TRu\,dtJ=21​∫0∞​xTQx+uTRudt最小。其中,xTQxx^TQxxTQx是状态部分,uTRuu^TRuuTRu是控制部分。为了求解K,需要引入Riccati微分方程:P

  • Clion2022.01 激活码【2022最新】

    (Clion2022.01 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • SpringBoot——解决application.properties文件不生效的问题

    SpringBoot——解决application.properties文件不生效的问题SpringBoot——解决application.properties文件不生效的问题

  • 【X11vnc】Ubuntu18.04 x11vnc启动失败,报错error opening logfile: /var/log/x11vnc.log

    【X11vnc】Ubuntu18.04 x11vnc启动失败,报错error opening logfile: /var/log/x11vnc.logUbuntu18.04x11vnc启动失败,报错erroropeninglogfile:/var/log/x11vnc.log前提概要报错解决方案前提概要之前在Ubuntu18.04安装了x11vnc,最近通过vncview连不上了,使用ssh登录后,根据journalctl-ux11vnc发现报错创建/var/log/x11vnc.log后查看x11vnc.log报错root@VM-16-8-ubuntu:/home/ubuntu#cat/var/log/x11vnc.l

  • 决策树模型的用途_决策树模型怎么建立

    决策树模型的用途_决策树模型怎么建立概念定义在特征空间与类空间上的条件概率分布,即给定特征条件下类的条件概率分布;也可以认为是if-then规则的集合优点模型具有可读性,分类速度快。模型首先,介绍一下决策树模型:由结点和有向边组成,结点又可分为内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。决策树与条件概率分布决策树所表示的条件概率分布由各个单元给定条件下的类的条件概率分布组成。若X表…

    2022年10月21日
  • Nginx动静分离实现

    Nginx动静分离实现Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache、Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Apache为例说明。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号