PCL_2: 简单的小案例
简单介绍
实现了使用pcl库,随机创建一个点云,并保存!
代码
// pcd_write.cpp
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ> cloud; // 定义点云数据结构
// Fill in the cloud data
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize (cloud.width * cloud.height);
// 随机生成数据
for (auto& point: cloud)
{
point.x = 1024 * rand () / (RAND_MAX + 1.0f);
point.y = 1024 * rand () / (RAND_MAX + 1.0f);
point.z = 1024 * rand () / (RAND_MAX + 1.0f);
}
pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud); // 随机点云存储在pcd文件
// 打印一些信息
std::cerr << "Saved " << cloud.size () << " data points to test_pcd.pcd." << std::endl;
for (const auto& point: cloud)
printf("%10f %10f %10f\n", point.x, point.y, point.z);
printf("😁 OVER!");
return (0);
}
CMakeLists.txt
点击查看代码
# 1. 必要的设置
cmake_minimum_required(VERSION 3.15) # 最低版本号
project(test) # 项目名称
set(CMAKE_CXX_STANDARD 17) # C++17
set(EXEC_NAME exec) # 可执行文件名称
# 2. 代码文件检索
file(GLOB SRC_list ${PROJECT_SOURCE_DIR}/src/*.cpp) # 查找src下的所有cpp文件
# 3. ------------------------- PCL -------------------------
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
# 4. 添加可执行文件
add_executable(${EXEC_NAME} ${SRC_list})
# 5. 连接
target_link_libraries(${EXEC_NAME} ${PCL_LIBRARIES})

浙公网安备 33010602011771号