自学内容网 自学内容网

使用 MATLAB 处理和可视化 PCD 文件:点云过滤与保存的完整流程

1. 前言

点云数据通常以 .pcd 格式存储,包含三维空间中的点坐标。为了分析和处理这些数据,有时我们需要对点云进行裁剪或过滤。例如,删除某些特定范围内的点,以减少噪声或聚焦于感兴趣的区域。这篇文章将带你逐步实现以下任务:

  • 读取 PCD 文件。
  • 过滤 z 轴值小于 -0.88 或大于 1.5 的点。
  • 可视化处理后的点云。
  • 将处理后的点云保存为新的 PCD 文件。
2. MATLAB 点云处理概述

MATLAB 包含一个强大的点云处理工具箱,提供了诸如 pcreadpcwritepointCloud 等函数,可以方便地进行点云数据的读写和处理。本文的代码示例将展示如何使用这些函数进行点云数据的批量处理。

3. 代码实现

以下是该 MATLAB 脚本的完整代码,实现了从 PCD 文件中读取并过滤点云数据的功能。我们将删除 z 值小于 -0.88 和大于 1.5 的点,随后可视化并保存处理后的点云。

% MATLAB Script to load, process, visualize, and save PCD data
clc
close
clear
% 设定路径
inputFolder = 'C:\Users\Administrator\Desktop\标定用的数据\5\LiDAR_Cam\PCD';  % PCD 文件所在的文件夹
outputFolder = 'C:\Users\Administrator\Desktop\标定用的数据\5\LiDAR_Cam\PCD\pcdc';  % 保存处理后文件的文件夹

% 如果输出文件夹不存在,创建它
if ~exist(outputFolder, 'dir')
    mkdir(outputFolder);
end

% 获取文件夹下所有 .pcd 文件
pcdFiles = dir(fullfile(inputFolder, '*.pcd'));

% 遍历所有的 PCD 文件
for i = 1:length(pcdFiles)
    % 获取当前文件的完整路径
    inputFilePath = fullfile(inputFolder, pcdFiles(i).name);
    
    % 读取 PCD 文件
    ptCloud = pcread(inputFilePath);
    
    % 获取点云数据
    xyzPoints = ptCloud.Location;  % 大小为 1800x16x3 的三维矩阵
    
    % 将 1800x16x3 的矩阵展平成 28800x3 的矩阵
    xyzPoints = reshape(xyzPoints, [], 3);
    
% 删除 z 值小于 -0.88 且 z 值大于 1.5 的点
    validIdx = (xyzPoints(:, 3) >= -0.88) & (xyzPoints(:, 3) <= 1.5);
    filteredPoints = xyzPoints(validIdx, :);
    
    % 可视化处理后的点云数据
    figure;
    scatter3(filteredPoints(:, 1), filteredPoints(:, 2), filteredPoints(:, 3), 5, filteredPoints(:, 3), 'filled');
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    title(['Filtered Point Cloud: ', pcdFiles(i).name]);
    colorbar;
    axis equal;
    view(3);
    
    % 创建新的点云对象
    filteredPointCloud = pointCloud(filteredPoints);
    
    % 保存到新的路径下
    outputFilePath = fullfile(outputFolder, pcdFiles(i).name);
    pcwrite(filteredPointCloud, outputFilePath);
    
    % 关闭当前图像
    close;
end

disp('PCD 文件处理完成!');


原文地址:https://blog.csdn.net/u014374826/article/details/142499627

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!