参考文章:https://blog.csdn.net/qq_44324181/article/details/119426786
一、环境
系统:macOS Monterey 12.3.1 (21E258)
CPU:2.3 GHz 四核Intel Core i5
brew:
brew install pcl
/usr/local/Cellar/pcl/1.12.1_2
brew install qt
/usr/local/Cellar/qt/6.2.3_1
二、CMakeLists.txt
cmake_minimum_required(VERSION 3.22)
project(pcd_write) # 给工程命名
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/usr/local/Cellar/qt/6.2.3_1/lib/cmake/Qt6")
find_package(PCL 1.12 REQUIRED COMPONENTS common io) # 使用find_package寻找指定版本PCL的指定模块
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write pcd_write.cpp)
target_link_libraries(pcd_write ${PCL_LIBRARIES})
三、pcd_write.cpp
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int main ()
{
pcl::PointCloud<pcl::PointXYZ> cloud;
// Fill in the cloud data
cloud.width = 200;
cloud.height = 200;
cloud.is_dense = false;
cloud.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);
std::cerr << "Saved " << cloud.size () << " data points to test_pcd.pcd." << std::endl;
for (const auto& point: cloud)
std::cerr << " " << point.x << " " << point.y << " " << point.z << std::endl;
return (0);
}
运行结果:
使用CC打开:test_pcd.pcd