(感谢前辈)转自:https://zhuanlan.zhihu.com/p/72116675
python-pcl 是我尝试过使用体验最好的点云数据可视化工具,它是c++上著名的pcl的python版本,虽然还有很多代码没有写完整,但是不妨碍它成为一个优秀的python 点云工具;
GitHub页面: https://github.com/strawlab/python-pcl
载安装的 whl 页面,我没有尝试去直接编译它的代码,感觉会很麻烦,所以选择了用它已经编译好的版本:
https://pypi.org/project/python-pcl/#files
这里用最简单并且最好用的方法:
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
这里先不要着急build
和install
,修改setup.py
文件中的两处地方
第一处是:由于libpcl-dev
默认的依赖是6.3
,而python-pcl
的setup.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()
效果如下图,可以任意旋转查看视图,非常快捷方便,并且一点都不卡!!
发布者:全栈程序员栈长,转转请注明出处:https://javaforall.cn/2176.html原文链接: