Open3Dの使い方
https://tech-deliberate-jiro.com/downsampling-grid/
Stanford bunnyのダウンロード
使うのは bunny/reconstruction/bun_zipper.ply
graphics.stanford.edu
import open3d as o3d import numpy as np import plotly.graph_objects as go print("Load a ply point cloud, print it, and render it") f = './bun_zipper.ply' pcd = o3d.io.read_point_cloud(f) points = np.asarray(pcd.points) pcd1 =pcd.voxel_down_sample(voxel_size=0.00818) points1 = np.asarray(pcd1.points) pcd2 =pcd.voxel_down_sample(voxel_size=0.01818) points2 = np.asarray(pcd2.points) pcd3 =pcd.voxel_down_sample(voxel_size=0.02818) points3 = np.asarray(pcd3.points) print(pcd) print(pcd1) print(pcd2) print(pcd3) fig = go.Figure( data=[ go.Scatter3d( x=points[:,0], y=points[:,1], z=points[:,2], mode='markers', marker=dict(size=2, color=colors) ) ], layout=dict( scene=dict( xaxis=dict(visible=False), yaxis=dict(visible=False), zaxis=dict(visible=False) ) ) ) fig1 = go.Figure( data=[ go.Scatter3d( x=points1[:,0], y=points1[:,1], z=points1[:,2], mode='markers', marker=dict(size=2, color=colors) ) ], layout=dict( scene=dict( xaxis=dict(visible=False), yaxis=dict(visible=False), zaxis=dict(visible=False) ) ) ) fig2 = go.Figure( data=[ go.Scatter3d( x=points2[:,0], y=points2[:,1], z=points2[:,2], mode='markers', marker=dict(size=2, color=colors) ) ], layout=dict( scene=dict( xaxis=dict(visible=False), yaxis=dict(visible=False), zaxis=dict(visible=False) ) ) ) fig3 = go.Figure( data=[ go.Scatter3d( x=points3[:,0], y=points3[:,1], z=points3[:,2], mode='markers', marker=dict(size=2, color=colors) ) ], layout=dict( scene=dict( xaxis=dict(visible=False), yaxis=dict(visible=False), zaxis=dict(visible=False) ) ) ) fig.show() fig1.show() fig2.show() fig3.show()
Load a ply point cloud, print it, and render it PointCloud with 35947 points. PointCloud with 1178 points. PointCloud with 241 points. PointCloud with 96 points.
35497点
1178点
241点
96点