Open3d Python 问题:没有属性'estimate_normals'



我正在Windows上使用open3d for python3。它是通过 pip 通过'pip install open3d-python'安装的。我已经检查了文档,我的脚本似乎一切正常,它尝试将点云文件 (.ply( 转换为网格 (.stl(。但是,在执行时,我得到了一个attribute error: 'open3d.open3d.geometry.PointCloud' has no attribute 'estimate_normals'.任何帮助将不胜感激。 谢谢

这是我的脚本

import open3d as o3d
import trimesh
import numpy as np
pcd = o3d.io.read_point_cloud("pointcloud.ply")
pcd.estimate_normals()
#pcd = pcd2.normals
# estimate radius for rolling ball
distances = pcd.compute_nearest_neighbor_distance()
avg_dist = np.mean(distances)
radius = 1.5 * avg_dist
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcd,o3d.utility.DoubleVector([radius, radius * 2]))
trimesh = trimesh.Trimesh(np.asarray(mesh.vertices), np.asarray(mesh.triangles),vertex_normals=np.asarray(mesh.vertex_normals))
trimesh.export('stuff.stl')

编辑

我在某处读到从源代码编译原始包可以解决问题,但我是 mac 用户,并且正在尝试在 Windows 上执行此操作,所以我无法弄清楚如何做到这一点。 这是包 https://github.com/intel-isl/Open3D 的 GitHub 链接

我遇到了同样的问题,发现问题是由于通过pip install open3d-python安装的错误版本的open3d而发生的。对我来说,这很v0.6.0. 该文档基于新版本。从版本v0.8.0开始,open3d 应作为 conda 的pip install open3dconda install -c open3d-admin open3d安装。在发布中找到该信息。它解决了我Mac上的问题。

这对我有用:

  1. 卸载作为open3d安装的不同版本的 open3d 并open3d-python
    pip uninstall open3d open3d-python
  2. 安装open3d 0.8
    pip install open3d==0.8.0.0
  3. 计算表面法线:
    pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
  4. 当显示窗口打开以查看法线:
    o3d.visualization.draw_geometries([pcd])时,按n来可视化曲面法线

相关内容

  • 没有找到相关文章

最新更新