利用matlab点云工具处理点云
2017-08-23 16:29
351 查看
利用matlab处理点云
本文主要分享利用matlab点云工具的相关模块来处理点云,并通过点云轮廓对点云体积进行简单的估计测量。目录
利用matlab处理点云目录
主要的操作流程图
2具体流程
1 点云的读入和显示
2 点云的处理
1.主要的操作流程图
Created with Raphaël 2.1.0.ply点云文件读入点云数据显示点云数据获取点云轮廓求得点云所占体积结束处理2、具体流程
2.1 点云的读入和显示
假设有一个名为pointcloud.ply的点云文件。——ply格式简介pc = pcread('path\pointcloud.ply'); %读入点云文件 pcshow(pc) %显示点云
这里需要注意.ply文件中头文件类似这样的格式:
element vertex 12 property float x property float y property float z property uchar blue property uchar green property uchar red
其中x,y,x是三维点云的空间坐标,后面的b,g,r代表每个点的颜色,后一项目对于纹理映射和显示很重要,可以分别提取出来,随后用pcshow来显示;
pcread读入的文件后生成
Location: [850554×3 single] Color: [850554×3 uint8] Normal: [850554×3 single] Count: 850554 XLimits: [6.5701 15.5542] YLimits: [-1.5363 4.2114] ZLimits: [-15.7035 0.2691]
我们可以提取出其中的位置和颜色来进行纹理映射并画图
figure(1) pc_tmp(:,1) = pc.Location(:,3); %调整点云的方位的和xyz轴 pc_tmp(:,2) = pc.Location(:,1); pc_tmp(:,3) = pc.Location(:,2); pc_col = pc.Color pcshow(pc_tmp,pc.Color)
这里利用CMVS/PMVS方法生成的点云数据作为例子:
2.2 点云的处理
为了求得这一建筑物的体积,通过获得这一建筑物的轮廓包络来得到其体积。主要利用matlab中的alphaShape函数和volumalphaShape
此函数主要用于从离散的三维空间点云中提取边缘并建立对应的包络:
shp = alphaShape(x,y,z)
主要控制参数有alpha值,用于控制生产轮廓的精细程度(越小越细腻)
‘RegionThreshold’ 忽略生成包络中的小物体,压制小物体的阈值体积
‘HoleThreshold’ 填充包络中的空洞,生成完整的体积形态
- *alphaShape(x,y,z,alpha,’HoleThreshold ‘,xx,’RegionThreshold’,xx)
需要注意的是需要将点云的位置坐标转换为双精度的类型。
x=pc.Location(:,3);y=pc.Location(:,1);z=pc.Location(:,2);%get point out x = double(x); y=double(y); z= double(z); %获取点云坐标 alp = 5;region = 0.75;%hole = 1; region = 0.75; shp = alphaShape(x,y,z,alp); %生产点云的包络数据 %ref:http://cn.mathworks.com/help/matlab/ref/alphashape.html plot(shp) %显示点云包络 v= volume(shp); title(['v= 'num2str(v) ,'m3']) %计算体积并显示
上图为生成的点云包络(需要仔细条件参数以生成符合需求精度的包络),通过volum可计算此包络所占粗略的体积。
相关文章推荐
- 2014-5-13-利用正则工具处理要替换的文本-屏蔽词
- 利用matlab编写gps处理程序
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(一)
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(二)
- matlab图像处理工具
- 利用python进行数据分析(三):pandas--处理数据的工具
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(一)
- 利用pdfobject工具处理pdf
- EPSON 利用CCD图像处理包标定工具坐标系
- 利用PCL处理Realsense点云数据-使用VoxelGrid滤波器对点云进行下采样
- 在利用matlab处理图像时务必慎用abs函数
- 利用五类小工具自动化Windows故障处理命令
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【Github更新!!!】(三)
- 文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简
- Matlab处理Timer工具函数
- Matlab octave通用图像处理工具箱
- fmri的图像数据在matlab中显示,利用imagesc工具进行显示,自带数据集-by 西南大学xulei教授
- 利用TESLA GPU和MATLAB实现大规模型数据并行处理
- 利用Matlab Image Processing Toolbox中的图像配准工具
- 如何利用GNU Parallel工具在单机上处理百万级数量规模的文件