涟源网站设计,国外做网站公司能赚钱,做网站制作赚钱吗,蜘蛛云建站网站pcl点云数据库#xff0c;用来进行3D信息的获取与处理#xff0c;和opencv相比较#xff0c;opencv是用来处理二维信息#xff0c;他是学术界与工业界针对点云最全的库#xff0c;且网络上相关的资料很多。以下是pcl的安装步骤以及遇到的问题。
提前说明#xff0c;本人…pcl点云数据库用来进行3D信息的获取与处理和opencv相比较opencv是用来处理二维信息他是学术界与工业界针对点云最全的库且网络上相关的资料很多。以下是pcl的安装步骤以及遇到的问题。
提前说明本人用的是ubuntu20.04pcl1.12.0vtk7.1.1使用源码编译的方式Vtk用来完成点云的可视化。
之前安装过pcl1.12.0vtk9.1.1最后pcl安装可视化闪退所以还是Vtk下载的vtk7.1.1
网络上有说pcl1.8.0vtk7.1.1是标配但是在安装pcl1.8.1时出现过错误。
所以本文选择安装 pcl1.12.1 vtk7.1.1 qt5.12在此不做安装说明
ubuntu18.04_pcl安装
1. 首先安装pcl各种依赖2. 安装VTK 2.1 首先安装vtk各种依赖2.2 安装Vtk 3. 安装pcl4. pcl测试
1. 首先安装pcl各种依赖
sudo apt-get updatesudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-commonsudo apt-get install libflann1.9 libflann-dev # ubuntu20.4对应1.9sudo apt-get install libeigen3-devsudo apt-get install libboost-all-devsudo apt-get install libqhull* libgtest-devsudo apt-get install freeglut3-dev pkg-configsudo apt-get install libxmu-dev libxi-devsudo apt-get install mono-completesudo apt-get install libopenni-devsudo apt-get install libopenni2-dev可能问题
1 sudo apt-get install libflann1.9 libflann-dev 显示无法定位包libflann
首先去查看系统对应的版本 查看地址Ubuntu – Package Search Results – libflann
搜索libflann 选择ubuntu20.04对应的codename代号focal 打开终端执行以下命令
lsb_release -a可以看到ubuntu20.04对应libflan1.9 2 安装过程中遇到无法连接的问题考虑更换源
参考文章Ubuntu更换软件源_寥廓长空的博客-CSDN博客_ubuntu源
2. 安装VTK
下载地址Download | VTK
本人下载VTK-7.1.1.zip
2.1 首先安装vtk各种依赖
# 首先安装VTK的依赖X11OpenGLcmake和cmake-gui在安装pcl依赖的时候安装过了的话可以跳过# X11sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev# OpenGLsudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev# cmake cmake-guisudo apt-get install cmake cmake-gui2.2 安装Vtk
2.2.1 解压到准备好的安装目录。在目录下新建build文件夹
打开终端输入
cmake-guiwhere is the source code: 路径为VTK目录
where to build the binaries:路径为VTK目录下build的路径
如下图 点击configure显示“Configuring done”。
再勾选“VTK-Group-Qt”点击“Configure”完成后显示“Configuring done”
最后点击“Generate”显示“Generating done”完成。
2.2.2 在build目录下打开终端输入
make -j8 # 要是8核处理器还比较着急看结果的话可以make -j16sudo make install3. 安装pcl
下载地址 Release PCL 1.12.0 · PointCloudLibrary/pcl · GitHub
打开pcl目录新建build文件夹
在build文件中打开终端输入
cmake -DCMAKE_TYPENone ..make -j8 // 选择8个进程同时处理如果机子比较差可以选择make -j4 或者 makesudo make install到此pcl下载完成时间会比较长。
4. pcl测试
以下使用两段代码进行测试
4.1 文件构成 cmakelist.txt
cmake_minimum_required(VERSION 2.6)project(pcl_test)find_package(PCL 1.12 REQUIRED)include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS})add_executable(pcl_test pcl_test.cpp)target_link_libraries (pcl_test ${PCL_LIBRARIES})install(TARGETS pcl_test RUNTIME DESTINATION bin)pcl_test.cpp
#include iostream#include pcl/io/pcd_io.h#include pcl/point_types.hintmain (int argc, char** argv){pcl::PointCloudpcl::PointXYZ cloud;// Fill in the cloud datacloud.width 5;cloud.height 1;cloud.is_dense false;cloud.points.resize (cloud.width * cloud.height);for (size_t i 0; i cloud.points.size (); i){cloud.points[i].x 1024 * rand () / (RAND_MAX 1.0f);cloud.points[i].y 1024 * rand () / (RAND_MAX 1.0f);cloud.points[i].z 1024 * rand () / (RAND_MAX 1.0f);}pcl::io::savePCDFileASCII (test_pcd.pcd, cloud);std::cerr Saved cloud.points.size () data points to test_pcd.pcd. std::endl;for (size_t i 0; i cloud.points.size (); i)std::cerr cloud.points[i].x cloud.points[i].y cloud.points[i].z std::endl;return (0);}运行进入build打开终端输入
cmake ..make./pcl_test.cpp得到结果 4.2 另一个测试代码为
pcl_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.hint main(int argc, char **argv) {std::cout Test PCL !!! std::endl;pcl::PointCloudpcl::PointXYZRGB::Ptr point_cloud_ptr (new pcl::PointCloudpcl::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_castuint32_t(r) 16 |static_castuint32_t(g) 8 | static_castuint32_t(b));point.rgb *reinterpret_castfloat*(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::CloudViewer viewer (test);viewer.showCloud(point_cloud_ptr);while (!viewer.wasStopped()){ };return 0;}运行结果 如果以上结果没问题pcl就安装成功了。
5. cloudcompare软件安装
推荐snap安装方式
sudo apt-get updatesudo apt install snapsudo snap install cloudcomparecloudcompare.CloudCompareloudcompare.ccViewer