Matlab 2015a 中 pointCloud类相关知识
生活随笔
收集整理的這篇文章主要介紹了
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”都是代表R\G\B三個屬性,而無序點云以“列向量中上下之間的相對順序對應點的順序”,而有序點云則以“矩陣中元素的位置關系表示對應點的順序”。
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.Countpoint = ptCloud1.Location(i,:);[~,dist] = findNearestNeighbors(ptCloud2,point,1);if dist < minDistminDist = dist;end end參考:http://cn.mathworks.com/help/vision/ref/pointcloud-class.html
總結
以上是生活随笔為你收集整理的Matlab 2015a 中 pointCloud类相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB点云处理:读取、展示、最近邻
- 下一篇: matlab练习程序(点云下采样)