草庐IT

CloudCompare——点云切片

点云侠 2023-04-12 原文

目录

1.断面提取功能

  使用Tools > Segmentation > Cross Section访问此工具。


  此工具允许用户定义围绕给定云的剪切框(交互式或非交互式)。例如,可以调整盒子范围和方向以便分割云。此外,该工具还可以:

  • 在一个或多个维度中重复进行分段的过程(为实例提取多个“切片”)
  • 在每个切片中提取多边形轮廓

  选择一个点云并启动该工具的界面如下:

需要注意的是:这里的初始裁剪框(即图中黄线部分)是点云的包围盒

编辑裁剪框

  可以以各种方式编辑裁剪框,可以采用交互式的方式拖动大红色,绿色和蓝色箭头和圆环,直接在3D视图中移动剪切框边界。箭头尖端用于推拉剪切框面,而圆环可用于围绕箭头轴旋转框。左下角(黄色)的交互器可以用来移动整个框。

  右上角的如下按钮能够取消或显示裁剪框和箭头。

  也可以使用“X”,“Y”和“Z”字段直接编辑裁剪框的尺寸(宽度,深度和高度)。还可以使用对话框下部的按钮(“Shift box”框架)在所有方向上移动框。该框将移动与此维度中的框宽度相同的数量。最后,如果需要更多控制权,可以单击“advanced”按钮。将出现“标准”3D盒子版本对话框。

通过各种方式在空间中设置盒子位置(例如,甚至强制盒子为立方体)。

可视化

  可以通过一下按钮调整视图

2.提取单个切片

  点击如下按钮,即可提取裁剪框内的点。

3.提取单个轮廓

  点击如下按钮,进行边界轮廓线提取。

  主要参数及功能如下所示

必要参数

  • flat dimension:平面尺寸,根据当前截面尺寸自动设置
  • maximum edge length:最大边长,由于采用“凹包”算法提取轮廓。此工具的唯一参数是单个边的“最大尺寸”。该算法从切片点的凸包开始。只要边缘长于指定的“最大长度”,算法将尝试使用附近的另一个点来分割它。这样轮廓将更紧密地靠近点云。因此参数越小,轮廓越紧密。

其他选项

  • project slice(s) points on their best fit plane:轮廓提取是在2D平面中完成的,CloudCompare不是将切片平面尺寸用作投影平面,而是将点投影到最佳拟合平面上(这对于非常厚的切片,通常效果会更好)。
  • split contour(s) on longer edges::CloudCompare可以在每次边缘长于“最大边长”参数时分割轮廓。在这种情况下,可以生成多个非闭合折线而不是单个闭合轮廓。
  • visual debug mode:用于显示调试结果。

4.提取多个切片

  如下图所示的按钮是实现多个切片提取

  该对话框中的大多数参数与“提取单个轮廓”对话框相同。

  但是,用户必须明确指定是否希望生成轮廓(选中“Extract contour(s)”复选框以启用)。否则只会生成切片。
其他参数是:

  • Repeat dimension:设置提取的纬度(默认情况下,只会检查“平面”维度)。
  • Gap:相邻切片之间的空隙距离。

具体操作如下:

5.相关代码

[1] PCL 平面点云的凸多边形边界提取
[2] PCL 平面点云的凹多边形边界提取
[3] PCL 点云切片
[4] Open3D 点云切片
[5] PCL 点云沿坐标轴进行等距切片
[6] matlab 点云沿坐标轴进行等距切片
[7] Open3D 点云沿坐标轴进行等距切片

有关CloudCompare——点云切片的更多相关文章

  1. ruby-on-rails - Ruby on Rails 将列表拆分或切片为列 - 2

    @locations=Location.all#currentlistingall@locations=Location.slice(5)orLocation.split(5)使用Ruby,我试图将我的列表分成4列,每列限制为5个;然而,切片或拆分似乎都不起作用。知道我可能做错了什么吗?任何帮助是极大的赞赏。 最佳答案 您可能想使用in_groups_of:http://railscasts.com/episodes/28-in-groups-of这是RyanBates在railscast中的示例用法:

  2. 【自动驾驶环境感知项目】——基于Paddle3D的点云障碍物检测 - 2

    文章目录1.自动驾驶实战:基于Paddle3D的点云障碍物检测1.1环境信息1.2准备点云数据1.3安装Paddle3D1.4模型训练1.5模型评估1.6模型导出1.7模型部署效果附录show_lidar_pred_on_image.py1.自动驾驶实战:基于Paddle3D的点云障碍物检测项目地址——自动驾驶实战:基于Paddle3D的点云障碍物检测课程地址——自动驾驶感知系统揭秘1.1环境信息硬件信息CPU:2核AI加速卡:v100总显存:16GB总内存:16GB总硬盘:100GB环境配置Python:3.7.4框架信息框架版本:PaddlePaddle2.4.0(项目默认框架版本为2.3

  3. ruby - 为特定值切片参数散列 - 2

    总结给定一个哈希,根据要使用的键列表创建子集哈希的最有效方法是什么?h1={a:1,b:2,c:3}#Givenahash...pfoo(h1,:a,:c,:d)#...createamethodthat...#=>{:a=>1,:c=>3,:d=>nil}#...returnsspecifiedkeys...#=>{:a=>1,:c=>3}#...orperhapsonlykeysthatexist详情Sequel数据库工具包允许通过传入哈希来创建或更新模型实例:foo=Product.create(hash_of_column_values)foo.update(another_h

  4. ruby-on-rails - 为什么对 params 哈希进行切片会对批量分配造成安全问题? - 2

    通过批量分配防止安全风险的官方方法是使用attr_accessible.然而,一些程序员认为这不是模型的工作(或者至少不是仅模型的工作)。在Controller中执行此操作的最简单方法是对params哈希进行切片:@user=User.update_attributes(params[:user].slice(:name))但是文档指出:NotethatusingHash#exceptorHash#sliceinplaceofattr_accessibletosanitizeattributeswon’tprovidesufficientprotection.这是为什么呢?为什么par

  5. Ruby 字符串切片索引 : str[n. .infinity] - 2

    简单的问题,但在文档中找不到。如何将字符串或数组从n切到永远?>>'Austin'[1..3]=>"ust">>'Austin'[1..]SyntaxError:compileerror(irb):2:syntaxerror,unexpected']'from(irb):2 最佳答案 使用反向索引:[1..-1]Ruby(和其他一些语言)中的元素有直接索引和“反向”索引。因此,长度为n的字符串有0..(n-1)和额外的(-n)..-1索引,但仅此而已——您不能使用>=n或索引。'i''n'|'A''u''s''t''i''n'|'A

  6. arrays - Ruby 中的数组切片 : explanation for illogical behaviour (taken from Rubykoans. com) - 2

    我正在做RubyKoans中的练习我对以下Ruby怪癖感到震惊,我发现它真的无法解释:array=[:peanut,:butter,:and,:jelly]array[0]#=>:peanut#OK!array[0,1]#=>[:peanut]#OK!array[0,2]#=>[:peanut,:butter]#OK!array[0,0]#=>[]#OK!array[2]#=>:and#OK!array[2,2]#=>[:and,:jelly]#OK!array[2,20]#=>[:and,:jelly]#OK!array[4]#=>nil#OK!array[4,0]#=>[]#HUH

  7. javascript - 如何从js中的对象数组中切片? - 2

    我有一个这样的对象数组:constbooks=[{id:"1",name:"twilight",category:"Movies",price:10},{id:"2",name:"jaws",category:"Movies",price:22},{id:"3",name:"theshining",category:"Movies",price:1},{id:"4",name:"beers",category:"Movies",price:10},{id:"5",name:"apples",category:"Movies",price:22},{id:"6",name:"mono",

  8. javascript - 如何从对象文字数组中切片数组? - 2

    我有这个数组,其中每个索引都包含一个对象文字。所有对象字面量都具有相同的属性。对于给定的属性,一些对象文字具有相同的值,我想创建一个包含仅那些对象文字的新数组。我的想法是对数组进行排序,并将其切片成一个新数组......这是数组:vararr=[];arr[0]={country:"UnitedStates",num:27};arr[1]={country:"Australia",num:5};arr[2]={country:"UnitedStates",num:7};因此,我想创建一个新数组,其中仅包含那些属性country为“UnitedStates”的对象。到目前为止,这是我的疯

  9. javascript - 查找数组的最大切片 | Javascript - 2

    我需要找到包含不超过两个不同数字的数组的最大切片。这是我的数组[1,1,1,2,2,2,1,1,2,2,6,2,1,8]我对此的思考过程是找到不重复的数字并在新数组中返回它们的索引。这是我目前所拥有的:functiongoThroughInteger(number){vararray=[];//iteratethearrayandcheckifnumberisnotrepeatednumber.filter(function(element,index,number){if(element!=number[index-1]&&element!=number[index+1]){arra

  10. javascript - D3.js 饼图..选中时饼图切片可以移动吗? - 2

    只是想知道是否可以用d3做这样的事情?http://jsfiddle.net/8T7Ew/当您点击某个饼图切片时,该切片会随点击移动到什么位置?到目前为止已经创建了馅饼,只是想知道我是否可以添加此功能body{font:10pxsans-serif;}.arcpath{stroke:#fff;}varwidth=960,height=500,radius=Math.min(width,height)/2;varcolor=d3.scale.ordinal().range(["#98abc5","#8a89a6","#7b6888","#6b486b","#a05d56","#d0743

随机推荐