Ubuntu22.04安裝PCL
apt安裝
- PCL官網(wǎng)給出利用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的文件夾,并在文件夾內(nèi)新建名稱為build的文件夾
- 在TestPCL內(nèi)新建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內(nèi)新建CMakeLists.txt,輸入以下內(nèi)容
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內(nèi)打開終端,編譯安裝運(yùn)行
cd build
cmake ..
make
./TEST
-
運(yùn)行結(jié)果
文章來源:http://www.zghlxwxcb.cn/news/detail-734469.html
-
同時(shí)會(huì)報(bào)VTK版本問題(新安裝ubuntu,發(fā)現(xiàn)系統(tǒng)沒有自帶VTK,此警告不影響適用,暫不處理)
文章來源地址http://www.zghlxwxcb.cn/news/detail-734469.html
源代碼安裝
- 安裝依賴
sudo apt-get update
# 以下為安裝第三方依賴庫(參考windows下3dParty)
sudo apt-get install libflann1.9 libflann-dev
# 安裝flnn,ubuntu22.04對應(yīng)的版本是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可以獨(dú)立使用源碼安裝,本例直接在依賴項(xiàng)中安裝)
# 以下為其他必須依賴
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
# libsub是一個(gè)開源的用C實(shí)現(xiàn)的,可以讓應(yīng)用程序與用戶的USB設(shè)備進(jìn)行通信的庫,可移植,使用統(tǒng)一的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)的一個(gè)免費(fèi)開源替代庫,在程序中負(fù)責(zé)創(chuàng)建窗口,初始化opengl上下文和處理輸入事件所需的所有系統(tǒng)特定的雜務(wù),從而允許創(chuàng)建真正可移植的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
# 這個(gè)命令會(huì)安裝一系列軟件包,包括gcc,g++和make
sudo apt-get install cmake
# 安裝cmake
cd pcl
# 上面從github上下載的PCL源碼放在了主文件夾下的pcl文件夾內(nèi)
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
測試是否成功安裝
- 操作方法同上,結(jié)果證實(shí)以上源代碼安裝PCL流程可行
到了這里,關(guān)于Ubuntu22.04安裝PCL(小白適用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!