我使用以下函数绘制了一个点云:
def plot_pointcloud(points):
xyz = points[:, :3]
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)
# pcd.colors = o3d.utility.Vector3dVector(points[:, -1])
o3d.visualization.draw_geometries([pcd]) # Uncomment this to see the plot不过,我有两个问题:
会很感激你的帮助。
谢谢。
发布于 2021-09-06 13:47:00
为了突出你的四个点,你可以创建第二个点云,并给第一个不同的颜色。
base_point_cloud = o3d.geometry.PointCloud()
picked_point_cloud = o3d.geometry.PointCloud()
base_point_cloud.points = o3d.utility.Vector3dVector(base_3d_pts)
picked_point_cloud.points = o3d.utility.Vector3dVector(picked_3d_pts)
picked_point_cloud.colors = o3d.utility.Vector3dVector(picked_3d_pts)
o3d.visualization.draw_geometries([picked_point_cloud, point_cloud, axis_mesh])其中base_3d_pts和picked_3d_pts是numpy数组中的3D点。
下面显示了一个截图示例:
发布于 2022-05-18 13:25:12
您可以创建这样的函数并将其传递给它。
def create_geometry_at_points(points):
geometries = o3d.geometry.TriangleMesh()
for point in points:
sphere = o3d.geometry.TriangleMesh.create_sphere(radius=0.005) #create a small sphere to represent point
sphere.translate(point) #translate this sphere to point
geometries += sphere
geometries.paint_uniform_color([1.0, 0.0, 0.0])
return geometries然后打电话:
highlight_pnts = create_geometry_at_points(pcd.points)
o3d.visualization.draw_geometries([pcd, highlight_pnts])用点绘制立方体:
box = o3d.geometry.TriangleMesh.create_box(width=1.0, height=1.0, depth=1.0, create_uv_map=False, map_texture_to_each_face=False)
box.translate(centre point for box)
o3d.visualization.draw_geometries([pcd, highlight_pnts, box])https://stackoverflow.com/questions/68016435
复制相似问题