范文一:点云数据处理
c++对txt 文件的读取与写入 /* 这是自己写程序时突然用到这方面的技术,在网上
搜了一下,特存此以备后用~
*/ #include #include #include using namespace std; i nt main(){ char buffer[256]; ifstreammyfile ("c:\\a.txt"); ofstreamoutfile("c:\\b.txt"); if(!myfile){ cout< "unable="" to="" open=""> exit(1); // terminate with error } if(!outfile){ cout< "unable="" to="" open=""> exit(1); // terminate with error } inta,b; int i=0,j=0; int data[6][2]; while (! myfile.eof() ) { myfile.getline (buffer,10); sscanf(buffer,"%d %d",&a,&b); cout for(int k=0;k<<"><"><><> tob_id_3208 cout<<"><"><> 包含 读入数据,因此定义输入流,即定义输入流对象:ifsteaminfile,infile 就是输入流对象。这个 对象当中存放即将从文件读入的数据流。假设有名字为myfile.txt 的文件,存有两行数字数 据,具体方法:inta,b; ifstreaminfile; infile.open("myfile.txt"); //注意文件的路径 infile>>a>>b; //两行数据可以连续读出到变量里infile.close() 如果是 个很大的多行存储的文本型文件可以这么读: char buf[1024]; //临时保存 读取出来的文件内容 string message; ifstreaminfile; infile.open("myfile.js"); if(infile.is_open()) //文件打开成功, 说明曾经写入过东西 { while(infile.good() && !infile.eof()) { memset(buf,0,1024); infile.getline(buf,1204); message = buf; ...... //这里可能对message 做一些操作 cout<> 来说是将数据写出去,即数据离开程序,因此定义输出流对象ofstreamoutfile ,outfile 就是 输出流对象,这个对象用来存放将要写到文件当中的数据。具体做法:ofstreamoutfile; outfile.open("myfile.bat"); //myfile.bat是存放数据的文件名 if(outfile.is_open()) { outfile<> { cout<> 行字符,把其中的字母依次放在磁盘文件fa2.dat 中,再把它从磁盘文件读入程序,将其中 的小写字母改成大写字母,再存入磁盘fa3.dat 中*/ #i nclude #i nclude read_save(){ char c[80]; ofstreamoutfile("f1.dat");//以输出方工打开文件 if(!outfile){ cerr<<"open><"open> for(int i=0;c[i]!=0;i++) //对字符一个一个的处理,直到遇到'/0'为止 if(c[i]>=65&&c[i]<=90||c[i]>=97&&c[i]<=122){>=122){> 母字符存入磁盘文件cout<><<""; }=""><"";> creat_data(){ char ch; ifstreaminfile("f1.dat",ios::in);//以输入的方式打开文件 if(!infile){ cerr<<"open><"open> } ofstreamoutfile("f3.dat");//定义输出流f3.dat 文件 if(!outfile){ cerr<<"open><"open> if(ch<=122&&ch>=97) ch=ch-32; outfile.put(ch); cout cout main(){ read_save(); creat_data(); system("pause"); return 0; } // win32console.cpp : 定义控制台应用程序的入口点。 //C++读取txt 文件的方法 #include "stdafx.h" #include { node *h=NULL,*p=NULL,*q=NULL; int data; while (ifp>>data) { p=new node; p->data=data; p->next=NULL; if (!h) h=p; else q->next=p; q=p; } return h; } void prt(node *h) { if (h) { cout { //--file1 open ifstreamfp("d:\\data.txt",ifstream::in); node *hst=creat(fp); fp.close(); prt(hst); //--file2 open ifstream r("d:\\test.txt",ifstream::in); if(!r) { cout<> { char line[4000]; //[100]2000 while(r>>line) { cout<> 函数用于读取.xyz 的点云文件,点云的格式为: [cpp] view plain copy 在CODE 上查看代码片派生到我的代码片 17.371559 -6.531680 -8.080792 0.242422 0.419118 0.874970 15.640106 -16.101347 -9.550241 -0.543610 -0.382877 0.746922 17.750742 -6.395478 -8.307115 0.333093 0.494766 0.802655 15.432834 -15.947010 -9.587061 -0.548083 -0.385148 0.742473 23.626318 -7.729815 -13.608750 0.081697 0.502976 0.860431 15.300377 -15.610346 -9.547507 -0.569658 -0.341132 0.747743 23.975805 -7.512131 -13.775388 0.082388 0.564137 0.821561 24.251831 -7.345085 -13.949208 0.099309 0.574142 0.812711 14.999881 -15.463743 -9.748975 -0.629676 -0.333713 0.701530 14.804974 -15.162496 -9.758424 -0.616575 -0.334426 0.712737 27.607445 -6.731058 -16.160894 0.387612 0.713240 0.583991 14.560967 -14.955154 -9.909436 -0.638394 -0.335827 0.692584 27.938255 -6.707172 -16.443462 0.379390 0.740941 0.554139 14.290791 -14.852806 -10.137550 -0.692395 -0.381273 0.612552 14.386531 -15.114174 -10.178914 -0.719801 -0.337913 0.606384 14.001437 -14.247000 -10.103112 -0.735267 -0.343587 0.584235 13.762934 -13.909647 -10.200064 -0.752330 -0.295280 0.588906 前面3个数字是坐标,后面3个数字是法向量,有多少行就代表有多少个点。 代码: [cpp] view plain copy 在CODE 上查看代码片派生到我的代码片 struct Point3d { Point3d(){x=y=z=0.0f;} float x; float y; float z; bool operator<(const point3d&="" p2="" )="">(const> { if (x == p2.x) { if (y == p2.y) { return (z <> } else return (y <> } else return (x <> } }; intReadPointCloudFile(conststd::string&strPath) { FILE *ifp = fopen(strPath.c_str(),"r"); if(ifp == NULL) { printf("Cannot open point cloud file.\n"); return -1; } //获取行数,即点的数量,用于设置std::vector的容量 constint BUFSIZE = 512; charbuf[BUFSIZE]; introwNumber = 0; while(fgets(buf,BUFSIZE,ifp) != NULL) { ++rowNumber; } fclose(ifp); ifp = 0; //重新打开文件,读取所有点的信息 ifp = fopen(strPath.c_str(),"r"); Point3d pointCoor; Point3d pointNormal; std::vector std::vector vecPtCoor.reserve(rowNumber); vecPtNormal.reserve(rowNumber); while(fgets(buf,BUFSIZE,ifp) != NULL) // read info line by line { sscanf(buf, "%f %f %f %f %f %f", &(pointCoor.x), &(pointCoor.y), &(pointCoor.z), &(pointNormal.x), &(pointNormal.y), &(pointNormal.z)); vecPtCoor.push_back(pointCoor); vecPtNormal.push_back(pointNormal); } fclose(ifp); ifp = 0; return 0; 非接触三维扫描测量数据的处理研究 1 点云数据的处理 1.1 噪声点的剔除和失真点的查找. 在非接触三维扫描测量过程中, 受测量方式、被测量物体材料性质、外界干扰等因素的影响, 不可避免地会产生误差很大的点(噪声点) 和失真点(跳点). 因此在数据处理的第一步, 就应利用相关专用软件所提供的去噪声点功能除去那些误差大的噪声点和找出可能存在的失真点[3].失真点的查找需要一定的技巧和经验, 下面介绍3种方法供大家参考:①直观检查法. 通过图形显示终端, 用肉眼直接将与截面数据点集偏离较大的点或存在于屏幕上的孤点剔除. 这种方法适合于数据的初步检查, 可从数据点集中筛选出一些比较大的异常点. ②曲线检查法. 通过截面的首末数据点, 用最小二乘法拟合得到一条样条曲线, 曲线的阶次可根据曲面截面的形状决定, 通常为3~4阶, 然后分别计算中间数据点pi 到样条曲线的距离‖e ‖, 如果‖e ‖大于等于[ε]([ε]为给定的允差), 则认为pi 是坏点, 应予以剔除(见图1). ③弦高差方法. 连接检查点的前后2点, 计算中间数据点pi 到弦的距离‖e ‖, 如果‖e ‖ [ε]([ε]为给定的允差), 则认为pi 是坏点, 应予以剔除. 这种方法适合于测量点均匀且较密集的场合, 特别是在曲率变化较大的位置(见图 2). 图1 曲线检查法剔除坏点 图2 弦高差方法 1.2 数据精简. 非接触三维扫描测量的突出特点是点云十分密集, 数据量极其庞大(在1m2的范围内有数十万个点). 若将如此庞大的数据量直接用于曲面构建不仅需要巨大的计算机资源(普通微机可能无法胜任) 和很长的计算时间, 而且整个处理过程也将变得难以控制, 更何况并非所有的测试数据对曲面的构建都有用. 因此, 有必要在保证一定精度的前提下, 对测试数据进行精简. 数据精简的原则是在扫描曲率较大的地方保持较多的数据点, 在曲率变化较小的地方保持较少的数据点. 不同类型的点云采用不同的精简方式. 散乱点云可通过随机采样的方法来精简, 而对于扫描线点云和多边形点云可采用等间距、倍率、等量及弦偏差等方法进行精减. 此外均匀网格法与非均匀网格法也可用来精减点云数据. 其中均匀网格法只需选取其中的某些点, 无需改变点的位置, 可以很好地保留原始数据, 特别适合简单零件表面瑕点的快速剔除. 由于均匀网格法没有考虑被测物体的表面形状特征, 因此它不适合对形状复杂的重要工程部件测试数据的处理. 与之相反, 非均匀网格法可以根据被测工程部件外部形状特征的实际需要来确定网格的疏密, 因此它可在保证后继曲面构建精度的前提下减少数据量, 这在处理尺寸变化较大的自由形体方面显得十分有效. 1.3 数据的平滑处理. 点云数据中的随机误差将影响到后续曲面的构建及生成三维实体模 型的质量, 因此在构建曲面之前需对点云数据进行平滑滤波处理. 常用的平滑滤波处理有如下2种方式:①平均值滤波. 取滤波窗口内各数据点的统计平均值来取代原始点, 从而改变点云的位置, 使点云平滑. 假设相邻的3点分别为,x0,x1和x2, 通过平均值滤波法平滑得到新点,x ′1,x ′1=(x0+x1+x2)/3,如图3所示, 其中虚线所连点代表扫描测的点, 直线所连的点代表平滑后的点. ②高斯滤波. 高斯滤波是一种在指定域内滤除高频噪声的滤波方法, 其特点是在指定域内的权函数为高斯分布. 由于高斯滤波的平均效果较小, 因此它能较好地保持测试数据的原貌, 是一种常用的滤波方法, 如图4所示 . 图3 平均值滤波法 图4 高斯滤波法 1.4 数据拼合对齐. 为完成对整个实体模型的非接触三维扫描测量, 需要对实体模型从各个视觉进行分块测量. 由于在测量不同区域时, 都是在测量位置对应的局部坐标系下进行的, 因此多次测量所对应的局部坐标系并不一致, 所以必须把各次测量对应的局部坐标系统一到同一坐标系, 并消除相邻2次测量间的重叠部分, 以得到被测物体表面的完整数据. 这就需要将分块测量所得到的多片点云数据拼合在一起, 即点云数据的拼合对齐, 其处理方法有2种:一是通过专用的测量装置实现数据的拼合对齐, 它要求设计一个自动工件移动转换平台, 用来直接记录工件在测量过程的移动量和转动角度; 二是用专门设计的计算机软件实现多片块点云数据的拼合对齐, 从而实现原型的再构, 这是现在非接触三维扫描测量最常用的多片块点云数据拼合对齐方法. 分块测量得到的点云数据常可看作是一个刚体. 数据对齐可以归结为三维刚体的坐标转换问题, 即根据一些预先指定的最佳匹配规则, 通过坐标变换, 把部分重叠的两片点云最优地对齐. 在工程中较常用的是基于3个基准点的对齐方法. 由于3点可以确定一个平面, 因此在测量时, 可在不同视图中建立用于对齐的3个基准点, 通过对齐这3个基准点, 就能实现三维测量数据的多视点统一。 交 通 科 技 与 经 济 第 卷第 期,,,, ,,,〃,,,,〃, 年 月,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, , ,,〃,,,,, 点云数据处理与应用 ,,,,, 王宇赤 :大 庆油田工程有限公司 勘察工程部 ,黑 龙江 大庆 :,,,,,, :、、,,摘 要 机载雷达测量技术作为一种主动 快 速 精确的新型遥感测量方法 自出现以来便受到广泛关注 其 获 取 空 间数据的后处理也已成为研究热点。分析 点云数据的获取原理及分类 ,探 讨 的模 块数据 ,,,,, ,,,,,,,,,,,,,,,,,及 点云数据的分类处理方法。,,,,, 关键词 :系统 ;激 光雷达 ;数 字高程模型 ;点 云数据,,,,, :::::中图分类号 ,,,, 文献标志码 , 文章编号 ,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,, ,,,, ,,,,,, :,,,,:,,,,:,,,,,,,,,,,,,,,,,,〃,,,〃,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, :,, ,,,,,,,,,,, ,,, ,,,,,,,,,,,,,,,,,,,,,,, ,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,, ,,,,, ,,,, ,,,,,, , ,,,,,,,, ,,,,,〃 ,,,, ,,, ,,,,,,,,,,,,,, ,,, ,,,,,,,,,,,,,, ,,,,, , ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,〃 ,,,,,,,,:;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,。 ,目前随 着 航 天 技 术 的 发 展激光雷达已成为 面等都可 以 反 射 电 磁 波获 取 地 表 地 物 的 三 维 空 ,,一种新型的航空遥感传感器 其优 势在于可全天候 间点坐 标 集 是 系统的主要工作 目 标 该 系 ,,,,, ,甚至夜间或恶劣天气进行航空遥感作业 并 能够快 统以传感器所发出的测量脉冲到 传 感 器 接 收 由 地 。速获取高精度的数 字 高 程 信 息系 统 是 应 ,,,,, ::,表目标物反射回的脉冲回波所需的时间 以 及激 , ,用多光束返回技术来采集高程 数 据密度可达到常 ::光传播的速度为 依据来确定被测目标与传感器; 。,,间的距离在数据采集过程中 传感器不断 规摄 影 测 量 的 三 倍提 供 理 想 的 数 据 高 程 模 型 ,,,,, ,。,大 大 提 高 了 正 射 影 像 的 纠 正 精 度地向地面发射测量脉冲 监 控器实时地记录每束测 ,,,,,,,, ,量脉冲回波发生点的三维坐标 这 些三维点集的坐 ,数据的地理信息软件处理可以直接与其他要素或 。 ,。标信息就是 系统提供的主要测量结果三 影像数据合并生成内容更为丰富的各类专题地图 ,,,,, ,维点云就是该系统所获取的数据 它 包括每一点高 点云数据获取原理 , ,,,,, ,程信息对应的位置信息 具 有地物类别信息及丰富 ,的目标多次回波信号及强度信息 还 包含地物对象 ,系统是一个主动传感系统 该 系统不依 ,,,,, 。的高程信息等 ,靠太阳光照其本 身发射激光脉冲照射地面上的目 ,,标地面并 通 过 接 收 激 光 脉 冲 的 回 波 信 号 经 过 相 点云数据分类与 生成 , ,,,,, ,,, ::。 应的处理直接获取地面三维数据见 图 与传统 , 点云数据分类,〃, ,、、测量方法相比具 有快速高效精 度高数 据密集高 在对点云 数 据 进 行 分 类 处 理 前 应 对 数 据 进 行 。、的优点覆盖在地球上的目标如建筑物 植 被及地 ,::检验剔除如特别高 的点 云或飞行中的鸟 或 特别 ::。 低的点 地 面 以 下 的 点 等错误及高程异常的 点:收稿日期 ,,,,,,,,,, 。 激光点的 分 类 是 进 一 步 处 理 的 基 础一 束 激 光 打 作者简介 :王 宇赤::,女 ,工 程 师 ,研 究 方 :向 航空摄影测量内 ,,,,, ,,到地面上可 以 有 若 干 次 的 信 号 反 射 我 们 既 需 要 业数据处理〃 科 技 与 经 济 第 卷交 通? ?,, ,,, ,,设定的一套针对不同地形而设置的粗分参数 即 宏 得到地表的信息也需要将这些不 同地物反射的激 。,、、、。 光点数据区分开点 云 数 据 的 分 类 实 质 是 命令例 如 平 地山 地梯 田养 殖 区 等 地 形 参 数,,,,, ,,, 一个人 机 交 互 的 过 程需 要 依 靠 人 为 经 验 进 行 判 在参数运行 后 进 行 的 数 据 分 类 中 如 参 数 不 合 理 ,。 断并分出详细 类别首先应该对自已所处理的数 ,在命令窗口中可先进行粗分参数的编辑 然 后再运 。 ,行并自动 化 取 点数 据 粗 分 完 成 后 要 对 整 块 数 据 据有一个全面的了解和分析 了解 你所要处理的数 ,、。 ,,据类型是平地丘 陵地还是山地了解地形后就 进行全面检查看 是否有数据丢失或异常等数据缺 ,,,可以运行相应的参数该参数就是根据不同的地形 陷问题确 定 没 有 后 再 进 行 仔 细 编 辑 找 回 地 面 点 ()。,并且尽量还原地形见图类别得出的系数值在每个项目中 都会有根据项目 , 图 遥感影像地面三维数据 , ,,坚硬的固体 表 面激 光 点 不 会 穿 透除 去 由 于 其 他 ,原因引起的低点外 一 般认为最低层的点即为地面 。,点打在树上的点会被反射回去 这样反复遍 ,,, 。 直至打到 地 面 上 被 地 面 吸 收 为 止通 常 具 有 明 显 ,的曲面形状的点都是地面点 而 没有形成明显的曲 。 ,面形状的都是废点当然也会有例外那 种比较密 ,集的灌木丛有时候看起来比较有规律 要 参照影像 。 进行区分利用激光点云数据生成 的关键是 ,,, ,对其进行过滤计算 即 滤掉那些并非由地面点的回 ,、、波信号而产生的数据 如 房屋植 被交 通工具及桥 ,。梁等以得到 ,,, 图 影像处理前后点云数据 , 点云数据的编辑处理 , 的生成,〃, ,,, (尽管软件 可 以 对 点 云 数 据 进 行 大 部 分 的 自 动 即数字高程模型 ,,, ,,,,,,,,,,,,,,, ,,,,, , ),、(,的缩写通常定义在域的离散点 规 则或不规 分类处理但是自动处理算法因地面的复杂性和点 ,, ),,则上并以高程表达地面起 伏形态的数字集合 是 ,, 云数据的随 机 性 而 无 法 保 证 完 全 的 可 靠 性 因 此 。一种对空间起伏变化进行 连续 表 示 的 方 法,,, ,、、自动分类完成后对 于一些物体的交界处植 被陡 ,的制作前提是地面点的精确提取 由于地表一般为 、坎建筑以及水域等比较特殊及复杂的目标仍需进行 第 期 王宇赤 :点云数据处理与应用 ,,,,,, ? ?,,, 。、人工交互编辑人工编辑的目的是剔除自动滤波自 ,动分类没有滤掉的粗差和激光点从而达到数据处理 。的质量控制目的 设定了最适 用 的参数值也就得到了最省时的 ,、、半成品但在特殊 的地方如陡坎 居 民地植 被茂盛 ,。 区还需要用手动的方式找回地面点 即 细编辑也 ,就是需要不断地手动拉剖面找回地面点 拉 剖面时 ,,应从低到高垂 直 于 地 物 拉 剖 面剖面拉的不要太 图 水渠及行道树点云数据 , ,。宽这样可以直观地看清剖面 ,,头多而且 石 头 又 是 一 些 不 太 大 的 碎 石 可 以 将 植 居民地,〃, 。 ,被和石头图像一起去掉如果是大石头就 要保留 ,房屋下的房基形状完整在能满足精度要求的前 ,石头去掉植被全 部都是大石头的山就把点全部保 ,:提下较好地保 留和取舍形 状不完整的在确定地形 。,。 留山中小路要保留 不 能 少 点山中存在地形的 ,的形状或位置时可降点保持地基完整较小的单独地 ,、、地方必须要保证地形的完整 如 沟坎山 包等地形 。,基可以删掉房区中的所有道路点都要保留房区里 。都需要保留 、、、,的围墙树木草 堆杂 物都需去掉大型人为堆出来 ()。的临时性土堆可以不保留见图, 结 语 , 、、技术在农业水 利电力设计公 路铁 路 ,,,,, 、、、设计国土资源调 查交 通旅游与气象环境调查城 。 市规划等 各 大 领 域 中 可 以 得 到 广 泛 的 应 用激 光 雷达以其高超的性能已成为各种 测 量 应 用 中 深 受 ,欢迎的一种高新技术 可 以快速地完成地面高程模 , 型 及数 字 正 射 影 像 图 的 大 规 模 生 产,,, ,:, ,大大提高了航测成图的作业生产效率 减 少生产环 ,,,节缩短生产周期提 高成图精度可 提供更为丰富 。的地理信息 :参考文献 ,,于 明旭 ,纪 志浩 ,林 乐 胜 点云数据配准算法的研究 ,〃图 房屋点云数据, ,,():,,交通科技与经济 ,,,,,,,,,,,,,〃,〃 , 、带有低矮密集植被和农田的平地,〃, ,,赖 旭东 机 载激光雷达数据处理中若干关键技术的 研 究,〃 ,, 编辑植被时影像只能作为参考判 断有无植被,,武 汉 :武 汉大学 ,,〃,,,,〃 ,, ,,马 琳 基 于 软 件 对 立 体 数 据 提 取 的 方 并通过影像来判断植被的高低原则是只要有植被,〃,,,,,,,, ,,, ,,,,():法,〃交通科技与经济 ,,,,,,,,,,,,,〃, ,,能拿走的就要拿走如 果在剖面上分析植 被不是很 ,,吕 磊 ,邢 汉发 ,王 叙泉 基 于地面 技术的异型建筑 ,〃,,,,, ,,,高并且很密集分不出是植被点还是地面点的可以 ,,,,():竣工测量方法研究测 绘工程 ,〃,,,,,,,,,,,,〃,,认为植被很低可 以不处理但 只要在剖面上能辨别 ,,张 汉德 ,潘 中杰 ,别 君 系统中偏心矢量的误差分 ,〃,,,,, ,。出有高差的植被点就 应取走路两侧 的 行 道 树 去 ,,,,():析与研究测 绘工程 ,〃,,,,,,,,,,〃,,(掉树下有渠且形成一定规模则渠的点要保留见图 ,,陈 云 ,丁 思磊 ,王 铁军基于 软 件 的 数 ,〃,,,,,,,,,, ,,,,, ),,。 无论 在什么情况下只 要确定为渠 点 就 要 保 留,,,,():据处理初探测绘与空间地理信息 ,〃,,,,,,,,,,〃 ,,,,,陈 永 枫 徐 青 邢 帅 等 基于扫描线和虚拟格网的 ,,,,〃,,, 农田的田埂要保留田 埂上的植被应去掉高 出田埂 点云数据非兴趣点剔除方法 ,,测 绘 工 程 ,, ,,, ,〃,,,,,,的植被点尽量去掉如 去掉后导致地形失真的可 用 ():,,,,,,〃, 。降点的方法来补充 ,,范 亚兵 ,王 明 海 ,潘基 于静 原 ,等数 据 与 数 字 相 ,〃,,,,, 带有植被和石头的山,〃, 机快速生 成正射影像技术研究 ,,测 绘 工 程 ,,,〃,,,,,, 石头和植被 共 有的地方需看清楚影像中是石 ():,,,,,〃, ,,头多还是植 被 多如 果石头多植被少 而 且 还 是 低 ,:,责任编辑王 欣 ,;矮的植被就 可 以 忽 略 植 被 不 处 理如 果 植 被 比 石 点云数据处理与应用,,,,, 王宇赤 (大 庆 油 田 工 程 有 限 公 司 勘 察 工 程 部 ,黑 龙 江) 大 庆 ,,,,,, 摘 要: 机载雷达测量技术作为一种主动 、快 速 、精确的新型遥感测量方法 ,自出现以来便受到广泛关注 ,其 获 取 空 间数据的后处理也已成为研究热点 。 分 析 点云数据的获取原理及分类 ,探讨 的模 块 数 据 ,,,,, ,,;,,,,,,,,,,,,,,及 点云数据的分类处理方法 。,,,,, 关 键 词 :系 统; 激 光 雷 达; 数 字 高 程 模 型; 点 云 数 据,,,,, ():文 章 编 号 中 图 分 类 号 ::,,,,,,,,,,,,,,,,,,, 文 献 标 志 码 ,,,, ,,,,, ,,,,,,;,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,, ,,;,,, (,,,,),,,,,,,,,,,,,,,,,,,,,,,(,,,(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ?,,,,,,,?,,,, :,,,,,,,,;,,,, ,,, ,,,,,,,,,,,,,,,,,,,,,,, ,,,,,, ,,,,,,,;,,,,,,,,;,,,,,,,,,,,, ;;,,,,,, ,,,,,,,,,,,,,,,,;,,,,,,,,,,,;,,,,,,,,,,;, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,, ,,,,,,,,,, ,,,,,, ,,,,, ,,,, ,,;,,, , ,,,,,,;, ,,;,,( ,,,, ,,, ,,,,,,,,;,,,,, ,,, ,,,,,,,,,,,,,, ,,;,,, , ,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,;,,,,,,,;,,,,,,,;,,,,,,,,,,,;,,,,,,,,,,,,,,,( ,,,,,,,,:;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,, 目前 , 随 着 航 天 技 术 的 发 展, 激光雷达已成为 面等 都 可 以 反 射 电 磁 波。 获 取 地 表 地 物 的 三 维 空 ,一 种 新 型 的 航 空 遥 感 传 感 器 其优 势在于可全天候 ,间 点 坐 标 集 是 系统的主要工作 目 标 该 系 ,,,,, ,甚至 夜 间 或 恶劣 天 气 进 行 航 空 遥 感 作 业 并 能 够 快 统以 传 感 器所发出的测量脉冲到 传 感 器 接 收 由 地 (),表目 标物 反 射 回的脉冲回波所需的 时 间 以 及 激 ,。速 获 取 高 精 度 的 数 字 高 程 信 息 系 统 是 应 ,,,,, ()光 传 播 的 速 度为 依 据 来 确 定 被 测 目 标 与 传 感 器 ;,用 多光 束 返 回 技 术 来 采 集 高 程 数 据密度可达到常 。 ,间的 距 离 在 数据采集过程中 传 感 器 不 断 ,,,,, 规摄 影 测 量 的 三 倍 ,提 供 理 想 的 数 据 高 程 模 型 ,地 向地面发射测量 脉 冲 监 控 器 实 时 地 记 录 每 束 测 ,。大 大 提 高 了 正 射 影 像 的 纠 正 精 度 ,,,,,,,, ,量 脉冲回波发生点 的 三 维 坐 标 这 些 三 维 点 集 的 坐 ,数据 的 地 理 信息 软 件 处 理 可以直接与其他要素或 影 。 标 信 息 就 是 系 统 提 供 的 主 要 测 量 结 果 三 ,,,,, ,。像数 据 合 并 生成内 容更为丰富的各类专题地图 ,维 点云就是该系统 所 获 取 的 数 据 它 包 括 每 一 点 高 ,程 信息对应的位置 信 息 具 有 地 物 类 别 信 息 及 丰 富 点云数据获取原理 ,,,,,, ,的 目标多次回波信 号 及 强 度 信 息 还 包 含 地 物 对 象 ,系 统 是 一 个 主 动 传 感 系 统 该 系 统 不 依 ,,,,, 。的 高程 信 息 等 ,靠 太 阳 光 照 其 本 身发射激光脉冲 照射地面上的目 ,,标 地 面 并 通 过 接 收 激 光 脉 冲 的 回 波 信 号 经 过 相 ,点云数据分类与 生成 ,,,,, ,,, ()。 应 的 处 理 直 接 获 取 地 面 三 维 数 据 见 图 与 传 统 , ,、、测量 方 法 相 比 具 有 快 速 高 效 精 度 高 数 据 密 集 高 点云 数 据 分 类 ,(, 在对 点 云 数 据 进 行 分 类 处 理 前 应 对 数 据 进 行 。 、的优 点 覆盖 在 地 球 上 的 目 标 如 建 筑 物 植 被 及 地 ,()检 验 剔除 如 特 别 高 的 点 云或飞行中的鸟 或 特 别 ()。 低的 点 地 面 以 下 的 点 等错误及高程异常的 点 收 稿 日 期 :,,,,,, ,,,,。 激光 点 的 分 类 是 进 一 步 处 理 的 基 础 一 束 激 光 打 作 者 简 介 :王 宇 赤(),女 ,工 程 师 ,研 究 方 向 :航空摄影测量内 业 ,,,,, ,,到地 面 上 可 以 有 若 干 次 的 信 号 反 射 我 们 既 需 要 数 据 处 理 ( ?,,交 通 科 技 与 经 济 第 卷 ,, ? , 得到 地 表 的 信 息, 也需要将这些不 同地物反射的激 设定的一套针对 不 同 地 形 而 设 置 的 粗 分 参 数, 即 宏 。光 点 数 据 区 分 开 点 云 数 据 的 分 类 实 质 是 ,,,,, ,、、、。 命令 例 如 平 地 山 地 梯 田 养 殖 区 等 地 形 参 数 ,一 个 人 机 交 互 的 过 程 需 要 依 靠 人 为 经 验 进 行 判 ,, 在参 数 运 行 后 进 行 的 数 据 分 类 中 如 参 数 不 合 理 ,。 断 并 分 出 详 细 类 别 首先应该对自已所处理的数 ,在命令窗口中可 先 进 行 粗 分 参 数 的 编 辑 然 后 再 运 ,据有 一 个 全 面 的 了 解 和 分 析 了解 你所要处理的数 。 行并 自动 化 取 点 数 据 粗 分 完 成 后 要 对 整 块 数 据 ,、。 ,据 类 型 是 平 地 丘 陵 地 还 是 山 地 了 解 地 形 后 就 ,进行 全面 检 查 看是 否 有 数 据 丢 失 或 异 常 等 数 据 缺 陷 ,可 以 运 行 相 应 的 参 数 该参数就是根据不同的地形 ,,问 题 确 定 没 有 后 再 进 行 仔 细 编 辑 找 回 地 面 点 ,()。类别 得 出 的 系 数 值 在每个项目中都会有根据项 目 并且尽量还原地 形见 图 , 图 遥感影像地面三维数据 , 坚硬 的固 体 表 面 ,激 光 点 不 会 穿 透 ,除 去 由 于 其 他 ,原 因引起的低点外 一 般 认 为 最 低 层 的 点 即 为 地 面 。 ,点 打在树上的点会被反射回 去 这 样 反 复遍 ,,, 。 直 至 打 到 地 面 上 被 地 面 吸 收 为 止 通 常 具 有 明 显 ,的 曲面形状的点都 是 地 面 点 而 没 有 形 成 明 显 的 曲 。 ,面 形 状 的 都 是 废 点 当 然 也 会 有 例 外 那 种 比 较 密 ,集 的灌木丛有时候 看 起 来 比 较 有 规 律 要 参 照 影 像 。 进 行 区 分 利 用 激 光 点 云 数 据 生 成 的 关 键 是 ,,, ,对 其进行过滤计算 即 滤 掉 那 些 并 非 由 地 面 点 的 回 ,、、波 信 号 而 产 生 的 数 据 如 房 屋 植 被 交 通 工 具 及 桥 ,。梁等 以得 到 ,,, 图 影像处理前后点云数据 , 点云数据的编辑处理 , 的生 成 ,(, ,,, (即 数 字 高 程 模 型 ,,, ,,,,,,,,,,,,,,, ,,,,, ,尽管 软 件 可 以 对 点 云 数 据 进 行 大 部 分 的 自 动 ),、(,的 缩 写通 常 定 义 在 域 的 离 散 点 规 则 或 不 规 分类 处理 但是 自 动 处 理 算 法 因 地 面 的 复 杂 性 和 点 云 ,, ),,则上 并以 高 程 表达地面起 伏形态的数字集合 是 ,, 数 据的 随 机 性 而 无 法 保 证 完 全 的 可 靠 性 因 此 自 ,、、、。动分 类 完 成 后 对 于 一 些 物 体 的 交 界 处 植 被 陡 坎 一种 对 空 间起伏变化进行 连续 表 示 的 方 法 ,,, 建筑以及水域等比较特殊及复杂的目标 仍需进行 的制 作 前 提 是 地 面 点 的 精 确 提 取 ,由于地表一般为 ?第 期王 宇 赤: ,,点云数据处理与应用 ,,,,,, ? ,。、人工交互编辑人工编辑的目的是剔除自动滤波自 ,动分类没有滤掉的粗差和激光点从而达到数据处理 。的质量控制目的 设 定 了 最适 用 的参数值也就得到了最省时的 ,、、半成 品 但 在 特 殊 的 地 方 如 陡 坎 居 民 地 植 被 茂 盛 ,。 区 还 需 要 用 手 动 的 方 式 找 回 地 面 点 即 细 编 辑 也 ,就 是 需 要 不 断 地 手 动 拉 剖 面 找 回 地 面 点 拉 剖 面 时 ,,应 从 低 到 高 垂 直 于 地 物 拉 剖 面 剖面拉的不要太 图 水渠及行道树点云数据 , ,。宽 这样 可 以 直 观 地 看 清 剖 面 ,,头多 而且 石 头 又 是 一 些 不 太 大 的 碎 石 可 以 将 植 居民 地 ,(, 。 ,被 和 石 头 图 像 一 起 去 掉 如 果 是 大 石 头 就 要 保 留 ,房屋下的房基形状完整在能满足精度要求的前 ,石 头 去 掉 植 被 全 部 都 是 大 石 头 的 山 就 把 点 全 部 保 ,:提下较好地保 留 和 取 舍形 状 不 完整的在确定地形 。,。 留 山中小路要保留 不 能 少 点 山中存在地形的 ,的形状或位置时可降点保持地基完整较小的单独地 ,、、地 方 必 须 要 保 证 地 形 的 完 整 如 沟 坎 山 包 等 地 形 。,基可以删掉房区中的所有道路点都要保留房区里 。都需 要 保 留 、、、,的围墙树木草 堆杂 物 都 需 去掉 大型人为堆出来 ()。的临时性土堆可以不保留见图 ,,结 语 、、技 术 在 农 业 水 利 电 力 设 计 公 路 铁 路,,,,, 设计、 国土 资 源 调 查、 交 通 旅 游 与 气 象 环 境 调 查、 城 。 市 规 划 等 各 大 领 域 中 可 以 得 到 广 泛 的 应 用 激 光 雷 达 以 其 高超的性能已成为各种 测 量 应 用 中 深 受 ,欢迎的一种高新 技 术 可 以 快 速 地 完 成 地 面 高 程 模 ,型 及数 字 正 射 影 像 图 的 大 规 模 生 产 ,,, ,,, 大大提高了航测 成 图 的 作 业 生 产 效 率, 减 少 生 产 环 ,,,节 缩 短 生 产 周 期 提 高 成 图 精 度 可 提 供 更 为 丰 富 。的地 理 信 息 :参考 文 献 ,,于 明 旭, 纪 志 浩 ,林 乐 胜 点云数据配准算法的研究 ,,,( ,(图 房 屋 点 云 数 据 , ,,():交通科技与经济 ,,,( ,,,,,,,,,,,、带有 低 矮 密集 植 被 和 农 田 的 平 地 ,(, ,,赖 旭 东 机 载 激 光雷达数据处理中若干关键技术的 研 究 ,( 编辑植被时影 像只 能 作 为 参 考,判 断 有 无 植 被, ,,:,武 汉 武 汉 大 学 ,(,,,,(,, 并通过影像来 判断 植 被 的 高 低 原则是只要有植被,,马 琳 基 于 软 件 对 立 体 数 据 提 取 的 方 ,(,,,,,,,, ,,, ,,能拿走的就要 拿走 如果 在 剖 面 上 分 析植 被 不 是 很 ,,,,():法,(交通科技与经济 ,,,(,,,,,,,,,,, ,,,高并且很密集分不出是植被点还是地面点的可以 ,,吕 磊, 邢 汉 发, 王 叙 泉 基 于 地 面 技 术 的 异 型 建 筑 ,(,,,,, ,,,,():,,竣工测量方法研究测 绘 工 程 认为植被很低可 以不 处 理 但 只 要在剖面上能辨别 ,(,,,(,,,,,,,,, ,,张 汉 德, 潘 中 杰, 别 君 系 统 中 偏心矢量的误差分 ,。,(,,,,, 出有高 差 的 植 被 点就 应 取 走路 两 侧 的 行 道 树 去 ,,,,():析 与 研 究测 绘 工 程 ,(,,(,,,,,,,,,,(掉树下有渠且形成一定规模则渠的点要保留见图 ,,陈 云, 丁 思 磊, 王 铁 军 基 于 软 件 的 数 ,(,,,,,,,,,, ,,,,,),,。 无论 在 什 么 情 况 下只 要 确 定 为 渠 点 就 要 保 留,,,,():据 处 理 初 探测绘与空间地理信息 ,,,(,(,,,,,,,,,农田的田埂要 保留 田埂 上 的 植 被 应 去 掉高 出 田 埂 ,,,,,陈 永 枫 徐 青 邢 帅 等 基于扫描线和虚拟格网的 ,(,,,,,的植被点尽量 去掉 如去 掉 后 导 致 地 形 失 真 的可 用 ,,,,点 云 数 据 非兴趣点剔除方法 测 绘 工 程 ,,, ,(,,,,。降点的方法来补充 ():,,,,,,,( , ,,范 亚 兵 ,王 明 海 ,潘 静 原 ,等 基 于 数 据 与 数 字 相 ,(,,,,, 带有 植 被 和 石 头的 山 ,(, 石 头 和 植被 共 有的地方需看清楚影像中是石 机 快 速 生 成正射影像技术研究 ,,测 绘 工 程, ,,( ,,,,,, ():,,( ,,,,,,头 多 还 是 植 被 多 如 果石头多植被少 而 且 还 是 低 ,责任 编 辑 :王 欣, ,;矮的 植 被 就 可 以 忽 略 植 被 不 处 理 如 果 植 被 比 石 基于MATLAB的点云数据处理 T技术!QQ?Q:?SCIkNC&I卜CHNoLo0YlNFoRMA『loN 基于MATI_AB的点云数据处理 林春 (1.东南大学机械系江苏南京2110002.江苏常州刘国钧高等职业技术学校江苏常 州213004) 摘要:逆向工程中,数据点云的处理直接影响三维几何模型的精度,本文利用IGES 点云文件的特殊结构对数据分层,并在 MATLAB中实现卡尔曼滤波. 关镇词:逆向工程数据处理卡尔曼滤波MATLAB 中图分类号:TP391.7文献标识码:A 1.前言 计算机辅助设计(CAD)技术产生于上世纪5O年代后期,至今 已有4O多年的历史.作为电子信息技术的一个重要组成部分, CAD技术是促进传统产业和学科的更新和改造,实现设计自动 化,增强企业及其产品在市场上竞争能力,是进一步向计算机集 成制造(CIMS)芨展的重要技术基础.在传统的设计中,产品 设计过程是一个从无到有的过程,即设计人员首先在大脑中构思 产品的外形,性能和客户的技术要求等,然后通过绘制图纸建立 产品的三维数字化模型,最终将这个模型转入N$11造中,完成产 品的整个设计制造周期.这样的产品设计过程我们称为"正向设 计"过程.这在产品开发过程中是相当普遍的,然而仍有一些产 品最初并不是由CAD模型来描述的,而是先用粘土或木材制造 出符合设计者构思的理想外形,比如汽车外壳具有复杂的流线型 曲面,它是空气动力学和美学的结合,间时有些赛车还要经过风 洞试验,同样在早期的船舶工业中常用船体放样设计.其次,在 仿制和改进国外先进样机和失去供货渠道的关键零件时,由于形 状复杂和精度较高,往往也需要从实物零件转化成CAD模型.这 些设计可以认为是"从无到有"的过程,它是根据已经存在的产 品模,反向推出产品设计数据(包括设计图纸或数字模型)的 过程.我们把这种设计过程称为"逆向工程".逆向工程可以使 企业快速响应市场,大大缩短产品的设计开发及上市周期,加 快产品的更新换代速度,降低企业开发新产品的成本与风险.适 合干件,小批量,形状不规则的零件的制造,特别是模具的制 造.对于设计与制造技术相对落后的国家和地区,逆向工程是快 速改变其落后状况,提高设计与制造水平的好方法. 2.逆向工程的工作过程及关键技术 2.1实物零件的数字化测量 通过激光扫描或三坐标测量机(CMM),测量零件表面各点 的j维坐标,形成海量"点云"数据.数据测量目前分为接触式 测量和非接触式测量.接触式测量具有精度高,减少冗余数据的 优点,但效率较低,对于软性材料或凹腔无法测量.非接触武通 常采用激光扫描,数据完整,效率高,同时数据量大,对数据后 续处理和曲面苇构带来负担. 测量数据还可以分为有序数据和无序数据,无序数据不包含 任何数据组织形式,利用激光扫描采集的数据通常就是无序散乱 的"点云",数量大,各数据点之间无给定的任何关系.有序数 据是指各数据间包含了组织形式,常见的有特征点,线数据,分 层轮廓数据,拓扑矩形点阵数据.由于目前在工程实际中以三坐 标-坝0量仪为主,因此本人研究的重点在于三坐标测量数据,这种 数据通常具有分层轮廓的组织形式. 2.2数据处理,提取几何特征 由于测量传感器精度及可靠性,测量现场的环境影响和零 件表面材质,光学性能等等,造成测量数据中含有大量噪声, 这都是数据处理要解决的问题,同时数据处理中还要根据测量 数据的几何属性对零件进行分割,采用几何特征匹配与识别的方 法来获取零件的设计加工特征,为曲面重构做准备. 2.3三维曲面重构 将分割后的三维数据分别作曲面拟合,再通过曲面求交, 拼接获得原零件的CAD模型.曲面构造方案主要有三种,一 种以B样条或NURBS曲面以基础构造曲面,二是以三角Bezier 曲面为基础构造曲面,三是以多面体方式来描述曲面物体. 3.IGES的数据结构 一 个文件由六个段组成,文件中的每一段都有一字母代码, 占据第73列,用以标志该行所属的段.从74列到80列是序号, 用以表明该行在该段中所处的位置. 标志段(Flag),指明是使用二进制格式还是压缩的ASCII 格式.字母代码:F 初始段(Start),此段加人了一些软件的说明性语句,以便 用户理解文件的相关内容.字母代码:s 全局段(Globa1),全局参数段提供前后置处理器所需要 的信息.字母代码;G 目录表段(DirectoryEntry),文件中的每个实体在目 录条目段都有一个目录条目,其目的在于为文件提供一个索 引,并含有每个实体的属性信息.字母代码:D 参数数据段(ParameterData),文件的参数数据段包含 有与每个实体相连的参数数据.其数据以自由格式存放所有参 数行的第66列到第72列都含有本参数数据所属实体的目录条目 第一行的序号.这样就将参数数据段与目录条目段关联了起来. 字母代码:P 结束段(Terminate).结束段仅有一行,分成lO个域,各 域包含有前述各段中每个段所使用的表示段类型的字母及最后的 序号,其中序号由前述各段的统计结果确定,依次写入即可. 字母代码{T 在一个文件中,可根据产品定义的要求包含任意数量的, 任意类型的实体.每个实体由一目录条目和一参数数据条目组 成.目录条目提供一个索引并包括数据性质的说明,而参数数 据则提供某一实体的详细数据. 4.几种典型滤波方式的比较 4.1中值滤波 科技资讯SCIENCE&TECHNOIOOYINFORMATION85 scNCE&TECHN0l0OYINF0RMAT10N II.IIII,ii.an"-an.IIII. an .ant-?.an"一anan"- ?啊.?.1111.?.?". an .??,.?.?-1-?.?". an .anE_?.州一anan"- II.an?-?II"-III. an ,?.-糖,II, ?.iii".?.?啦--_anan". III.啦,ii.?豫.an.II"譬. III.an?.?.IIIt.Ii.an"S. an . IIII.?.IIII@.an.?"S. an .anE.?.?.an.an". 牛 幸1 书, \燥酱点 图3 中值滤波是用中值替代信号序列中的中心位置值,如果存 此信号序列中心位置值是一个噪声信号,则用此方法即可去除 这个噪声点. 4.2均值滤波 均值滤波是对是对信号进行局部平均,以平均值来代表该点 的值. 4.3高斯滤波 高斯滤波是和J用高斯函数的傅立叶变换仍是高斯函数,因此 高斯函数能构成一个在频域具有平滑性能的低通滤波器. 4.4小波滤波 先选择合适的小波将信号多层分解,对细节系数(近似系 数)进行阈值处理,再重构信号 4.5卡尔曼滤波 86科技资讯SCIENCE&TECHNOLOGYINFORMATION T技术 标准卡尔曼滤波嚣是在最小均方误差准则下的最佳线性过滤 器,也就是说,它使系统的状态向量和状态向量的预测值之间的 均方误差达到最小,它用状态方程和递推方法进行估计,它的 解是以估计值形式给出的.由于它能够对物体的运动建立某种 馍型,因此在跟踪中经常被用到.当观测方程不是线性时,上 述标准卡尔曼滤波方程不再适用,但是如果状态估计值离真实 值不是很远,可以将观测方程局部线性化,得到扩展卡尔曼滤 波器(EKF).由于EKF使用泰勒展开的一阶近似,跟踪 一 段时间之后,经常会引起很大的参数估计的累计误差.为 此,UnscentedKalmanFilter(UKF)不再近似估计观测方 程,它仍然用高斯随机变量表示状态分布,不过是用特定选择 的样本点加以描述.与EKF相比,UKF的误差仅仅出现在 三阶以上的矩中,而且计算也简单,而EKF仅仅精确到一阶 矩总的来说,卡尔曼滤波是一个线性的估计器,能够有效 地跟踪物体的运动和形状变化,但它基于两个假设:一是背景 相对干净;二是运动参数服从高斯分布.因而适用范围有限, 对于复杂的多峰情况,还得求助于其它方法. 5.实例 有一个曲面扫描后的点云,如图l,发现在X和Y两个方 向上呈线性,噪音点相对于理论值Z偏大,在IGES文件中发 现在参数数据段中一行就是一点的坐标值,如图2,我们将含 有噪音点的沿X方向7点单独列出,通过MATLAB中卡尔曼滤 波,把噪音点的z值减小,如图3对比. 6.小结 本文从理论的角度进行研究分析,利用IGES点云文件的特 殊结构对数据分层处理,把曲面点云处理转化为线性的点云处 理,减少了处理量,节约了处理时间,达到了较好的效果, 在交际程中具有广泛的意义. 参考文献 【l】柴晓路,梁宇奇wBEServiCes技术,架构和 应用【M1北京:电子工业出版社,2003 l2】ChappellDA,JewellT.JavaWeb 服务【M】毛世杰,刘绍华译北京:中国电力出版社,2002 【3JMClaugh1inBJAVA.与XML【M】引,兆林, 汪东,乇鹏译北京:中国电力出版社,2001 丰 书 书 牝 中 丰 } 标 坐 / X 的 点 个 一 9.13679-,?"垤协??"伯" 一 旱:""忡""弘""仲"" ,,范文二:数据处理点云处理
范文三:LIDAR点云数据处理与应用
范文四:LIDAR点云数据处理与应用
范文五:基于MATLAB的点云数据处理