利用matlab点云工具处理点云
来源:互联网 发布:防sql注入最佳 编辑:程序博客网 时间:2024/05/16 01:04
利用matlab处理点云
本文主要分享利用matlab点云工具的相关模块来处理点云,并通过点云轮廓对点云体积进行简单的估计测量。
目录
- 利用matlab处理点云
- 目录
- 主要的操作流程图
- 2具体流程
- 1 点云的读入和显示
- 2 点云的处理
1.主要的操作流程图
2、具体流程
2.1 点云的读入和显示
假设有一个名为pointcloud.ply的点云文件。——ply格式简介
pc = pcread('path\pointcloud.ply'); %读入点云文件pcshow(pc) %显示点云
这里需要注意.ply文件中头文件类似这样的格式:
element vertex 12property float xproperty float yproperty float zproperty uchar blueproperty uchar greenproperty 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.Colorpcshow(pc_tmp,pc.Color)
这里利用CMVS/PMVS方法生成的点云数据作为例子:
2.2 点云的处理
为了求得这一建筑物的体积,通过获得这一建筑物的轮廓包络来得到其体积。主要利用matlab中的alphaShape函数和volum
alphaShape
此函数主要用于从离散的三维空间点云中提取边缘并建立对应的包络:
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 outx = 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.htmlplot(shp) %显示点云包络v= volume(shp);title(['v= 'num2str(v) ,'m3']) %计算体积并显示
上图为生成的点云包络(需要仔细条件参数以生成符合需求精度的包络),通过volum可计算此包络所占粗略的体积。
阅读全文
0 0
- 利用matlab点云工具处理点云
- matlab读取点云文件
- 利用PCL处理Realsense点云数据-使用VoxelGrid滤波器对点云进行下采样
- MATLAB利用散点进行函数曲线拟合
- 点云滤波处理方式
- matllab处理三维点云
- 利用PCL处理Realsense点云数据-在vs2015里用PCL获取Realsense点云数据
- 利用PCL处理Realsense点云数据-显示点云法线方向及出现问题的解决
- MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转
- 用matlab处理数字高程模型(DEM)之点云数据(point cloud data)
- MATLAB 点云学习(一)读取点云和绘制点云
- 【图像处理】MATLAB:点、线、边缘检测
- 利用文件RGB值渲染点云
- 利用PCA计算点云的法线
- 个人项目-点云处理应用-PCLStudio
- PCL点云可视化及滤波处理
- 使用Geomagic处理点云一般步骤
- pcl点云处理基本步骤
- C++中的异常捕获与处理:Try、Throw、Catch关键字的理解和使用
- Ration和深蓝的下午茶:取石子游戏&异或和
- CC2640之OAD固件升级(内置Flash)
- 模拟Json加载数据(添加购物车)
- 扫地机器人排行榜
- 利用matlab点云工具处理点云
- MySql中利用insert into select 准备数据uuid主键冲突
- chrome的devtool源码inspectjs
- MyEclipse里保存文件时报错
- hdu6166Senior Pan(spfa)
- 相似度算法
- HDU 6168 Numbers(数列,思维)
- 《剑指offer》问题5 替换空格 Java实现
- Hadoop发行版本比较与选型