点云 PCA 分析和法向量计算的实现
1 Perform PCA for the object and visualize the result
- 点云在open 3D中展示
- 点云的主成分展示
2 Perform surface normal estimation for each point of each object,visualize it.
- 点云中各个点的法向量可视化
3 Code
import open3d as o3d
import os
import numpy as np
import pandas as pd
from pyntcloud import PyntCloud
# 功能:计算PCA的函数
# 输入:
# data:点云,NX3的矩阵
# correlation:区分np的cov和corrcoef,不输入时默认为False
# sort: 特征值排序,排序是为了其他功能方便使用,不输入时默认为True
# 输出:
# eigenvalues:特征值
# eigenvectors:特征向量
def PCA(data, correlation=False, sort=True):
X = np.asarray(data).T
X_mean = np.mean(X,axis=1).reshape(3,1)
X_head = X - X_mean
H = X_head.dot(X_head.T)
eigenvalues,eigenvectors