问题标签 [point-clouds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
820 浏览

geometry - 点云库中的手动三角测量

我有一个点云,我已经执行了平面检测。现在我想对场景进行三角测量。

我已经有了每架飞机的三角剖分,看起来像这样: 平面三角剖分

我想用来Point Cloud Library GreedyProjectionTriangulation重建场景。所以我想调整干预重建的不同功能。

我挖掘了gp3.hand的代码gp3.hpp(可以在 中找到pcl/surface/include/pcl/surface)并阅读了相关的出版物。到目前为止,我已经做到了这一点:

  • 我的飞机的每个点都应该在一开始就被标记为边缘 - 使用矢量很容易做到这一点state_
  • 我们用函数添加平面的三角形,这addTriangles没问题。
  • 我不知道如何强制执行边缘。有一个doubleEdges向量,但我并不真正了解它是如何工作的。似乎每次迭代都会重置一个点。
  • 我必须将我的平面点推到fringe_queue_向量中,但这个addFringe函数很奇怪,因为它要求 2 个参数,我不明白为什么。
  • 我不明白向量part_的用途。

我目前的结果是这样的: 当前结果

图像上不是很清楚,但由于我不知道如何强制边缘,所以我遇到了重叠三角形的问题。

编辑

我继续挖掘代码。我确定了关键部分可能是什么。为了避免代码墙,你可以在这里找到有趣的部分——它大约在 gp3.hpp 的第 180 和 285 行之间。

我不明白什么sfn_ffn_是为了什么。我的直觉是sfn_[R_]返回 的第二个边缘邻居R_ffn_[R_]返回 的第一个边缘邻居R_所以是这样的: sfn 和 ffn

如果我是对的,我可以很容易地做到这一点,因为我的飞机轮廓按正确的顺序排序。

我仍然不知道如何强制执行属于我的平面的三角形的边缘。查看代码,我认为关键在doubleEdges向量中,但我不知道如何修改这部分以使其与我的问题相关。

0 投票
1 回答
2615 浏览

algorithm - 有组织的 3d 点云数据中的连接组件

嗨!

我从 Kinect 传感器组织了点云。假设我有一个有组织的沙发点云,前面有一张桌子。我想要的是两朵云:沙发和桌子

我正在寻找一些算法来获取连接的组件。有没有人有一些伪代码或论文?或者也许一些代码(Matlab)

我现在的想法:我可以使用 2D 信息来获取一个点的相邻像素。接下来我可以检查到相邻像素的欧几里得距离。如果距离低于阈值,则该像素属于同一簇。...

谢谢

0 投票
1 回答
2013 浏览

c++ - 从 Eigen::Vector 转换为 Eigen::Affine3f

我使用的代码如下:

但是当它编译翻译时,我得到了错误:

有谁知道如何转换或错误的原因是什么?谢谢。

0 投票
4 回答
6564 浏览

python - 在 MayaVi 中指定 3D 点的绝对颜色

我正在使用MayaVi Python 库来绘制 3d 点,使用points3d该类。文档指定每个点的颜色是通过第四个参数指定的s

此外,您可以传递与 x、y 和 z 形状相同的第四个数组 s,为每个点提供相关的标量值,或者传递一个函数 f(x,y,z) 返回标量值。此标量值可用于调制点的颜色和大小。

copper这为每个点指定了一个标量值,该值将点映射到颜色图,例如jethsv。例如从他们的文档中:

给出:

在此处输入图像描述

相反,我想将每个点的实际值指定为 (r, g, b) 元组。这在 MayaVi 中可行吗?我尝试用s元组数组替换 ,但抛出错误。

0 投票
1 回答
677 浏览

python - 通过复制点云、放大点云并将其居中在原始云上,使点云的法线指向外部

我正在做关于点云减少的本科论文。

我需要法线指向外面。我已经为此苦苦挣扎了一段时间。

这就是我尝试的方式:我有一个对象的点云,特别是斯坦福兔子。我创建了这个对象的放大版本并将较小的版本放入其中。然后我将法线指向外部“较大”对象的方向。

如果它们不接触,我无法将较大的物体放在较小的物体上,即兔子的耳朵重叠。任何人都知道如何使较小的对象适合较大的对象。

到目前为止,这是我的代码:

0 投票
1 回答
792 浏览

python - 缩放对象的点云并将其居中在原始对象上,确保它们不相交

我有一个兔子点云 - 虽然可以是任何对象。

我想把较大的兔子直接放在较小的兔子身上。想想具有不同层次的俄罗斯套娃。问题是让外层完美地贴合内层。主体可能不会重叠,但耳朵会重叠。

这是我的代码:

0 投票
0 回答
552 浏览

numpy - 将平面拟合到点 - 我怎么知道它是否正确?

我正忙于研究点云简化算法。

下面是计算点邻域的法线的代码。我使用了主成分分析。

我想知道我是否正确计算了点的法线和曲率?

我知道法线是无方向的,我的下一步是使用网络 x 创建一个图(从每个点到最近的邻居的边),用 1-|ni*ni+1| 对每条边进行加权 . 然后创建一个最小生成树,然后通过从最高 z 值点开始并在 ni*ni+1=-1 时翻转 ni+1 的方向来启动深度搜索。我将使用 networkx ,这样我就可以实现全球一致的方向。这是最好的方法吗?

谢谢

0 投票
1 回答
151 浏览

performance - 如何有效地获得 10% 的随机数,然后是剩余 90 的 10% 等,直到分配所有点

这就是我想要做的:

我有300 000分。

我想要10%的分数。

然后我想要剩下的 90% 点中的 10%。

然后我想要剩下的 81% 点的 10%

然后我想要剩余 73% 积分的 10%

等,直到我完成所有的点。

这是最快的方法吗:

这是我实际的全点云简化算法

0 投票
3 回答
13083 浏览

point-cloud-library - 谁能解释有组织和无组织点云之间的区别?

有组织的点云和无组织的点云有什么区别?

我认为点云是一列 [x,y,z] 值是否正确?如果点云有组织或无组织,点云的结构有什么区别?

它如何影响后面的处理步骤,如过滤、正常估计、注册等?

谢谢,赛

0 投票
3 回答
14419 浏览

algorithm - Match 3D point cloud to CAD model

I have a point cloud of an object, obtained with a laser scanner, and a CAD surface model of that object.

How can I match the point cloud to the surface, to obtain the translation and rotation between cloud and model?

I suppose I could sample the surface and try the Iterative Closest Point (ICP) algorithm to match the resulting sampled point cloud to the scanner point cloud.

Would that actually work?

And are there better algorithms for this task?