Open3D对产生偏差的点云数据进行校正

本文介绍了如何通过处理相机安装问题,使点云数据中的翘起部分变得平整。作者使用Open3D库读取点云,利用NumPy和Scipy函数对数据进行校准,并展示了校准前后点云的对比图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于相机安装问题,导致点云数据两边翘起来,为了计算把翘起来的部分拉平整 

import time
import open3d as o3d;
import numpy as np;
import matplotlib.pyplot as plt
from scipy.signal import find_peaks
import pandas as pd
 
OriginalPly = o3d.io.read_point_cloud("source/Glue4.ply") 

#对点云进行变形后校准
tic = time.time() 

# 将点云转换为NumPy数组
points = np.asarray(OriginalPly.points)

# 创建一个新的数组来存放调整后的点
new_points =np.asarray(OriginalPly.points) # np.zeros_like(points)

for x in np.unique(points[:, 0]): 

    x_indices = np.where(points[:, 0] == x) 
    min_z = np.min(points[x_indices, 2])
    new_points[x_indices, 2]   = new_points[x_indices, 2] +100-min_z 

# 将调整后的点重新赋值给点云对象
    
toc = 1000 * (time.time() - tic)
print("点云校准耗时 {:.0f} [ms]".format(toc))
calibrationPly = o3d.geometry.PointCloud()
calibrationPly.points = o3d.utility.Vector3dVector(new_points) 

 
o3d.visualization.draw_geometries([ cali
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值