注意!注意!注意!如果没有安装vs+pcl,请出门右拐,找一些vs配置pcl的教程。(加油,配置过程中时刻告诉自己,我可以的)我的版本是vs2019+pcl 1.9.0 (建议不要高于1.9.0,要不然会失败哦),接下来我们开始。

1.配置好vs2019+pcl1.9.0之后,还需要检查一下自己的环境配置。对照下图,如果发现自己没有,手动添加!!!

在path中对照以下信息!!!

2.下载python-pcl和windosGtk+

python-pcl打包全部下载

windosGtk+建议下载3.6的那个,注意选64位

下载完成以后,将windosGtk+文件夹解压,将解压后的文件中 bin文件夹下的全部内容,复制到python-pcl文件中的pkg-config文件夹内部。

3.安装配置

我的python的版本是3.7(一定要3.7,其他版本不可以),建议与我的一样,如果你的pcl版本为1.8,可以选择python3.6。

pip3 install --upgrade pip
pip3 install cython
pip3 install numpy

如果执行pip升级以后,pip模块错误,则执行,以下语句。

python -m ensurepip
python -m pip install --upgrade pip

4.接下来开始编译,通过cmd进入python-pcl文件夹下,执行以下语句

python setup.py build_ext -i
python setup.py install

然后就可以成功了,下面展示一下测试内容!!!(建议各个软件的版本不要改变)

# -*- coding: utf-8 -*-
from __future__ import print_function

import numpy as np

import pcl

import pcl.pcl_visualization as viewer  # 引入可视化库


def main():
    # 通过pcl.load加载pcd文件
    cloud2 = pcl.load("2.pcd")
    cloud1 = pcl.load("2.pcd")
    cloud2 = np.array(cloud2)  # 这里转换成数组是为了进行一个平移,能够看出来两个点云的差异
    print(cloud2.shape)

    for x in range(cloud2.shape[0]):
        cloud2[x] = cloud2[x] + 2

    cloud1 = np.array(cloud1)

    # 如何将数组类型转换成点云所需要的数据类型

    cloud2 = pcl.PointCloud(cloud2)
    cloud1 = pcl.PointCloud(cloud1)

    visualcolor1 = pcl.pcl_visualization.PointCloudColorHandleringCustom(cloud2, 0, 255, 0)
    visualcolor2 = pcl.pcl_visualization.PointCloudColorHandleringCustom(cloud1, 255, 0, 0)
    vs = pcl.pcl_visualization.PCLVisualizering
    vss1 = pcl.pcl_visualization.PCLVisualizering()  # 初始化一个对象,这里是很重要的一步
    vs.AddPointCloud_ColorHandler(vss1, cloud1, visualcolor2, id=b'cloud', viewport=0)
    vs.AddPointCloud_ColorHandler(vss1, cloud2, visualcolor1, id=b'cloud1', viewport=0)
    v = True
    while not vs.WasStopped(vss1):
        vs.Spin(vss1)


if __name__ == "__main__":
    main()

效果显示

祝大家好运!!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐