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)
复制代码

 

posted @   太一吾鱼水  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2015-02-08 WCF第一个Demo
点击右上角即可分享
微信分享提示