您当前的位置: 首页 >  矩阵

phymat.nico

暂无认证

  • 0浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转

phymat.nico 发布时间:2020-03-29 18:19:27 ,浏览量:0

MATLAB中关于点云的几个函数的简单应用。作者使用的是MATLAB R2015b,这几个函数应该是在Computer Vison包里。 全文都是作者自己结合MATLAB文档的理解,欢迎指教。 1. pcread: 输入文件名,返回pointCloud类(用于存储点云)。eg: pcloud = pcread(“filename.ply”) 2. pcshow: 输入pointCloud类,展示该点云图。eg: pcshow(pcloud) 3. pcshowpair: 输入两个pointCloud类,一起展示两个点云图。eg: pcshowpair(pcloud1,pcloud2)。 4. pcregrigid: ICP算法求取两个点云图之间的转移矩阵,输入两个点云图,返回一个转移矩阵。eg: trans = pcregrigid(moving_pcloud, fixed_pcloud)。 5. pctransform: 旋转一个点云图,输入一个需要旋转的点云图,以及旋转矩阵,返回旋转之后的点云图。eg: tranformed_cloud=pctransform(pcloud,trans)。 6. findNearestNeighbors: 在给定点云图中寻找指定点的k个最近邻,返回在点云图中的索引值以及距离。eg: [indice, dist] = findNearestNeighbors(pcloud, pointCloud.Location, k) 下面代码是作者自己一个做的一个demo,读入Stanford兔子,然后旋转270度的兔子到180度,再将两者共同展示进行比较。

%#function pcread

name_list = ['000';'045';'090';'180';'270';'315']; for i = 1:6     name = name_list(i,:);     eval(['bun',name,'=pcread(''bun',name,'.ply'');']); end

trans_270_180 = pcregrigid(bun270,bun180); bun270_180trans = pctransform(bun270,trans_270_180);

figure; subplot(2,2,1); pcshow(bun180); title('bun180'); subplot(2,2,2); pcshow(bun270); title('bun270'); subplot(2,2,3); pcshow(bun270_180trans); title('bun270-180trans'); subplot(2,2,4); pcshowpair(bun180,bun270_180trans); title('pair show');

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0453s