问题标签 [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 回答
410 浏览

python - 如何在 Open3D 中裁剪/分割网格

是否可以根据顶点阈值在 Open3D 中分割网格?

例如,我需要将网格分成两个 stl 输出,一个 z 顶点小于某个值(x 和 y 贯穿整个域),第二个 stl 具有剩余 z 顶点。

在 Open3D 文档中,有一种方法可以裁剪网格。但它是根据分配的三角形。以下是网站本身的代码。

那么,基于此,我如何相对于顶点裁剪/分割网格?我可以使用 mesh.vertices 访问顶点。

任何线索将不胜感激。

问候, Sunag R A.

0 投票
0 回答
476 浏览

python - 在非阻塞模式下更新 Open3D 上一组几何图形的可视化

我正在尝试open3d==0.12.0使用vis.update_geometry(geometry)更新单个几何图形来更新一组几何图形。open3d==0.7.0但是,与使用vis.update_geometry()更新所有几何图形相比,当前的解决方案有点慢。还有其他解决方案吗?这是我目前的解决方案:

0 投票
1 回答
1631 浏览

python - 如何从 open3d.geometry.OrientedBoundingBox 获取方向?

我从 Velodyne Lidar(旋转激光传感器)的集群子点云创建了一个定向边界框。我想获得边界框的方向(最好作为四元数)。

文档没有这样的方法:http ://www.open3d.org/docs/latest/python_api/open3d.geometry.OrientedBoundingBox.html

这令人困惑。为什么定向边界框显然没有方向?

0 投票
1 回答
2038 浏览

python - open3d计算网格和点云之间的距离

对于一个研究项目,我尝试进行点云比较。为了简短起见,我有一个 CAD 文件 (.stl) 和几个由激光扫描仪创建的点云。现在我想计算 CAD 文件和每个点云之间的差异。

首先,我从 Cloud Compare 开始,这有助于获得基本的理解。(减少点、删除重复项、创建网格并比较距离)

在 python 中,我能够导入文件并进行一些基本计算。但是,我无法计算距离。

这是我的代码:

#calculate the distance 给了我这个错误:“TypeError:compute_point_cloud_distance():不兼容的函数参数。支持以下参数类型:1.(self:open3d.cpu.pybind.geometry.PointCloud,target:open3d.cpu.pybind。几何.PointCloud) -> open3d.cpu.pybind.utility.DoubleVector"

问题:需要对网格和点云进行哪些预转换来计算它们的距离?有没有推荐的方法来显示差异?

到目前为止,我只使用了下面的可视化线

0 投票
1 回答
289 浏览

python - 将面部姿势的点云组合成 3d 网格

使用带有 TrueDepth 传感器的 iPhone 相机,我能够在我的脸部图像中捕捉准确的深度数据。我正在从正面、左侧和右侧(大约旋转 30 度)捕获深度,并且头部稍微向上倾斜以捕获下巴下方(总共 4 个深度图像)。我们在这里只捕捉深度,所以没有颜色信息。我们正在使用椭圆框裁剪不重要的数据

我们还使用 ARKit 为我们提供了面部锚点的变换,这与面部的变换相同,参考:https ://developer.apple.com/documentation/arkit/arfaceanchor 。不可能同时捕获深度图像和面部变换,因为它们来自不同的捕获会话。所以我们必须拍摄深度图像,然后在用户保持面部不动的情况下快速切换会话以获得面部锚点变换。世界对齐设置为.camera因此面部锚点变换应该相对于相机,而不是世界原点。

我们最终得到了 4 个如下所示的点云: 左右:下巴向上,左侧 30,向前,右侧 30抬起下巴,左,前,右

我们还得到了 4 个变换。我们正在尝试使用 python 中的 open3d 将它们的点云缝合在一起以制作平滑的面部网格。

到目前为止的过程如下:

  1. 读取点云和变换
  2. 对点云应用逆变换以返回到相机的原始位置

我原以为这些点云大致位于同一位置,但实际上却发生了这种情况:变换 1 后 变身2后

如您所见,这些面仍然彼此偏移:变形后 3

我是否使用了错误的转换?

python 代码和示例点云和变换在这里:https://github.com/JoshPJackson/FaceMesh但重要的一点如下:

我希望将所有点云合并在一起,这样我就可以删除重复的顶点,然后制作一个网格

0 投票
0 回答
108 浏览

android - 在 Android Studio 中使用 Open3d

我有一个问题,我应该在 android 应用程序中使用 open3d。我使用了诸如https://github.com/pezcode/open3d-core-android之类的资源来编译它并生成要在应用程序中使用的相应 .so 文件。我在使用 android studio 时遇到问题。我需要一个集成了 open3d 的示例 android 应用程序。任何链接或资源都会有很大的帮助。

0 投票
1 回答
115 浏览

python - 在 Open3d 中从点云创建 rgbd_image

我在 Open3d 中的管道中添加了一些过滤和其他预处理步骤。

但是我最终得到了一个点云,但是 o3d.pipelines.odometry.compute_rgbd_odometry() 接受了 rgbd_images。

如何将点云转换为 rgbd 图像,或者如果这不可能,请采取一种解决方法将点云存储为深度 png 并使用 o3d.io.read_image() 读取它

0 投票
0 回答
24 浏览

surface - 如何将重建网格中的点作为隐式函数?即使不是使用open3D的点云点

我对使用 open3D 从点云进行 3D 重建很感兴趣。我的目的是创建一个隐式函数,它在给定 (x,y) 的网格中输出 z_value。即f(x,y)=z。

所以我可以通过使用 TriangleMesh ball_pivoting,poisson,... 从点云中重建,我得到了一个非常有用的重建,一些点被移除了很多平滑。如前所述,我想仅在给定 (x,y) 的情况下从该重建中估计 z 值。简单画图, 在这里输入图片描述 看起来像是拟合曲面或获取隐函数。我查看了 open3d 中的所有方法,但找不到相关的方法。你可以帮帮我吗?

0 投票
2 回答
1140 浏览

python - Intersection between 2d image point and 3d mesh

Given: Mesh, Source Camera - I have intrinsic and extrinsic parameters, Image coordinate 2d

Output: 3D point, which is the intersection of a ray from camera center, through the 2d point on the image plane and the mesh. (I'm trying to find the 3d point on the mesh)

This is the process: enter image description here

From Multiple View Geometry in Computer Vision book: enter image description here

I have constructed the equation (6.14).

I'm not sure how to continue and get the 3d point that lies on the mesh (I also need the point that is closet to the camera).

I thought that it can be done in the following way:

Iterate over all the vertices and find the distance between the vertex and the line and the vertices that have the least distance lie on the line (if they're close to zero or zero), and finding the closet vertex is I guess finding the magnitude of between the center of the camera and the closet vertices, the smallest one will mean the point is the closest?

Quick update: This repo does seem to work with the rays: github.com/szabolcsdombi/python-mesh-raycast

I guess the bug now lies in getting the point D right..

0 投票
1 回答
223 浏览

python - 我不能使用 open3d open obj

当我使用“mesh = o3d.io.read_triangle_mesh("data/1.obj")”时,我得到“[Open3D WARNING] Unable to load file data/1.obj with ASSIMP”。用 numpy 加载这个 obj 没有问题。有谁知道是什么问题?