open3d点云变换
将点云平移到点云中心
import os import numpy as np import io_ply from tqdm import tqdm import open3d as o3d root_original = '../data/original' root_train = '../data/train' rooms = sorted(os.listdir(root_original)) #获取文件夹下所有的文件和文件夹名称 rooms = [room for room in rooms if 'model_' in room] rooms_split = [room for room in rooms if not 'model_{}'.format(5) in room] for room_name in tqdm(rooms_split, total=len(rooms_split)): room_path = os.path.join(root_original, room_name) #print(room_path) room_data = io_ply.read_ply(room_path) points = room_data['coords'] colors = room_data['colors']/255 centroid_A = np.mean(points, axis=0) print(centroid_A) #归到点云中心 AA = points - centroid_A # 创建Open3D的点云对象 point_cloud = o3d.geometry.PointCloud() point_cloud.points = o3d.utility.Vector3dVector(AA) point_cloud.colors = o3d.utility.Vector3dVector(colors) # 可视化点云 o3d.visualization.draw_geometries([point_cloud]) #print(points.shape)# 输出数组的形状(行列数) coord_min, coord_max = np.amin(AA, axis=0)[:3], np.amax(AA, axis=0)[:3] transfrom_path = os.path.join(root_train, room_name) o3d.io.write_point_cloud(transfrom_path, point_cloud, 'auto', False)
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2015-02-08 WCF第一个Demo