CloudCompare功能介绍-Cross Section

功能介绍

该工具可通过’Tools > Segmentation > Cross Section’ 菜单访问
此工具允许用户在一个或多个实体周围定义剪切框(也称为“横截面”)。可以手动调整框的范围和方向。

  • 分割实体(切片)
  • 提取切片内所有点的包络
  • 提取每个切片内点的一个或多个轮廓
  • 沿着一个或多个维度重复上述分割或提取过程

具体操作

选择点云,并启动工具

在这里插入图片描述
3D视图的右上角将出现一个专用对话框。
提示:

  • 初始剪切框是所有选定实体的边界框。

编辑剪辑框

可以拖动“交互器”(红、绿、蓝箭头和圆环),以便直接在3D视图中移动剪切框边界。箭头尖端用于剪裁框面,而圆环体可用于围绕箭头轴旋转框。
在这里插入图片描述

仿真

  • 编辑框尺寸(宽度,深度和高度)与’X’,'Y’和’Z’字段。
  • 使用对话框下部的按钮(“Shift box”框架)在所有方向上移动框。框将在此维度中移动与框宽度相同的量。
  • “高级”按钮:出现“标准”3D框编辑对话框。可以用不同的方式设置盒子在空间中的位置(甚至可以强制盒子成为立方体) 在这里插入图片描述

可视化

使用底部的’predefined views’ 按钮进行可视化
在这里插入图片描述

提取单个切片

  • 定义剪裁框后,可以导出落在框内的点云和网格的部分,并作为新实体可见。
  • 单击“提取包络’Extract envelope’ 按钮(在左侧’Envelope/Contour’ 框中)
  • 如果需要提取 ‘Extract envelope(s)’
  • 勾选 'Extract envelope(s)'复选框
  • 选择’flat’尺寸(它应该是自动设置的基础上,当前裁剪框形状).
  • 设置envelope类型(完全、下或上)
  • 设置最大边长:由于’concave hull’ 提取算法而提取包络。此工具的唯一参数是单个生成边的“最大尺寸”。该算法从整个点集的凸包开始。只要一条边超过比指定的“最大尺寸”,算法就会尝试使用附近的另一个点(如果可能的话)来分割它。这样,凸包将更紧密地适合点云。因此,该参数越小,包络越紧。请注意,由于仅使用输入点,因此无法保证此’最大边缘长度’。
    在这里插入图片描述
    其他选项:
  • multi-pass:增加迭代进行拟合(效果未必更好)
  • 将切片点投影到其最佳拟合平面上:包络提取在2D中完成。CloudCompare不使用切片最平坦的维度作为投影平面,而是可以将点投影到它们的最佳拟合平面上(对于相当厚的切片,有时可能更好)。
  • 基于最长尺寸阈值对包络进行分割:CloudCompare可以在每次边长于“最大尺寸”参数时分割包络。在这种情况下,可以生成多条非闭合多段线,而不是单个闭合包络。

提取单个切片内的轮廓

  1. 选则’Extract contours’ ;
  2. 设置‘Grid step’
  3. 按轮廓设置顶点最小数量

其他

进行断面的提取推荐使用一下方法:
CloudCompare-断面提取

### CloudCompare 中进行点云切片的操作指南 在 CloudCompare 软件中执行点云切片操作涉及多个具体步骤,这些功能旨在帮助用户精确获取所需的数据片段。 #### 启动工具与初始化设置 当选择一个点云数据集并启动 CloudCompare 的界面时,会注意到存在一个初始裁剪框(即图中的黄线部分),这个裁剪框实际上是点云的包围盒[^1]。此包围盒定义了默认情况下用于切割点云的空间范围。 #### 创建交叉截面 为了创建点云的截面,在工具栏中依次点击 `Tools` -> `Segmentation` -> `Cross Section` 。此时界面上将会显示一个围绕选定点云对象的三维包围盒以及六个方向上的控制箭头。这六个箭头允许用户通过鼠标拖拽来调整各个维度上切割平面的位置,从而实现对原始点云的不同角度和平面的精准分割[^2]。 #### 移动和旋转包围盒 对于更复杂的场景需求,可以通过位于左下角处的一个黄色交互控制器来进行整体包围盒位置的变化或者实施旋转操作。这种灵活性使得即使面对倾斜或不规则形状的目标物体也能轻松获得理想的横断层面。 ```python # Python API 示例 (假设已安装CloudCompare库) import cloudcompare as cc def create_cross_section(point_cloud_path, output_path): app = cc.CloudCompare() # 加载点云文件 point_cloud = app.loadPointCloud(point_cloud_path) # 设置截面参数 cross_section_tool = app.getTool('CrossSection') cross_section_tool.setBoundingBox(True) # 使用包围盒 # 执行截面操作并将结果保存到指定路径 result = cross_section_tool.execute() app.save(result, output_path) create_cross_section('/path/to/point/cloud', '/output/path/cross_section.ply') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值