问题标签 [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.
geometry - 点云库中的手动三角测量
我有一个点云,我已经执行了平面检测。现在我想对场景进行三角测量。
我已经有了每架飞机的三角剖分,看起来像这样:
我想用来Point Cloud Library
GreedyProjectionTriangulation
重建场景。所以我想调整干预重建的不同功能。
我挖掘了gp3.h
and的代码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_
所以是这样的:
如果我是对的,我可以很容易地做到这一点,因为我的飞机轮廓按正确的顺序排序。
我仍然不知道如何强制执行属于我的平面的三角形的边缘。查看代码,我认为关键在doubleEdges
向量中,但我不知道如何修改这部分以使其与我的问题相关。
algorithm - 有组织的 3d 点云数据中的连接组件
嗨!
我从 Kinect 传感器组织了点云。假设我有一个有组织的沙发点云,前面有一张桌子。我想要的是两朵云:沙发和桌子
我正在寻找一些算法来获取连接的组件。有没有人有一些伪代码或论文?或者也许一些代码(Matlab)
我现在的想法:我可以使用 2D 信息来获取一个点的相邻像素。接下来我可以检查到相邻像素的欧几里得距离。如果距离低于阈值,则该像素属于同一簇。...
谢谢
c++ - 从 Eigen::Vector 转换为 Eigen::Affine3f
我使用的代码如下:
但是当它编译翻译时,我得到了错误:
有谁知道如何转换或错误的原因是什么?谢谢。
python - 通过复制点云、放大点云并将其居中在原始云上,使点云的法线指向外部
我正在做关于点云减少的本科论文。
我需要法线指向外面。我已经为此苦苦挣扎了一段时间。
这就是我尝试的方式:我有一个对象的点云,特别是斯坦福兔子。我创建了这个对象的放大版本并将较小的版本放入其中。然后我将法线指向外部“较大”对象的方向。
如果它们不接触,我无法将较大的物体放在较小的物体上,即兔子的耳朵重叠。任何人都知道如何使较小的对象适合较大的对象。
到目前为止,这是我的代码:
python - 缩放对象的点云并将其居中在原始对象上,确保它们不相交
我有一个兔子点云 - 虽然可以是任何对象。
我想把较大的兔子直接放在较小的兔子身上。想想具有不同层次的俄罗斯套娃。问题是让外层完美地贴合内层。主体可能不会重叠,但耳朵会重叠。
这是我的代码:
numpy - 将平面拟合到点 - 我怎么知道它是否正确?
我正忙于研究点云简化算法。
下面是计算点邻域的法线的代码。我使用了主成分分析。
我想知道我是否正确计算了点的法线和曲率?
我知道法线是无方向的,我的下一步是使用网络 x 创建一个图(从每个点到最近的邻居的边),用 1-|ni*ni+1| 对每条边进行加权 . 然后创建一个最小生成树,然后通过从最高 z 值点开始并在 ni*ni+1=-1 时翻转 ni+1 的方向来启动深度搜索。我将使用 networkx ,这样我就可以实现全球一致的方向。这是最好的方法吗?
谢谢
performance - 如何有效地获得 10% 的随机数,然后是剩余 90 的 10% 等,直到分配所有点
这就是我想要做的:
我有300 000分。
我想要10%的分数。
然后我想要剩下的 90% 点中的 10%。
然后我想要剩下的 81% 点的 10%
然后我想要剩余 73% 积分的 10%
等,直到我完成所有的点。
这是最快的方法吗:
这是我实际的全点云简化算法
point-cloud-library - 谁能解释有组织和无组织点云之间的区别?
有组织的点云和无组织的点云有什么区别?
我认为点云是一列 [x,y,z] 值是否正确?如果点云有组织或无组织,点云的结构有什么区别?
它如何影响后面的处理步骤,如过滤、正常估计、注册等?
谢谢,赛
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?