我使用R并试图计算给定点云的回归平面,并旋转点云(和回归平面),使其与xy平面对齐。我设法使用lm()函数来拟合点云中的线性平面(见下面的图像),但我仍然坚持使用输出(系数?)计算点云与xy平面对齐所需的旋转。
我查看了旋转矩阵(我认为我需要),但是从lm()计算出的系数到这样一个矩阵的数学运算超出了我的能力。有人能在我路上帮我吗?还是有更简单的方法使点云与xy平面对齐?
提前感谢!
编辑:
这就是我目前所拥有的(有一个强烈减少的点云)
library(stats)
library(rgl)
test_pc <- data.frame(x = c(-13.237859,-24.852585,-15.430247,-1.503417,-11.97386,-16.003471,-24.604477,-22.399782,-6.105618,-20.054321,-23.751991,-19.948997,-23.001833,-7.849604,-18.049824,-3.800245,-15.693258,-18.56345),
y = c(-29.660378,-9.196059,-16.974348,-34.623558,-25.25021,-21.308338,-14.051781,-27.175217,-35.1679,-14.564184,-23.321609,-23.961811,-19.686213,-26.698538,-30.610306,-31.007727,-25.055323,-18.545834),
z = c(-31.4743,-33.636326,-33.938457,-33.12648,-32.718159,-32.621037,-32.157677,-29.278849,-31.54184,-33.30085,-29.605991,-30.708748,-30.841011,-33.205978,-30.3218,-33.0793,-31.904222,-32.556953))
test_rp = lm(test_pc$z ~ test_pc$x + test_pc$y)
plot3d(test_pc$x,test_pc$y,test_pc$z, type="s", rad=0.1)
planes3d(test_rp$coef[2], test_rp$coef[3], -1, test_rp$coef[1], col = 4, alpha = 0.3)回归平面很好地符合点云:

现在,我想以这样的方式旋转数据,使数据的回归平面对齐(与xy平面平行运行)。
发布于 2022-01-19 13:49:13
在计算Morpho包中的rotaxis3d()函数时,我无意中意外地发现了另一个函数,它恰好实现了我在一次访问中所寻找的功能: pcAlign(),它通过其主轴对齐一个(或两个)3D点云/网格:
https://stackoverflow.com/questions/70698752
复制相似问题