质心概念与重心的计算方式相同。如下所示:
乘积mr相当于一个力矩,当作用点为质心时,总的力矩等于零。以杠杆或者天平来说,力矩为零的情况就是总体达到了平衡。所以质心和重心的概念基本一致,但有所区别。
对于二维图像来说,质量m就是像素值,r为各个像素点的位置。而对于三维点云来说,m取为1,即单位重量。那么根据公式(2)可以知道,点云中各个点相对于质心的距离和为0。m为1时,公式(1)可简化为:
根据公式(3),三维点云的质心实际上是所有点云坐标的平均值。其中,位置坐标是一个三维向量,由(x,y,z)表示。
open3d提供了点云的计算方式,即get_center函数。下面可以通过该函数与矩阵平均运算来验证上面的介绍。
pcd点云数据文件请参考pcd格式点云样例文件-深度学习文档类资源-CSDN下载。
# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""
import open3d as o3d
import numpy as np
if __name__ == '__main__':
file_path = 'rabbit.pcd'
pcd = o3d.io.read_point_cloud(file_path)
pcd.paint_uniform_color([0.5, 0.5, 0.5])#指定显示为灰色
pcd.translate((0, 10, 0))#原始点云的质心为(0, 0, 0),将其平移到(0, 10, 0)
print('open3d get_center 质心计算结果', pcd.get_center())
# 采用矩阵求平均的方法计算质心
points = np.array(pcd.points)
center = np.mean(points, axis=0)
print('矩阵求平均 质心计算结果', center)
点云三角化是将点云边界的点连接成一个个三角形,相关概念可以通过进一步搜索三角剖分资料来获取。三角化相当于是边界中的三个点组成一个平面,可以近似认为这个三角平面就是目标表面的一部分。因此,点云三角化实际上是三维目标表面的一种近似方法,这种表面近似也可以通过插值来实现。
点云三角化实现了对物体边界平面的拟合,是三维重建的重要步骤。open3d提供了多种三角化三维重建的函数,这里仅简单提供其中一个函数,其他函数在后续三维重建章节中进行介绍。这个函数是TriangleMesh.create_from_point_cloud_ball_pivoting。其通过旋转球来进行实现,因而其中一个重要参数就是球的半径。
pcd点云数据文件请参考pcd格式点云样例文件-深度学习文档类资源-CSDN下载。
# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""
import open3d as o3d
import numpy as np
if __name__ == '__main__':
file_path = 'rabbit.pcd'
pcd = o3d.io.read_point_cloud(file_path)
pcd.paint_uniform_color([0.5, 0.5, 0.5])#指定显示为灰色
print(pcd)
#pcd需要有法向量
pcd.estimate_normals()
# estimate radius for rolling ball
distances = pcd.compute_nearest_neighbor_distance()
avg_dist = np.mean(distances)
radius = 6 * avg_dist
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(
pcd,
o3d.utility.DoubleVector([radius, radius * 2]))
# 点云显示
o3d.visualization.draw_geometries([mesh], #点云列表
window_name="点云三角化",
point_show_normal=False,
width=800, # 窗口宽度
height=600,
mesh_show_wireframe=True,#显示三角网格线
mesh_show_back_face=True,#显示法向量垂直被部的平面
) # 窗口高度
python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_3d点云 python从三维基础知识到深度学习,将按照以下目录持续进行更新。https://blog.csdn.net/suiyingy/article/details/124017716
更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。