logo资料库

matlab点云应用.docx

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
MATLAB 中关于点云的几个函数的简单应用。作者使用的是 MATLAB R2015b, 这几个函数应该是在 Computer Vison 包里。 全文都是作者自己结合 MATLAB 文档的理解,欢迎指教。 1. pcread: 输入文件名,返回 pointCloud 类(用于存储点云)。eg: pcloud = pcread(“filename.ply”) 2. pcshow: 输入 pointCloud 类,展示该点云图。eg: pcshow(pcloud) 3. pcshowpair: 输入两个 pointCloud 类,一起展示两个点云图。eg: pcshowpa ir(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');
分享到:
收藏