%算法理论根据 https://blog.csdn.net/u012836279/article/details/80203170 的博主提供
%输入pointAs 和 pointBs 要求两个点云的长度是一致,不一致将较长的截取一下即可
%输出R旋转矩阵,T平移矩阵
function [R,T] = RTbySVD(pointAs,pointBs)
centerPointA=[0
0
0];
centerPointB=centerPointA;
for i=1:4
centerPointA=centerPointA+pointAs(:,i);
centerPointB=centerPointB+pointBs(:,i);
end
centerPointA=centerPointA/4;%求得了A的中心点
centerPointB=centerPointB/4;%求得了B的中心点
%step 02 消除T的影响,将点集合中心,生成A2和B2,
pointA2s=pointAs;
for i=1:4
pointA2s(:,i)=pointAs(:,i)-centerPointA;
end
pointB2s=pointBs;
for i=1:4
pointB2s(:,i)=pointBs(:,i)-centerPointB;
end
%step 03计算A2 B2的协方差矩阵H
%H=cov([pointA2s,pointB2s]);直接用这个生成的是16*16 不行,生成3*3
H=zeros(3,3);
for i=1:4
H=H+pointA2s(:,i)*pointB2s(:,i)';
end
[U,S,V]=svd(H);
U=U';
R=V*U;%A点集合不受Zc收缩影响
%Great!!! you got it
R=R*-1
T=R*centerPointA+centerPointB;
end
【matlab】计算两个点云之间的R和T
4星 · 超过85%的资源 需积分: 2 165 浏览量
2019-03-13
19:21:05
上传
评论 5
收藏 1KB ZIP 举报
byna11sina11
- 粉丝: 39
- 资源: 7
最新资源
- 基于去中心化联邦学习的货运速度预测时空模型-A decentralized federated learning-based s
- 适合新手的 OpenAI Sora 详细使用教程
- 驱动总裁离线安装包01
- NT98336 SDK 114版本
- torch-1.8.1+cu111-cp38-cp38-linux-x86-64.whl +torchvision
- 智能提取字幕-intel
- 计算机设计 - VB+ACCESS网络计时管理系统设计(源代码+系统),保证可靠运行,毕业生可参考,免费资源下载
- 信号处理,通信原理,数字通信信号处理与系统分析
- 计算机设计 - vb+ACCESS身份证管理系统设计(LW+源代码),保证可靠运行,毕业生可参考,免费资源下载
- 智能提取字幕-win10
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈