【问题标题】:Saving Multiple Objects of Class (point Clouds)保存多个类对象(点云)
【发布时间】:2016-06-25 00:20:58
【问题描述】:

我需要保存循环生成的多个点云。我试图将它们保存在一个返回错误的数组中:

不允许使用类“pointCloud”的对象进行数组形成和括号式索引。

while i<=N
.
.
[imageDepth, pointCld] = getPointCloud(cp, maxDistance);
 imgDepthAll(:,:,i) = imageDepth;
 pointCldAll(:,:,i) = pointCld;
.
.
 i = i+1;
end

我该如何解决这个问题?非常感谢。

【问题讨论】:

  • pointCld 大概是not an array
  • pointCld 是一个具有位置、颜色、计数、XLimits、YLimits、Z 限制属性的对象
  • 是的,谢谢,我可以很好地阅读文档。

标签: matlab point-clouds


【解决方案1】:

第二个输出 (pointCld) 是 PointCloud2 object,显然不支持放入数组中。因此,您可能希望将它们放入元胞数组中。

pointCldAll{k} = pointCld;

如果您想要此对象的实际 XYZ 或 RGB 数据,您需要使用以下方法访问它,然后您可以将它们存储在普通数组中。

xyz = readXYZ(pointCld)
rgb = readRGB(pointCld)

或者获取Location 属性并存储那个

loc = pointCld.Location

【讨论】:

  • 错误的原因是因为他试图寻址一个像数组这样的对象。他需要访问Location 属性。
  • @excaza Ah 更新了它以包含有关第二个输出的更多信息。
  • @excaza Ah 错过了帖子中的错误消息。显然他们不支持数组。很有趣。
  • @Suever 无法将点云对象存储在单元格数组中,因为它正在将单元格内容分配给非单元格数组对象。我想我应该存储位置属性
  • @Basit 确保将 pointCldAll 定义为使用 pointCldAll = cell() 的循环外的元胞数组
猜你喜欢
  • 1970-01-01
  • 2020-05-04
  • 2014-03-24
  • 2014-11-23
  • 2021-01-10
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多