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})


posted @ 2025-05-19 15:04  qinchaojie  阅读(34)  评论(0)    收藏  举报