I am trying to use open3d to create an “alphahull” around a set of 3d points using
TriangleMesh. However I get a TypeError.
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
The error says the object I am passing the function is the wrong type. But when I check the type I get this:
>>print(type(cloud)) <class 'open3d.open3d.geometry.PointCloud'>
Please can someone help me with this error?
Note: A comment on this post https://stackoverflow.com/questions/58174767/python-open3d-no-attribute-create-coordinate-frame suggested it might be a problem with the installation and that a solution was to compile the library from source. So I compiled the library from source. After this ran
make install-pip-package. Though I am not sure it completed correctly because I couldn’t
import open3d in python yet; see output of installation: https://pastebin.com/sS2TZfTL
(I wasn’t sure if that command was supposed to complete the installation, or if you were still required to run pip? After I ran
python3 -m pip install Open3d I could import the library in python.)