问题标签 [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.
python - 如何将点云转换为 Hdf5
我可以将任何数据转换为 hdf5。但我有一个 3D 数据,我无法将其正确转换为 hdf5...
我需要使用 stl 文件为 hdf5 创建 3 种不同的东西。因为生产一定不适合Modelnet40。
1.数据(X、Y、Z轴)
2.标签?
3.PID ?
python - Open3d 可以在 RGB 模式下可视化点云吗?
我在 Open3D 中找到了几个关于从 RGB-D 图像中可视化点云的教程。但我只得到了灰度模式的结果。这是我的示例代码:
结果示例可以在http://www.open3d.org/docs/release/getting_started.html#running-open3d-tutorials找到。Open3D 是否支持在 RGB 模式下可视化点云。如果没有,您会在 Python 中推荐什么库?
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。使用浮点数重新投影效果更好
结果图像:
我该怎么做才能获得可用的结果?我什至不知道图像应该是什么样子。我的校准似乎关闭了吗?我觉得图像真的很糟糕(因为透视失真很大),但不幸的是我必须处理这些
一些代码存根:
python - 使用 Open3D 从图像生成点云时出现空白屏幕
所以我尝试在 python 中使用 Open3D 库创建一个点云,最后,它基本上只是这里引用的 2 行,但是当我运行我的代码(见下文)时,我得到的只是一个弹出的白屏。我已经在 Jupyter 笔记本中运行它,但是从控制台在 python 脚本中运行它并没有改变任何东西,也没有引发错误。我应该提一下,我在 Blender 中创建了图像并将其保存为 OpenExr,这意味着深度值范围在 0 到 4 之间(我已将其截断为 4 作为背景)。您可以在下面看到它们是正确的图像,我还可以将它们转换为 Open3D 图片并毫无问题地显示它们。
编辑(27-03-2020):添加了完整的最小示例
请忽略导入数据的 hacky 方式,因为我是 Open3D 新手并自己生成数据,我一步一步地进行检查和确认数据完整性
我认为这可能与我的针孔相机参数有关。Tbh,我不知道什么是合适的参数,除了 cy, cy 应该是图像的中心并且 fx, fy 应该是合理的。由于我的深度值以 Blender 米为单位,但 Open3D 显然需要毫米,因此缩放应该是有意义的。
如果您能给我调试它的任何帮助,我将不胜感激。但是,如果您要向我指出一个更好的工作库以从图像创建 3D 点云的方向,我也不介意。我在 Open3D 中找到的文档充其量是缺乏的。
graph - 从邻接列表快速创建 Scipy 稀疏矩阵
我正在尝试从邻接列表创建一个 networkx 图。我目前正在做以下这很慢。我查看了 scipy.sparse 矩阵选项,据我所知,没有一个与我正在使用的格式相同。由于 adj 中的每个项目都可以有不同的长度,这很复杂。
o3dmesh.adjacency list 返回集合列表。集合 adjacency_list[i] 包含顶点 i 的相邻顶点的索引。没有行、列索引,只有绝对索引。
python-3.6 - 使用英特尔实感 D435 摄像头进行体积估计
我目前正在从事一个需要(几乎)实时进行体积估计的项目。我有一台 Intel RealSense D435 深度摄像头。从上面可以看到物体(主要是一堆盒子)。我想使用 pyrealsense2 点云功能估计这些对象的体积,但我找不到任何方法。
我查看了 intel realsense GitHub 页面上的代码示例,但它们根本没有帮助。我尝试使用 PCL 及其 Python 包装器,但包装器在 Ubuntu 18.04 上不稳定。我也尝试使用 Open3D 并估计点云的边界框的体积,但结果根本不准确(在两帧内从 14 移动到 253)。
我在这个时代还很陌生,真的不知道去哪里寻找或尝试改进什么。有什么建议么 ?
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
这是整个代码
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