【3D视觉】PCL点云库安装

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:对‘uuid_generate@UUID_1.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libSM.so:对‘uuid_unparse_lower@UUID_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
feng@feng-All-Series:~/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arthur.AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值