问题标签 [open3d]

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 投票
1 回答
1100 浏览

python - Open3d 中的非阻塞可视化

我有 2 个不同的点云存储在 2 个不同的 numpy 数组中,我可以将它们组合在 open3d 中进行可视化。但我想要做的是一个点云保持不变,另一个点云在 z 方向移动(即更新 numpy 数组的坐标)而不关闭窗口。

下面是我传递这两个 numpy 数组(npa 和 npa_test)以在 open3d 中可视化的代码。请注意,在最初的行中,我将 numpy 数组存储到 .pcd 文件中(因为它们是从 open3d 无法识别的不同类型的文件 .asc 中提取的),然后使用 open3d 读取函数读取它们。我想通过在 z 方向上移动它来更新一个点云几何,然后在同一个窗口上可视化它而不关闭它。这可以通过在 for 循环中将 z 坐标更新 1 来完成,如下所述。如果您对此有解决方案,请告诉我。谢谢你。

def 绘制(npa,npa_test):

0 投票
2 回答
1139 浏览

python - 我应该如何绘制 XYZ 数据点以在 python 中创建 RGB 深度图像

我正在做一个小项目,给我一个二维的 XYZ 数据数组。以这种方式:

其中x代表数组的列,y代表数组的行,z代表数组的内容,也就是距离。我想要完成的是使用 2d 数组并以 RGB 绘制深度图像。详细地说,距离 (z) 值越接近,我希望将点绘制为红色。随着距离(z)值的增加,我想根据距离的大小将其绘制为黄色、绿色或蓝色。

我添加了一张示例图片以便更好地说明。
深度图像

我正在尝试在 python 中完成此操作。我尝试研究它,但大多数时候我发现如何从深度图像或点云中提取 XYZ 数据,而不是使用 XYZ 数据来绘制深度图像。

请让我知道这是否可行,或者有哪些 python 库可以实现这一点。

谢谢你。

编辑:我相信注意到二维阵列由测距仪传感器生成的点云数据组成可能会有所帮助。我希望能够使用数据点构建扫描区域的静止 2d 图像。我还想利用颜色图来可视化图像的深度。

0 投票
2 回答
1534 浏览

python - 将python中的网格旋转为与向量平行

我有两个网格(称为 A 和 B),我正在使用 open3d 库在 python 中进行交互(很高兴使用import trimesh或其他东西,如果它工作得更好)。网格 A 是弯曲结构,网格 B 近似于更平坦的表面。

我需要旋转网格,使我感兴趣的表面面向相机。为了识别我需要的表面,我编写了将网格转换为点云的函数,并为网格 A 创建最佳拟合球体,为网格 B 创建最佳拟合平面。这些工作非常好,并且可以很好地匹配对象。

我需要旋转网格并且已经被如何执行旋转卡住了。

我拥有的输入数据:

对于网格 A:网格 A 的质心,其最佳拟合球体的坐标和坐标(+ 其半径) - 我想旋转网格,使其垂直于上述数据描述的矢量?

对于网格 B:网格 B 坐标的质心和最佳拟合平面的法线向量 - 我想旋转网格,使其垂直于上述数据描述的向量

0 投票
0 回答
675 浏览

python - 从点云优化 3d 表面重建

我对 o3d 很陌生,我希望有人根据我的代码向我展示 :) 我正在尝试从(少数)实验数据中重建一个表面。我希望有尽可能多的灵活性/可调性。

我的代码是这样的:

一些输出:

泊松 knn=7 大小=1.5

有法线

  1. 我担心create_from_point_cloud_poisson拟合模型选项:有没有办法调整它的参数而不仅仅是depthsize?我应该设置一个迭代过程以获得更好的转换(例如阈值)吗?如您所见,计算表面和实验点的距离相当大。

  2. 法线的估计是否正确设置?在第二个输出中,一些方向仍然非常随机。我也试过这个语法:pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.05,max_nn=20));,但它不会收敛到一个封闭的表面,只是一个平面(见下文)

法线估计

请给我关于我的代码的反馈以及如何改进它的建议。

谢谢您的支持!

0 投票
1 回答
133 浏览

c++ - Open3D 函数中的特征密集存储分段错误

我需要使用 Open3D 库对 PointCloud 进行一些操作,但它给了我分段错误,调试器没有提供有关该问题的太多信息。这很奇怪,因为相同的代码在 Windows 上工作,但在 Ubuntu 上给出了这样的错误。

GDB 回溯输出:

Valgrind 输出:

我试图用 EIGEN_DONT_ALIGN_STATICALLY 编译它,但结果是一样的。

0 投票
1 回答
197 浏览

linux - 特征分配分段错误(Open3D)

在此处输入图像描述 我正在尝试对 Pointcloud 进行一些操作,但是在调用 VoxelDownSample 函数时,我收到了分段错误信号。我看到问题是程序想要分配一些天文数量的数据,但我不知道它来自哪里,因为实际的 PointCloud 对象大小是 120。

代码:

createPointCloud 是我的函数,它从 csv 文件创建 PointCloud,它工作正常。

gdb 输出:

Valgrind 输出:

我试图从 Eigen 更改宏并更改编译器,但没有任何效果。

0 投票
1 回答
723 浏览

python - 如何使打开的stl文件不漏水

新手来了!

我有一个 STL 文件,它不是水密的,并且间隙很大,可以用修剪的封闭顶点修复。

我按照这个尝试了open3d,但出现以下错误:“ValueError:向量太长”..

有什么方法可以使网眼不透水吗?我需要计算 CoM 和惯性矩阵,但如果我的网格不是水密/封闭表面,这些值将不正确。

对于 open3d,首先我上传了 stl 文件,将其转换为 numpy,然后使用以下代码:

非常感谢任何帮助!

0 投票
1 回答
231 浏览

python - 我可以通过 Python 和 Open3D 从 .obj 文件中选择多个随机点吗

如果我想通过 Open3D 从 .obj 文件中获取一些随机点,我应该怎么做。

我测试我可以通过以下方式读取文件

但是如何从文件中选择一个点?

0 投票
1 回答
1307 浏览

python - Open3d:如何在窗口运行期间更新点云?

语境

我正在尝试从视差图中可视化 3d 点云。它与一张地图完美配合。

问题

我想更新窗口中的内容。当我调用 run() 方法时,新线程被打开,在窗口关闭之前我什么也做不了。我想清除窗口中的内容并在不关闭窗口的情况下显示新的云,所以它就像动画一样。

代码

我已经创建了 Visualizer 对象,并在上面做了所有事情。

0 投票
1 回答
387 浏览

python - 如何在点云中的 3D 边界框的 RGBD 帧序列上拥有 2D 边界框?

我通过使用 Open3d 重建系统(通过一系列 RGBD 帧制作点云)有我的对象的 3d 点云我还在点云中的对象上创建了一个 3d 边界框我的问题是我如何才能在所有对象上都有 2d 边界框在 3d 边界框的相同坐标处的 RGB 帧?我的想法是将 3d bb 投影到 2d bb 但很明显,每个帧中对象的位置都不同,所以我不知道如何使用这种方法?我感谢任何帮助或解决方案,谢谢