Open3d Python,使用三角形网格键入错误。从点创建点,从云创建alpha形状()

Open3d Python,使用三角形网格键入错误。从点创建点,从云创建alpha形状(),python,typeerror,computational-geometry,open3d,Python,Typeerror,Computational Geometry,Open3d,我正在尝试使用open3d,使用TriangleMesh围绕一组3d点创建一个“alphahull”。然而,我得到一个打字错误 import open3d as o3d import numpy as np xx =np.asarray([[10,21,18], [31,20,25], [36,20,24], [33,19,24], [22,25,13], [25,19,24], [22,26,10],[29,19,24]]) cloud = o3d.geometry.PointCloud

我正在尝试使用open3d,使用
TriangleMesh
围绕一组3d点创建一个“alphahull”。然而,我得到一个打字错误

import open3d as o3d
import numpy as np 

xx =np.asarray([[10,21,18], [31,20,25], [36,20,24], [33,19,24], [22,25,13], [25,19,24], [22,26,10],[29,19,24]])

cloud = o3d.geometry.PointCloud()
cloud.points = o3d.utility.Vector3dVector(xx)
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd=cloud, alpha=10.0)
输出:

    Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: create_from_point_cloud_alpha_shape(): incompatible function arguments. The following argument types are supported:
1. (pcd: open3d.open3d.geometry.PointCloud, alpha: float, tetra_mesh: open3d::geometry::TetraMesh, pt_map: List[int]) -> open3d.open3d.geometry.TriangleMesh
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:create_from_point_cloud_alpha_shape():函数参数不兼容。支持以下参数类型:
1.(pcd:open3d.open3d.geometry.PointCloud,alpha:float,tetra_网格:open3d::geometry::TetraMesh,pt_地图:列表[int])->open3d.open3d.geometry.TriangleMesh
错误表明我传递函数的对象类型错误。但当我检查类型时,我得到以下信息:

>>print(type(cloud))
<class 'open3d.open3d.geometry.PointCloud'>
打印(类型(云)) 有人能帮我解决这个错误吗

注意:这篇文章中的一条评论建议可能是安装有问题,解决方案是从源代码处编译库。所以我从源代码处编译了这个库。在这之后
制作安装pip软件包
。虽然我不确定它是否正确完成,因为我还不能用python导入open3d;请参见安装输出:
(我不确定该命令是否应该完成安装,或者您是否仍然需要运行pip?在我运行
python3-m pip安装Open3d之后,我可以用python导入库。)

当前版本(v0.9.0)绑定中的Bug:

tetra_mesh, pt_map = o3d.geometry.TetraMesh.create_from_point_cloud(pcd)
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd, alpha, tetra_mesh, pt_map)

主机的修复:

tetra_mesh, pt_map = o3d.geometry.TetraMesh.create_from_point_cloud(pcd)
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd, alpha, tetra_mesh, pt_map)

解决方法:

tetra_mesh, pt_map = o3d.geometry.TetraMesh.create_from_point_cloud(pcd)
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd, alpha, tetra_mesh, pt_map)