1.问题描述:

通过合并比例因子引入标准迭代最近点(ICP)算法中,我将配准问题转化为一个7D的约束优化问题非线性空间。然后,我们应用奇异值分解(SVD)一种迭代求解此类优化问题的方法。最后,建立了一种新的ICP配准算法,称为Scale-ICP算法具有各向同性拉伸的数据集。为了实现算法的全局收敛性,我们提出了一种初始注册的选择方法。证明所提出的方法的性能和效率算法中,我们给出了几个与Scal算法的比较实验

2.部分程序:

function c = Solvecircle(s,R,T,I,X,Y,Yo)

pointx = length(X(1,:));
%pointy = length(Y(1,:));
%X进行变化X--Xo--接近Y
Xo = s*R*X+repmat(T,[1 pointx]);

%dsearchn求Z,即Y中对应X的数据
k = dsearchn(Y',Yo,Xo');
Z = Y(:,k);

%计算当前ek差值
en = computeE(s,R,T,X,Z);
%计算H矩阵
xc = mean(X,2); %xc,zc为坐标中点
zc = mean(Z,2);
%H = zeros(3,3);
% 计算Xi,Zi
Xi = X - repmat(xc,[1 pointx]);
Zi = Z - repmat(zc,[1 pointx]);

%计算Rk+1
Rn = computeR(Xi,Zi);
%计算s-k+1 
sn = computeS(I,Rn,Xi,Zi);
%计算Tk+1
Tn = computeT(zc,sn,Rn,xc);
%对于k+1数据的e,fn
fn = computeE(sn,Rn,Tn,X,Z);
c = cell({Rn;Tn;sn;en;fn});
end
 
%计算Rk+1
function Rn=computeR(Xi,Zi)
H = Xi*(Zi');
[U S V] = svd(H);
if round(det(V*U')) == 1
    Rn = V*U';
elseif round(det(V*U')) == -1
    x = [1 0 0;0 1 0;0 0 -1];
    Rn = V*x*U';
end
end

%计算sk+1
function sn = computeS(I,Rn,Xi,Zi)
sn = sum(dot(Rn*Xi,Zi))/sum(dot(Xi,Xi));
if sn <=  I(1)
    sn = I(1);
elseif sn >= I(2)
    sn = I(2);    
end
end

%计算Tk+1
function Tn = computeT(zc,sn,Rn,xc)
Tn = zc - sn*Rn*xc;
end

%计算Ek+1
function e = computeE(s,R,T,X,Z) 
pointx = length(X(1,:));
c = s.*(R*X)+repmat(T,[1 pointx])-Z;
e = sum(dot(c,c));
end

3.仿真结论:

D-72

基于ICP算法的三维点云数据拼接算法的实现相关推荐

  1. 姿态估计算法汇总|基于RGB、RGB-D以及点云数据

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/305 ...

  2. 线性八叉树_基于三维点云数据的线性八叉树编码压缩算法(权毓舒, 何明一,).pdf...

    基于三维点云数据的线性八叉树编码压缩算法(权毓舒, 何明一,) ·70 · 计算机应用研究 2005 年 基于三维点云数据的线性八叉树编码压缩算法 * 权毓舒, 何明一 ( 西北工业大学 电子信息学院 ...

  3. matlab 光度 三维重构 code,基于matlab的三维点云数据三维重建

    基于matlab的三维点云数据三维重建,通过快速构建三角网,实现三维模型的建立,并提供实例数据用于实验. 三维重建的英文术语名称是3D Reconstruction. 三维重建是指对三维物体建立适合计 ...

  4. 目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查

    目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查 原文 Are We Hungry for 3D LiDAR Data for Semantic Segmentatio ...

  5. 广州大学计算机綦科简历,基于八叉树空间分割的三维点云模型密写(綦科,谢冬青,2011)...

    介绍三维GIS应用中,八叉树原理.创建.优化的相关文章 计 算 机 工 程 第37卷 第4期 Computer Engineering V ol.37 No.4 文章编号:1000-3428(2011 ...

  6. 基于深度学习的三维点云识别

    基于深度学习的三维点云识别 一.什么是三维物体识别 ​ 随着三维成像技术的发展,结构光测量.激光扫描.ToF等技术趋于成熟,物体表面的三维坐标能够精准而快速的获取,从而生成场景的三维数据,能够更好地感 ...

  7. TI AWR1843毫米波雷达采集三维点云数据(ROS)

    毫米波雷达以其稳定性.对不同环境的适应能力.价格等方面的优势逐步引起了科研人员的注意,本文主要介绍利用了TI(德州仪器)的AWR1843设备,基于ROS系统进行采集点云数据的流程.供大家参考及为自己做 ...

  8. matlab中给三维点云数据增加随机噪声_诺斯顿测量|三维激光扫描技术让化工厂改造变得更轻松和高效...

    突发!9月1日下午,淄博一化工厂内发生火情,浓烟滚滚.据目击者称,火情发生在当天17:20左右并未造成人员伤亡,目前已被扑灭,起火原因尚在调查. 化工厂火灾.爆炸事故频繁发生每一次都让人唏嘘不已.据统 ...

  9. 【回归预测-FNN预测】基于蝙蝠算法优化前馈网络实现数据回归预测附Matlab代码

    1 内容介绍 强大的非线性映射能力使得人工神经网络越来越多地应用于数值预测.工程控制中,但神经网络在学习过程中,不可避免的存在着全局搜索能力差.容易跳入局部最优等不足,因而用神经网络技术预测的数据并不 ...

最新文章

  1. Vuforia Android 6 Camera Error
  2. 漫说模板方法模式---学生时代的烦恼
  3. 搭建Python+Eclipse开发环境
  4. C++ explicit的作用
  5. 利用AppMetrics对Web进行监控教程
  6. Zabbix监控(十六):分布式监控-Zabbix Proxy
  7. 前端学习(2004)vue之电商管理系统电商系统之阻止页签切换
  8. Nacos2.0的K8s服务发现生态应用及规划
  9. 剑指offer——30.包含min函数的栈
  10. ISL - Ch.2 Statistical Learning
  11. jmeter处理带表单的接口请求
  12. 安装 Linux 系统,如何选择操作系统和电脑硬件
  13. CSS - 盒子模型(下)
  14. UE4之python编程
  15. linux超出频率限制黑屏,linux suse 超出频率限制 问题
  16. LuatOS-HMI概述
  17. 服务器ibmc虚拟软驱的用法,远程控制 - FusionServer Pro X6000 服务器 iBMC (V250以下) 用户指南 35 - 华为...
  18. 电脑开机自检怎么取消
  19. 三.求导四则运算及三角函数导数
  20. 【应用多元统计分析】-王学民Python主成分分析例题,特征值处理和可视化(2)

热门文章

  1. windows 定时重启
  2. 那些android你需要知道的事
  3. Filament 渲染引擎剖析 之 创建渲染对象 1
  4. 一刷131-dp-1143最长公共子序列(m)(剑指 Offer II 095. 最长公共子序列)
  5. Linux安装SQuirreL SQL Client
  6. using声明和using编译指令
  7. Matlab三维离散点曲面拟合
  8. 一个有趣的网站:子说
  9. IOS成长之路-Nsstring中搜索方法rangeOfString
  10. 台式机是计算机进入睡眠状态,电脑如何进入睡眠状态_电脑如何设置自动睡眠...