问题标签 [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 投票
0 回答
520 浏览

python - 如何将点云转换为 Hdf5

我可以将任何数据转换为 hdf5。但我有一个 3D 数据,我无法将其正确转换为 hdf5...

我需要使用 stl 文件为 hdf5 创建 3 种不同的东西。因为生产一定不适合Modelnet40。

1.数据(X、Y、Z轴)

2.标签?

3.PID ?

0 投票
1 回答
4141 浏览

python - Open3d 可以在 RGB 模式下可视化点云吗?

我在 Open3D 中找到了几个关于从 RGB-D 图像中可视化点云的教程。但我只得到了灰度模式的结果。这是我的示例代码:

结果示例可以在http://www.open3d.org/docs/release/getting_started.html#running-open3d-tutorials找到。Open3D 是否支持在 RGB 模式下可视化点云。如果没有,您会在 Python 中推荐什么库?

0 投票
0 回答
714 浏览

python - 点云的视差图已关闭

我正在尝试使用 Python 和 OpecCV 从两个图像中进行 3D 人脸重建。我设法使用此处链接中的指令执行相机校准,然后应用cv2.stereoCalibrate()cv2.stereoRectify()。之后,cv2.StereoSGBM用于计算视差图,最后cv2.reprojectImageTo3D用于生成点云。后者使用open3d库显示。但是,结果StereoSGBM.compute()非常嘈杂,生成的点云看起来不像它应该的那样。

我尝试过的事情:

  • 对视差图进行归一化:该算法输出一个二维数组,其值介于 -16 和 240 之间,因此我将其分别调整为 0 和 255 之间以及 0.0 和 1.0 之间。第一个选项更好
  • 将值除以 16(正如我在 C++ 实现中看到的那样)
  • 调整 StereoSGBM 的参数。我什至建立了一个 GUI 来调整参数,但结果仍然不令人满意
  • 使用 StereoBM,但没有太大区别
  • 使用不同的测试图像
  • 使用灰度图像
  • 将它们标准化在 0.0 -> 1.0 范围内
  • 裁剪未失真的图像
  • 重新实现cv2.reprojectImageTo3D,结果相同
  • 手动移除视差图中的背景
  • 使用 uint8 和 float32。使用浮点数重新投影效果更好

结果图像:

  • 最初的:
    左图 右图

  • 校准后:
    不失真的左 不失真的权利

  • 视差图(右侧的参数):
    差距 参数

  • 点云(从一个非常特定的角度看起来像人类):
    点云

我该怎么做才能获得可用的结果?我什至不知道图像应该是什么样子。我的校准似乎关闭了吗?我觉得图像真的很糟糕(因为透视失真很大),但不幸的是我必须处理这些

一些代码存根:

0 投票
2 回答
3142 浏览

python - 使用 Open3D 从图像生成点云时出现空白屏幕

所以我尝试在 python 中使用 Open3D 库创建一个点云,最后,它基本上只是这里引用的 2 行,但是当我运行我的代码(见下文)时,我得到的只是一个弹出的白屏。我已经在 J​​upyter 笔记本中运行它,但是从控制台在 python 脚本中运行它并没有改变任何东西,也没有引发错误。我应该提一下,我在 Blender 中创建了图像并将其保存为 OpenExr,这意味着深度值范围在 0 到 4 之间(我已将其截断为 4 作为背景)。您可以在下面看到它们是正确的图像,我还可以将它们转换为 Open3D 图片并毫无问题地显示它们。

编辑(27-03-2020):添加了完整的最小示例

请忽略导入数据的 hacky 方式,因为我是 Open3D 新手并自己生成数据,我一步一步地进行检查和确认数据完整性

我尝试使用一些统计数据的图片

我认为这可能与我的针孔相机参数有关。Tbh,我不知道什么是合适的参数,除了 cy, cy 应该是图像的中心并且 fx, fy 应该是合理的。由于我的深度值以 Blender 米为单位,但 Open3D 显然需要毫米,因此缩放应该是有意义的。

如果您能给我调试它的任何帮助,我将不胜感激。但是,如果您要向我指出一个更好的工作库以从图像创建 3D 点云的方向,我也不介意。我在 Open3D 中找到的文档充其量是缺乏的。

0 投票
1 回答
646 浏览

graph - 从邻接列表快速创建 Scipy 稀疏矩阵

我正在尝试从邻接列表创建一个 networkx 图。我目前正在做以下这很慢。我查看了 scipy.sparse 矩阵选项,据我所知,没有一个与我正在使用的格式相同。由于 adj 中的每个项目都可以有不同的长度,这很复杂。

o3dmesh.adjacency list 返回集合列表。集合 adjacency_list[i] 包含顶点 i 的相邻顶点的索引。没有行、列索引,只有绝对索引。

0 投票
0 回答
302 浏览

python-3.6 - 使用英特尔实感 D435 摄像头进行体积估计

我目前正在从事一个需要(几乎)实时进行体积估计的项目。我有一台 Intel RealSense D435 深度摄像头。从上面可以看到物体(主要是一堆盒子)。我想使用 pyrealsense2 点云功能估计这些对象的体积,但我找不到任何方法。

我查看了 intel realsense GitHub 页面上的代码示例,但它们根本没有帮助。我尝试使用 PCL 及其 Python 包装器,但包装器在 Ubuntu 18.04 上不稳定。我也尝试使用 Open3D 并估计点云的边界框的体积,但结果根本不准确(在两帧内从 14 移动到 253)。

我在这个时代还很陌生,真的不知道去哪里寻找或尝试改进什么。有什么建议么 ?

0 投票
3 回答
4637 浏览

python - Open3D - 用多边形体积裁剪点云

每个人,

我想从点云中裁剪并保存一个区域并保存它。

我有 BBox Coordinats (maxx,maxy,minx,miny),它们是 Pointcloud 的 MaxP 和 MinP,我想用它制作一个多边形。用bbox_to_Polygon(MaxP,MinP) BBox 坐标转换成角点。这些应该用于创建两个多边形。为此,我用 pyny3D制作了一个多面体。

现在我可以给 open3d.visualization.SelectionPolygonVolume() 提供一个 Volume,我想。我不想使用像 Open3d Docs Crop from Cloud中描述的 JSON 文件。所以我发现了这个How to Create a open3d.visualization.SelectionPolygonVolume Object without Loading a json Filel

为什么是orthogonal_axis="Y"?为什么不只是“Z”轴?在JSON 文件的示例中,Y 值为 0。我建议因为orthogonal_axis="Y"但我不明白为什么?我们不需要 PolygonVolume 吗?

我会很感激一些帮助。

我正在使用 Google Colab 和 Jupyter Notebook Python 3.6

这是整个代码

0 投票
1 回答
314 浏览

computer-vision - Open3d:如何创建 icosphere/测地线多面体球体?

我试图在 open3d 中创建一个 icosphere。我在 TriangleMesh 中尝试了“create_sphere”函数,但由于某种原因,网格是由矩形而不是三角形组成的:

如您所见,球体不是由三角形组成的。如何生成三角形的icosphere?

在此处输入图像描述

0 投票
1 回答
2076 浏览

python - STL 到点云

我正在尝试使用 open3d lib 将 stl 文件转换为点。

问题是需要加载 mesh.surfaces 而不是顶点,但我看不到 open3d.open3d.geometry.TriangleMesh.Surface 对象。我需要对齐曲面而不是顶点。

如何从三角形网格中获取点?

输入

输出

0 投票
0 回答
206 浏览

python - open3d 中的 draw_geometries 函数使程序崩溃并出现以下错误:进程以退出代码 -1073741819 (0xC0000005) 完成

我正在尝试阅读一个简单的 .pcd 点云并使用 open3d 将其可视化。代码崩溃并出现以下错误: Process finished with exit code -1073741819 (0xC0000005)

我正在使用 Windows 10、python 3.7.6、open3d 版本 0.7.0