下面展示一些 内联代码片
。
// An highlighted block
import open3d as o3d
import numpy as np
print('input')
N = 2000
mesh = o3d.io.read_triangle_mesh("./0_bum_vol.ply")
pcd = mesh.sample_points_poisson_disk(N)
# fit to unit cube
pcd.scale(1 / np.max(pcd.get_max_bound() - pcd.get_min_bound()),
center=pcd.get_center())
pcd.colors = o3d.utility.Vector3dVector(np.random.uniform(0, 1, size=(N, 3)))
o3d.visualization.draw_geometries([pcd], window_name="点云",
width=800, height=800,
left=50, top=50,
mesh_show_back_face=False) # 显示点云
# print('voxelization')
voxel_grid = o3d.geometry.VoxelGrid.create_from_point_cloud(pcd,
voxel_size=0.04)
queries = np.asarray(pcd.points)
output = voxel_grid.check_if_included(o3d.utility.Vector3dVector(queries))
print(output[:10])
o3d.visualization.draw_geometries([voxel_grid], window_name="从点云中构建体素",
width=800, height=800,
left=50, top=50,
mesh_show_back_face=True) # 显示体素
###################################################################
# 创建一个立方体网格
# mesh = o3d.geometry.TriangleMesh.create_box()
# 设置绘图窗口并渲染
vis = o3d.visualization.Visualizer()
vis.create_window()
# 将网格添加到可视化窗口
vis.add_geometry(voxel_grid)
# 设置相机视角
ctr = vis.get_view_control()
ctr.rotate(10.0, 0.0) # 旋转相机以改变视角
# 渲染
vis.poll_events()
vis.update_renderer()
# 保存渲染的图像到当前文件夹
vis.capture_screen_image("3d_rendered_image.png")
# 关闭窗口
vis.destroy_window()