0


Ubuntu22.04安装PCL(小白适用)

Ubuntu22.04安装PCL

apt安装

  • PCL官网给出利用apt安装
sudoapt-get installl libpcl-dev
  • 测试平台Ubuntu22.04,2023年8月8日用apt安装的PCL版本为1.12.1
测试是否成功安装
  • 安装cmake,2023年8月8日用apt安装的cmake版本为3.22.1
sudoapt-getinstall cmake
  • 在桌面新建名称TestPCL的文件夹,并在文件夹内新建名称为build的文件夹
  • 在TestPCL内新建test.cpp,输入以下代码
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>

int main(int argc, char **argv) 
{
    std::cout << "Test PCL !!!" << std::endl;
    
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
    uint8_t r(255), g(15), b(15);
    for (float z(-1.0); z <= 1.0; z += 0.05)
    {
        for (float angle(0.0); angle <= 360.0; angle += 5.0)
        {
            pcl::PointXYZRGB point;
            point.x = 0.5 * cosf (pcl::deg2rad(angle));
            point.y = sinf (pcl::deg2rad(angle));
            point.z = z;
            uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
                            static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
            point.rgb = *reinterpret_cast<float*>(&rgb);
            point_cloud_ptr->points.push_back (point);
        }
        if (z < 0.0)
        {
            r -= 12;
            g += 12;
        }
        else
        {
            g -= 12;
            b += 12;
        }
    }
    point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
    point_cloud_ptr->height = 1;
   
    pcl::visualization::PCLVisualizer::Ptr RGBViewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
    pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgb(point_cloud_ptr); 
    RGBViewer->setBackgroundColor(0,0,0);
    RGBViewer->addPointCloud<pcl::PointXYZRGB> (point_cloud_ptr,rgb,"rgb cloud");
    RGBViewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1,"rgb cloud");
    RGBViewer->addCoordinateSystem(1.0);
    RGBViewer->initCameraParameters();

    while (!RGBViewer->wasStopped())
    {
        RGBViewer->spin();
    }
    return 0;
}
  • 在TestPCL内新建CMakeLists.txt,输入以下内容
cmake_minimum_required(VERSION 2.6)
project(TEST)

find_package(PCL REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable(TEST test.cpp)

target_link_libraries (TEST ${PCL_LIBRARIES})

install(TARGETS TEST RUNTIME DESTINATION bin)
  • 在TestPCL内打开终端,编译安装运行
cd build
cmake ..make
./TEST
  • 运行结果在这里插入图片描述
  • 同时会报VTK版本问题(新安装ubuntu,发现系统没有自带VTK,此警告不影响适用,暂不处理)在这里插入图片描述

源代码安装

  • 安装依赖
sudo apt-get update
# 以下为安装第三方依赖库(参考windows下3dParty)
sudo apt-get install libflann1.9 libflann-dev 
# 安装flnn,ubuntu22.04对应的版本是1.9
sudo apt-get install libeigen3-dev
# 安装eigen的库
sudo apt-get install libboost-all-dev
# 安装boost
sudo apt-get install libqhull* libgtest-dev
# 安装Qhull
sudo apt-get install libopenni2-dev
# 安装openni2
sudo apt-get install libvtk9.1 libvtk9.1-qt libvtk9-dev libvtk9-qt-dev 
# 安装vtk,2023年8月22日,使用sudo apt-get install libvtk+tab最新版本是9.1,dev版本的只有9,安装9-dev版本(VTK可以独立使用源码安装,本例直接在依赖项中安装)

# 以下为其他必须依赖
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
# libsub是一个开源的用C实现的,可以让应用程序与用户的USB设备进行通信的库,可移植,使用统一的API,支持Windows,MacOS,Linux,Androdi
sudo apt-get install libopenni-dev
# 安装openni
sudo apt-get install freeglut3-dev pkg-config
# 安装freeglut,是GLUT(openGL Utility Toolkit)的一个免费开源替代库,在程序中负责创建窗口,初始化opengl上下文和处理输入事件所需的所有系统特定的杂务,从而允许创建真正可移植的OpenGL程序 
  • 从github上下载PCL源码
sudo apt-get install git
# 安装git
git clone https://github.com/PointCloudLibrary/pcl.git
# 下载源代码
  • 编译源代码
# 首先安装make和cmake等
sudo apt-get install git build-essential linux-libc-dev
# 这个命令会安装一系列软件包,包括gcc,g++和make
sudo apt-get install cmake 
# 安装cmake

cd pcl
# 上面从github上下载的PCL源码放在了主文件夹下的pcl文件夹内
mkdir release
# 新建release文件夹
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr\
      -DCMAKE_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
      -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install
测试是否成功安装
  • 操作方法同上,结果证实以上源代码安装PCL流程可行
标签: c++ 计算机视觉

本文转载自: https://blog.csdn.net/u012660296/article/details/132450862
版权归原作者 列兵阿甘 所有, 如有侵权,请联系我们删除。

“Ubuntu22.04安装PCL(小白适用)”的评论:

还没有评论