Ubuntu22.04安装PCL
apt安装
- PCL官网给出利用apt安装
sudo apt-get installl libpcl-dev
- 测试平台Ubuntu22.04,2023年8月8日用apt安装的PCL版本为1.12.1
测试是否成功安装
- 安装cmake,2023年8月8日用apt安装的cmake版本为3.22.1
sudo apt-get install 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
-
运行结果
文章来源:https://www.toymoban.com/news/detail-734469.html -
同时会报VTK版本问题(新安装ubuntu,发现系统没有自带VTK,此警告不影响适用,暂不处理)
文章来源地址https://www.toymoban.com/news/detail-734469.html
源代码安装
- 安装依赖
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流程可行
到了这里,关于Ubuntu22.04安装PCL(小白适用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!