当前位置: 首页 > news >正文

成都市网站设网站换模板

成都市网站设,网站换模板,做网站托管,强的网站建设最近可能要用三维点云实现一个三维场景重建的功能#xff0c;从经典的ICP算法开始#xff0c;啃了一些文档#xff0c;对其原理也是一知半解。 迭代最近点算法综述 大致参考了这份文档之后#xff0c;照流程用MATLAB实现了一个简单的ICP算法#xff0c;首先是发现这份文档…最近可能要用三维点云实现一个三维场景重建的功能从经典的ICP算法开始啃了一些文档对其原理也是一知半解。   迭代最近点算法综述 大致参考了这份文档之后照流程用MATLAB实现了一个简单的ICP算法首先是发现这份文档中一个明显的错误 公式6   求两个点集的协方差其中(Pi-p)和(Qi-p)分别求两个点集的各点与重心的差都是3*1向量这是不能相乘的根据后文推断此物的结果应为3*3矩阵所以我大(zuo)胆(si)的改为Pi-p) * (Qi-p)做一次尝试。   Matlab代码如下 %%% ICP迭代最近点算法function [sourcePoint,aimPoint,distance] ICPiterator( sourcePoint , targetPoint ) %%% 获得匹配点集重心 aimPoint getAimPoint(sourcePoint,targetPoint);sourcePointCentre getCentre(sourcePoint); aimPointCentre getCentre(aimPoint);%%% 平移矩阵 T getTranslation(aimPointCentre,sourcePointCentre);%%% 中心化 midSourcePoint centreTransform(sourcePoint, sourcePointCentre); midAimPoint centreTransform(aimPoint, aimPointCentre);%%%旋转四元数 quaternion getRevolveQuaternion(midSourcePoint,midAimPoint);%%%旋转矩阵 revolveMatrix getRevolveMatrix(quaternion);%%%变换sourcePoint midSourcePoint * revolveMatrix; sourcePoint counterCentreTransform(sourcePoint,sourcePointCentre);range length(sourcePoint); for i 1:1:rangesourcePoint(i,:) sourcePoint(i,:) T; end%%%阈值判定欧拉距离和 distance getDistance(sourcePoint,aimPoint);end%%% 点对搜索匹配得到匹配点集 function [aimPoint] getAimPoint( sourcePoint , targetPoint ) rangeS length(sourcePoint ); rangeT length(targetPoint); aimPoint zeros(rangeS,3);for i 1:1:rangeSminDistance getDistance(sourcePoint(i,:),targetPoint(1,:));aimPoint(i,:) targetPoint(1,:);for j 1:1:rangeTdistance getDistance(sourcePoint(i,:),targetPoint(j,:));if distance minDistanceminDistance distance;aimPoint(i,:) targetPoint(j,:);endend end end%%%旋转四元数 function [quaternion] getRevolveQuaternion( sourcePoint , targetPoint )%%% 协方差pp sourcePoint * targetPoint;range size(sourcePoint,1);pp pp / range;%%% 反对称矩阵dissymmetryMatrix pp - pp ;%%% 列向量deltadelta [dissymmetryMatrix(2,3) ; dissymmetryMatrix(3,1) ; dissymmetryMatrix(1,2)];%%%对称矩阵QQ [ trace(pp) delta ; delta pp pp - trace(pp)*eye(3) ];%%%最大特征值对应特征向量即为旋转四元数maxEigenvalues max(eig(Q));quaternion null(Q - maxEigenvalues*eye(length(Q)));end%%% 旋转矩阵 function [revolveMatrix] getRevolveMatrix(quaternion)revolveMatrix [ quaternion(1,1)^2 quaternion(2,1)^2 - quaternion(3,1)^2 - quaternion(4,1)^2 2 * (quaternion(2,1)*quaternion(3,1) - quaternion(1,1)*quaternion(4,1)) 2 * (quaternion(2,1)*quaternion(4,1) quaternion(1,1)*quaternion(3,1));2 * (quaternion(2,1)*quaternion(3,1) quaternion(1,1)*quaternion(4,1)) quaternion(1,1)^2 - quaternion(2,1)^2 quaternion(3,1)^2 - quaternion(4,1)^2 2 * (quaternion(3,1)*quaternion(4,1) - quaternion(1,1)*quaternion(2,1));2 * (quaternion(2,1)*quaternion(4,1) - quaternion(1,1)*quaternion(3,1)) 2 * (quaternion(3,1)*quaternion(4,1) quaternion(1,1)*quaternion(2,1)) quaternion(1,1)^2 - quaternion(2,1)^2 - quaternion(3,1)^2 quaternion(4,1)^2 ]; end%%% 点集重心 function [centre] getCentre( point )range length(point);centre sum(point)/range; end%%% 获取平移矩阵 function [T] getTranslation( aimPointCentre , sourcePointCentre )T aimPointCentre - sourcePointCentre; end%%% 点集中心化 function [point] centreTransform(point,centre) range size(point,1); for i 1:1:rangepoint(i,:) point(i,:) - centre; end endfunction [point] counterCentreTransform(point,centre) range size(point,1); for i 1:1:rangepoint(i,:) point(i,:) centre; end end%%% 计算两点距离的平方,即欧拉距离和 function [distance] getDistance(point1,point2)distance (point1(1,1) - point2(1,1))^2 (point1(1,2) - point2(1,2))^2 (point1(1,3) - point2(1,3))^2; end   为了看到迭代过程这段代码每次只是进行一次迭代但是实际情况下需要不断迭代直到两点集的方差收敛达到拟合要求。   用随机数生成了一个含一百个点的点集A,并对A进行一次随机的空间变化得到B这样A,B是完全可以拟合的两个点集   点集A:   点集B:   用A,B来验证算法能不能实现点集的拟合。   试验了几次之后发现无法收敛   问题应该出在旋转四元数和旋转矩阵求解上这块是一直没能理解透彻的部分。  转载于:https://www.cnblogs.com/moranBlogs/p/3798257.html
http://wiki.neutronadmin.com/news/215029/

相关文章:

  • 建设网站免费模板下载阿里云手机版网站建设
  • 品牌网站建设怎么做seo教学平台
  • 网站开发维护求职信moodle ual wordpress
  • 网站设计常用字体中文域名网站怎么发布信息
  • 可以做盗版漫画网站吗wordpress分类目录浏览权限
  • 县级门户网站建设运营成本专业的手机网站开发
  • 做企业网站一般用什么服务器怎么让别人访问我建的网站
  • 承德的网站建设公司武功做网站
  • 淘宝客 网站 备案wordpress模板免费下载
  • 天津建设银行官方网站wordpress cos存储
  • 网络设计网站建设类网站模板做网站沈阳本地
  • 广告公司做网站的效果怎么样南京网站制作步骤
  • 事业单位网站建设费入什么科目漯河网站推广多少钱
  • app软件程序开发搜索引擎优化技术有哪些
  • 问题反馈的网站怎么做网站如何做搜索
  • 企业查询学历周口网站优化
  • 做外贸网站怎么样暴雪是不是快倒闭了
  • 网站建设及安全管理文档国外网站空间购买
  • 网站建设中需求分析说明书南充市住房和城乡建设局网站
  • 郑州网站建设及托管互联网创业项目网
  • 网站数据库建设怎么建设食品网站
  • 美发网站源码公文写作 课程中心网站建设
  • 丹阳网站设计公司手机如何建网站
  • 专业写作网站wordpress 2m附件
  • 高端品牌网站建设需要注意什么怎么样推广自己的店铺和产品
  • 西安电商平台网站建设杭州专业网站
  • 龙泉市建设局网站重庆网站到首页排名
  • 团队氛围建设 网站网站更名策划方案
  • 苏州h5网站建设价钱中国教育网站官网
  • 高淳做网站价格php做网站安全