如何解决在 R 中使用 PCA 绘制 3D 平面
我正在尝试计算表示 R 中动物足迹的 3D 网格的对称平面。
我已经运行了下面的脚本,但不幸的是它在我的情况下不起作用。没有错误消息,但只是没有在 rgl 窗口中绘制平面:
library(Rvcg)
library(rgl)
path_ply <- "/Volumes/eTrack/eTrack - Segmented 3D models"
filelist_ply1 <- list.files(path_ply,pattern = ".ply",full.names = TRUE)
i=1
filelist_ply1[i]
#Read 3D mesh (.ply)
Specimen <- vcgPlyRead(filelist_ply1[i],updatenormals = TRUE,clean = TRUE)
#Remove unwanted components
Specimen <- vcgIsolated(
Specimen,facenum = NULL,diameter = NULL,split = FALSE,keep = 1,silent = FALSE)
X <- t(Specimen$vb[1:3,])
#Demeaning the variables
mean_vec <- colMeans(X)
X_demeaned <- matrix(NA,ncol = 3,nrow = length(X[,1]))
X_demeaned[,1] <- X[,1]-mean_vec[1]
X_demeaned[,2] <- X[,2]-mean_vec[2]
X_demeaned[,3] <- X[,3]-mean_vec[3]
cov.X=cov(X_demeaned)
eigen_vectors <- eigen((cov.X))$vectors
eigen_values <- eigen((cov.X))$values
eigen_vectors
eigen_values
a <- eigen_vectors[1,3]
b <- eigen_vectors[2,3]
c <- eigen_vectors[3,3]
d <- a * mean_vec[1] + b * mean_vec[2] + c * mean_vec[3]
open3d()
plot3d(X[,1],X[,2],3],type = "p",col = "red",size = 1)
rgl.planes(a,b,c,d,alpha=0.2,color = "#D95F02")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。