博客中轮廓提取使用的点云数据
建筑物平面检测使用的点云数据

**两个小的点云处理实验项目,(源码资源****有常(注意目前是有常哦)私我vx:xdsqczkyqs713
,第一个项目点云建筑物轮廓提取比较简单仅源码及相关测试文件20圆,第二个建筑物平面探测
源码30圆,带一份完整的方法实现论文40圆,报告仅供参考,可以就着写,节省时间,但宝儿你可千
万别傻乎乎的直接拿去上交鸭!)给的联系方式有常求源码的小可爱们加!非诚勿扰/<->认真脸)**

点云建筑物轮廓提取

1、txt文件点云数据导入:
使用uigetfile读取文件,加载后提取出点云x,y,z坐标,为了减少运算量提高速度,将坐标移动到原点,具体做法就是每个坐标值减去该坐标方向下的最小值:

[filename,pathname]=uigetfile({'*.txt';'*.ply';'*.las';},'载入点云数据');
if isequal(filename,0)||isequal(pathname,0)errordlg('没有选中文件','出错');return;
elsefile=[pathname,filename];
end
pointData = load(file);
x = pointData(:,1);
y = pointData(:,2);
z = pointData(:,3);
x = x-min(x);
y = y-min(y);
z = z-min(z);%移动到原点

2、点云图像散点图显示,主要是使用scatter3函数:

figure()
scatter3(x,y,z,'.')
grid on%显示网格
axis equal%每个坐标方向缩放比例设置为相同

3、依据高程着色,可以直接使用matlab自带的pcshow函数:

figure()
pcshow([x,y,z],'MarkerSize',500)%以点云文件格式显示,点大小设置为500,默认以z的大小作为点的颜色深度大小
axis off
saveas(gca,strcat(pathname,filename,'.png'));%保存影像化图片


4、将图片保存后,采用图像处理的方法来提取建筑物轮廓,主要是应用Canny算法的边缘检测:

BW = edge(I,'Canny');
figure()
imshow(BW)

5、在边缘检测的基础上,提取出最外围的轮廓即可

基于平面探测法的点云建筑物轮廓提取

1、方法流程图:

2、实验所采用的点云散点图显示结果如下:


3、使用pcshow函数,按照高程着色

4、基本上可以看出建筑物分布情况,大致可分为两个部分,按照高程切成两片区域:
在每个区域中,对区域进行切块遍历,采用平面探测的方法,检测平面点:

for  i=1:znum1%从z方向开始遍历,第一块,低洼区zind=find(z>zpiece1(i)&z<=zpiece1(i)+stepz);%先找到符合块内z方向的点if length(zind)>200%如果找到的点大于200,认为有可能拟合出平面for j=1:ynum1%再从y方向遍历yind=find(y>ypiece1(j)&y<=ypiece1(j)+stepy);%找到符合块内y方向的点yzCommon = intersect(yind,zind);%求交集,即得到既符合z方向又符合y方向的点if length(yind)>50&&length(yzCommon)>50%如果满足条件的点大于30个,认为有可能拟合出平面for k=1:xnum%最后从x方向开始遍历xind=find(x>xpiece(k)&x<=xpiece(k)+stepx);%找到符合块内x方向的点pointInd = intersect(yzCommon,xind);%求交集,找到符合块内xyz三个范围的点if length(xind)>50&&length(pointInd)>50%如果符合的点数大于30,开始拟合xt = x(pointInd);yt = y(pointInd);zt = z(pointInd);[f,gof]= fit([xt,yt],zt,'poly11');%选择线性平面拟合if gof.rmse<0.10%假如拟合的均方根误差小于0.15,认为拟合到了比较好的平面planeNum = planeNum+1;%平面数加一writematrix([xt yt zt],strcat('plane',num2str(planeNum)),'Delimiter',' ');%保存找到的平面点elsecontinue%continue的意思是如果不符合条件,直接进入下一轮循环遍历endelsecontinueendendelsecontinueendendelsecontinueend
end

5、最终检测的结果如下:

基于MATLAB的点云建筑物轮廓提取与基于平面探测法的点云建筑物提取相关推荐

  1. 基于matlab/simulink的双电机速度跟踪伺服系统仿真,基于MatlabSimulink的伺服系统仿真pdf.doc...

    基于MatlabSimulink的伺服系统仿真pdf ·90 ·长江大学学报 (自科版) 理工卷 2007 年 12 月第 4 卷第 4 期Journal of Yangtze University ...

  2. 基于matlab的模糊控制器的设计与仿真,基于MATLAB的模糊控制洗衣机的设与仿真详解.doc...

    基于MATLAB的模糊控制洗衣机的设计与 仿真 卫瑶瑶,王胜红 (南京农业大学工学院,210031) 摘要:根据模糊控制的原理对传统洗衣机进行改造,设计了模糊控制系统.通过MATLAB仿真,采用取最大 ...

  3. 基于MATLAB的声信号的采集与分析,基于Matlab的声音信号采集与分析处理

    2005年第6期 文章编号:100622475(2005)0620091202 计算机与现代化 JISUANJI YU XIANDAIHUA 总第118期 基于Matlab的声音信号采集与分析处理 陈 ...

  4. 基于matlab的三相电路短路,终稿毕业论文设计基于MATLAB的电力系统短路故障分析与仿真.doc最终版(备份存档)...

    <[毕业论文]基于MATLAB的电力系统短路故障分析与仿真.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)[毕业论文设计]基于MATLAB的电力系统短路故障分析与仿真.do ...

  5. nyquist matlab 稳定性,基于MATLAB控制系统的Nyquist图及其稳定性分析 基于MATLAB控制系统的伯德图及其频域分析...

    实验六 基于MATLAB 控制系统的Nyquist 图及其稳定性分析 一.实验目的 1.熟练掌握使用MATLAB 命令绘制控制系统Nyquist 图的方法. 2.能够分析控制系统Nyquist 图的基 ...

  6. 基于matlab/simulink的双电机速度跟踪伺服系统仿真,基于Matlab_Simulink的伺服系统仿真...

    伺服控制仿真 90 2007年12月第4卷第4期长江大学学报(自科版)理工卷 JournalofYangtzeUniversity(NatSciEdit)Sci&EngV Dec12007,V ...

  7. 基于matlab的talbot效应光栅的计算机模拟[1],基于MATLAB的Talbot效应光栅的计算机模拟[1]...

    错误!未指定书签. 基于MATLAB的Talbot效应光栅的计算机模拟 四川省通江县陈河小学 张洪 摘要 计算机模拟技术广泛应用在教学和科研中,在Talbot效应实验中引入计算机能更深动和深入揭示光学 ...

  8. 基于matlab的心电信号处理毕业论文,浅议仿真基于MATLAB的“数字信号处理”仿真实验毕业论文范文...

    论文导读:),通过扬声器可以听到"重庆邮电大学,重庆邮电大学"声音,对原始语音信号进行FFT 频谱分析,程序关键代码如下: figure: t=(0:length(x)-1)/Fs ...

  9. 基于matlab的talbot效应光栅的计算机模拟[1],基于matlab的talbot效应光栅的计算机模拟.doc...

    基于matlab的talbot效应光栅的计算机模拟.doc 30D0618F8C4DC3CCF74DBDD562A550D5PDF1基于MATLAB的TALBOT效应光栅的计算机模拟四川省通江县陈河小 ...

最新文章

  1. netty io.netty.buffer简介
  2. Winform开发几个常用的开发经验及知识积累(一)
  3. ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测、评估
  4. 解析XML时DTD的处理--解析时忽略,生成XML文件时加上。-- XML进阶
  5. linux mariadb 升级,linux mariadb
  6. python csv文件复制时的编码问题_使用python读取CSV文件时的编码问题
  7. 漫步线性代数十六——投影和最小二乘
  8. Gensim word2vec计算多个词之间的相似度
  9. paip.spring3 mvc servlet的配置以及使用最佳实践
  10. MCMC算法—MH算法的Python实现(一)
  11. Empty DataFrame
  12. python批量修改图片大小--pathlib库
  13. MSE(L2损失)与MAE(L1损失)的分析
  14. 实训日记(二)——分镜
  15. STM32开发(14)----CubeMX配置ADC
  16. 基于SSM实现汽车配件商城系统
  17. scanf函数、冒泡排序和不定长度数组的使用 —— malloc
  18. centos 7 安装极点五笔中文输入法
  19. 守望先锋打开黑屏闪退,已经重装过好几次都没用? 真正原因在这里
  20. 最强辅助!IDA 辅助工具Karta——二进制文件中搜索开源代码

热门文章

  1. scrapy+selenium爬取某招聘网站的职位、公司、面试评论
  2. Matlab:柱透镜检测涡旋光的拓扑荷数
  3. 汉诺塔--1.0版本
  4. Python闪电开发:50行代码制作在线数据库查询系统!
  5. 11.JVMGC基础
  6. java 及时释放内存_Java 等语言的 GC 为什么不实时释放内存?
  7. 技术与政策并行,须弥山大会共建智慧能源新生态
  8. IPFS安装及初始化
  9. ThreeJS基础代码段(四)运动残影
  10. 个性化自己的U盘,更改U盘的显示图标