1.创建文件夹
1.1在主目录下新建文件夹‘test_pcl’
1.2在‘test_pcl’文件夹下新建文件夹‘build’
以上两步可以打开终端,输入下列命令代替:
mkdir test_pcl
cd test_pcl
mkdir build
cd build
2.在文件夹‘test_pcl’内编写文件
2.1.打开文件夹‘test_pcl’
2.2.新建文件: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;
}
2.3.新建文件: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)
3.编译运行
3.1.进入‘test_pcl’文件夹,再进入‘build’文件夹
3.2.打开终端,输入:
cmake ..
make
./test_pcl
4.最终得到以下结果
使用鼠标滑轮可以改变大小,按住鼠标左右键进行拖动可以改变图形方向
(注:本demo可正常运行不代表pcl库没有缺少的依赖)
版权声明:本文为weixin_49472404原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。