1. PCL点云可视化基础入门
第一次接触点云可视化时,我被那些漂浮在三维空间中的彩色点阵深深吸引。PCL(Point Cloud Library)作为点云处理的瑞士军刀,其可视化功能就像给数据装上了"透视眼"。咱们先从最基础的显示功能说起,用代码带你快速上手。
PCLVisualizer是PCL中的全能选手,能处理各种复杂场景。我习惯把它比作专业单反相机 - 功能强大但需要手动调参。下面这段代码展示了如何加载点云并设置基本显示属性:
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/io/pcd_io.h>
int main() {
// 创建点云指针
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
// 加载点云文件(记得替换为你的pcd文件路径)
if (pcl::io::loadPCDFile<pcl::PointXYZ>("sample.pcd", *cloud) == -1) {
std::cerr << "点云文件读取失败!" << std::endl;
return -1;
}
// 创建可视化对象
pcl::visualization::PCLVisualizer viewer("3D Viewer");
// 设置背景色为浅灰(RGB值范围0-1)
viewer.setBackgroundColor(0.9, 0.9, 0.9);
// 添加点云(默认白色)
viewer.addPointCloud<pcl::PointXYZ>(cloud, "sample cloud");
// 设置点云渲染属性(点大小设为2)
viewer.setPointCloudRenderingProperties(
pcl::visualization::PCL_VISUALIZER_POINT_SIZE,
2,
"sample cloud"
);
// 添加坐标系(1.0米长度)
viewer.addCoordinateSystem(1.0);
// 启动可视化循环
while (!viewer.wasStopped()) {
viewer.spinOnce(100);
}
return 0;
}
运行后你会看到一个三维窗口,里面漂浮着你的点云数据。几个实用技巧:
- 鼠标左键旋转视角
- 右键平移场景
- 滚轮缩放
- 按
R键重置视角
2. 点云着色艺术
原始点云通常是单调的白色,就像黑白电视一样乏味。PCL提供了多种着色方案,让点云数据"活"起来。我常用以下四种着色策略:


2040

被折叠的 条评论
为什么被折叠?



