open3d 相机参数重设
目的:批量读取文件内的点云文件,转到主视角方向,并截图
遇到问题:[Open3D WARNING] GLFW Error: The GLFW library is not initialized
应该是相机参数重设的问题。
代码:
import open3d as o3d
import numpy as np
import os
import glob
dir_path = r'./rec/*'
rec_files = [file for file in glob.iglob(dir_path)]
for i in range(len(rec_files)):
pcd = o3d.io.read_point_cloud(rec_files[i])
pcd.estimate_normals()
centroid = pcd.get_center()
points = np.asarray(pcd.points) - centroid
cov = np.cov(points.T)
eigenvalues, eigenvectors = np.linalg.eig(cov)
idx = eigenvalues.argsort()[::-1]
eigenvalues = eigenvalues[idx]
eigenvectors = eigenvectors[:, idx]
main_direction = eigenvectors[:, 0]
vis = o3d.visualization.Visualizer()
vis.create_window(width=400,
height=400,
left=10,
top=10
)
vis.update_geometry(pcd)
vis.add_geometry(pcd)
vis.get_render_option().point_size = 2
vis.get_render_option().show_coordinate_frame = False
vis.get_view_control().set_front(main_direction)
view_control = vis.get_view_control()
view_control.set_zoom(1.2)
vis.capture_screen_image(f"./rec/rec_{i}.png", do_render=True)
vis.update_geometry(pcd)
vis.reset_view_point(True)
vis.poll_events()
vis.update_renderer()
vis.destroy_window()
只有第一张图片能转换,其他的都是黑的