天天看点

【3D视觉】PCL点云库安装1、安装依赖项2、下载pcl源码3、将程序安装至系统中4、测试5、执行自己写的cpp文件

1

、安装依赖项

sudo apt-get update                sudo apt-get install git build-essential linux-libc-dev              sudo apt-get install cmake cmake-gui              sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev              sudo apt-get install mpi-default-dev openmpi-bin openmpi-common               sudo apt-get install libflann-dev               libflann1.8               sudo apt-get install libeigen3-dev               sudo apt-get install libboost-all-dev              sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev              sudo apt-get install libqhull* libgtest-dev              sudo apt-get install freeglut3-dev pkg-config              sudo apt-get install libxmu-dev libxi-dev              sudo apt-get install mono-complete              sudo apt-get install openjdk-8-jdk openjdk-8-jre
           

2、下载pcl源码

//              下载              PCL              源码              git clone https://github.com/PointCloudLibrary/pcl.git               //              编译              cd pcl               mkdir release               cd release              cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..               make  
           

[解释:]sudo make:make的基本用处是自动根据makefile里的指令来编译源文件.

3、将程序安装至系统中

sudo make install
           

[解释:]make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。默认/usr/local/bin

4、测试

cd ~/pcl/test                 pcl_viewer office1.pcd   //              执行该条命令有显示就说明已经安装完成
           

5、执行自己写的cpp文件

5.1  创建test_pcl的文件夹

mkdir test_pcl              cd test_pcl
           

5.2在test_pcl文件夹中创建build文件夹

mkdir build
           

5.3将代码复制到test_pcl.cpp中

vim test_pcl.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::CloudViewer viewer ("test");

  
viewer.showCloud(point_cloud_ptr);

  
while (!viewer.wasStopped()){ };

  
return 0;

}
           

vim CMakeLists.txt  # 将下面内容复制到CMakeLists.txt中,退出保存

cmake_minimum_required(VERSION 2.6)
project(test_pcl)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})
add_executable(test_pcl test_pcl.cpp)
target_link_libraries (test_pcl ${PCL_LIBRARIES})
install(TARGETS test_pcl RUNTIME DESTINATION bin)
           

5.4运行

cd build # 进入build文件夹,执行下面命令

cmake ..              make              ./test_pcl              问题:              /usr/lib/x86_64-linux-gnu/libSM.so              :对‘              [email protected]_1.0’              未定义的引用              /usr/lib/x86_64-linux-gnu/libSM.so              :对‘              [email protected]_1.0’              未定义的引用              collect2: error: ld returned 1 exit status              outofcore/tools/CMakeFiles/pcl_outofcore_viewer.dir/build.make:368: recipe for target 'bin/pcl_outofcore_viewer' failed              make[2]: *** [bin/pcl_outofcore_viewer] Error 1              CMakeFiles/Makefile2:1730: recipe for target 'outofcore/tools/CMakeFiles/pcl_outofcore_viewer.dir/all' failed              make[1]: *** [outofcore/tools/CMakeFiles/pcl_outofcore_viewer.dir/all] Error 2              [email protected]:~/pcl/release$ ldd /usr/lib/x86_64-linux-gnu/libSM.so |grep uuid              libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fb9c9a1c000)           

解决:

sudo rm /home/anaconda3/lib/libuuid.so.1              sudo ln -s /lib/x86_64-linux-gnu/libuuid.so.1 /home/              /anaconda3/lib/libuuid.so.1           

参考:

https://blog.csdn.net/qq_36013249/article/details/103311001

https://blog.csdn.net/minhuaQAQ/article/details/109471374

继续阅读