我是靠谱客的博主 沉静小天鹅,最近开发中收集的这篇文章主要介绍Matlab 2015a 中 pointCloud类相关知识!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

pointCloud类是Matlab2015a种新引入的一个类,主要用于3D点云数据的存储与操作,其具有如下属性:

  • Location——3D点坐标,数据格式为M*3矩阵或者M*N*3矩阵
  • Color——3D点的RGB颜色 信息,数据格式同上
  • Normal——3D点的法向量信息,数据格式同上
  • Count——3D点的数量
  • Xlimits——X坐标大小范围
  • Ylimits——Y坐标大小范围
  • Zlimits——Z坐标大小范围

针对Location、Color、Normal中数据格式为M*3或者M*N*3矩阵,在这里做一些解释。
直观而言,三维坐标具有XYZ属性,RGB颜色信息具有RGB值三种属性,法向量则具有XYZ三个方向的向量大小三种属性。
按理说,M*3矩阵就足以用于表达这些信息。事实上,3D点云中M*3矩阵的表达方式在被称为“无序点云”, 而M*N*3矩阵的表达方式被称为“有序点云”。

上图为RGB颜色信息以M*3格式存储时的直观体现。

上图则为RGB颜色信息以M*N*3格式存储时的直观体现。
可以看到,相同的是“3”都是代表RGB三个属性,而无序点云以“列向量中上下之间的相对顺序对应点的顺序”,而有序点云则以“矩阵中元素的位置关系表示对应点的顺序”。

pointCloud类的一些基本方法如下:
  • findNearestNeighbors:用于寻找一个点的最近邻的点
  • findNeighborsInRadius:寻找某个距离Radius内的所有近邻点
  • findPointsInROI:寻找ROI中的点,ROI代表region of interest(兴趣区域),ROI格式为3*2矩阵[xminxmaxyminymaxzminzmax]
  • removeInvalidPoints:去除点云中NaN属性的点,注:调用该函数后有序点会转化为无序点
  • select:按序号选择特定的店,根据有序/无序点云格式输入也不相同
下面给出一个寻找两片点云最短距离的例子
  //创建两片点云
  ptCloud1 = pointCloud(rand(100,3,'single'));
  ptCloud2 = pointCloud(1+rand(100,3,'single'));

  minDist = inf;
//对于ptCloud1中的每一个点,寻找其在ptCloud2中的最近点
for i = 1 : ptCloud1.Count
    point = ptCloud1.Location(i,:);
    [~,dist] = findNearestNeighbors(ptCloud2,point,1);
    if dist < minDist
        minDist = dist;
    end
end

参考:http://cn.mathworks.com/help/vision/ref/pointcloud-class.html

最后

以上就是沉静小天鹅为你收集整理的Matlab 2015a 中 pointCloud类相关知识!的全部内容,希望文章能够帮你解决Matlab 2015a 中 pointCloud类相关知识!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部