概述
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矩阵[xmin, xmax; ymin, ymax; zmin, zmax]
- 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类相关知识!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复