点云文件快速读取方法及系统的制作方法

文档序号:6434036阅读:212来源:国知局
专利名称:点云文件快速读取方法及系统的制作方法
技术领域
本发明涉及一种文件读取方法及系统,尤其是涉及一种点云文件快速读取方法及 系统。
背景技术
目前对点云文件的处理大多都是人工进行的,也没有在绘制点云前对数据进行处 理,拟合时还需要旋转、平移等操作。并且点云文件读取时通用性差,只能读取指定的存储 格式,不能读取没有指定分隔符的点云文件。发明内容
鉴于以上内容,有必要提供一种点云文件快速读取方法,可以提高点云文件读取 的通用性,并且在绘制点云图片前处理点云数据。
鉴于以上内容,还有必要提供一种点云文件快速读取系统,可以提高点云文件读 取的通用性,并且在绘制点云图片前处理点云数据。
所述点云文件快速读取方法包括开启步骤获取点云文件所在的路径,并根据 该路径从计算装置的存储设备中读取并打开该点云文件;创建步骤获取该计算装置的 (PU中的所有执行单元的个数N,创建具有多任务处理能力的N条线程,将所述点云文件分 成N段快速并行读入并且分别存入N个数组中;第一截取步骤当一段点云文件中的坐标 值有分隔符时,提示用户确认该分隔符,并在得到用户确认的分隔符后,以所述分隔符为界 截取出该段点云文件中每个点对应的X、Y、Z轴的坐标值,保存到数组中;第二截取步骤当 一段点云文件中的坐标值没有分隔符时,提示用户确认每个点的坐标值长度,并根据用户 确认的坐标值长度截取该段点云文件中每个点的X、Y、Z轴的坐标值,保存到数组中;旋转 步骤根据用户对坐标轴的选择,进行坐标轴互换;替换步骤根据用户设定将对应坐标轴 的坐标值用设定值替换;及绘制步骤将N条线程的所有数组合并成一个坐标数组,并根据 该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
所述点云文件快速读取系统包括开启模块,用于获取点云文件所在的路径,并根 据该路径从计算装置的存储设备中读取并打开该点云文件;创建模块,用于获取该计算装 置的CPU中的所有执行单元的个数N,创建具有多任务处理能力的N条线程,将所述点云文 件分成N段快速并行读入并且分别存入N个数组中;截取模块,用于当一段点云文件中的坐 标值有分隔符时,提示用户确认该分隔符,并在得到用户确认的分隔符后,以所述分隔符为 界截取出该段点云文件中每个点对应的X、Y、Z轴的坐标值,保存到数组中;所述截取模块 还用于当一段点云文件中的坐标值没有分隔符时,提示用户确认每个点的坐标值长度,并 根据用户确认的坐标值长度截取该段点云文件中每个点的X、Y、Z轴的坐标值,保存到数组 中;旋转模块,用于根据用户对坐标轴的选择,进行坐标轴互换;替换模块,用于根据用户 设定将对应坐标轴的坐标值用设定值替换;及绘制模块,用于将N条线程的所有数组合并 成一个坐标数组,并根据该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
相较于现有技术,所述的点云文件快速读取方法及系统,可以通过创建N条线程 缩短读取大量点云文件数据的时间,还可以让用户自定义坐标值长度,以截取各个轴的坐 标值,适用性强;并且在绘制点云图片前进行坐标轴互换,并将无效值替换为设定值,减少 了用户在拟合时的旋转操作等步骤和杂点对拟合结果的影响,缩短了拟合时间,提高拟合 的准确率。


图1是本发明点云文件快速读取系统较佳实施例的应用环境图。
图2是本发明点云文件快速读取系统较佳实施例的功能模块图。
图3A-3B是本发明所用点云文件坐标值的示意图。
图4是本发明点云文件快速读取方法较佳实施例的流程图。
主要元件符号说明
服务器I显示设备2点云文件快速读取系统10CPU20存储设备30开启模块100创建模块200判断模块300截取模块400旋转模块500替换模块600绘制模块700
如下具体实施方式
将结合上述附图进一步说明本发明。
具体实施方式
参阅图1所示,是本发明点云文件快速读取系统较佳实施例的应用环境图。所述 点云文件快速读取系统10运行于服务器I或其它计算装置中。所述服务器I中还包括 CPU20及存储设备30。所述服务器I连接于显示设备2。
所述存储设备30用于存储点云文件及绘制后的点云图片等。
所述显示设备2用于显示绘制后的点云图片。
参阅图2所示,是本发明点云文件快速读取系统较佳实施例的功能模块图。
所述点云文件快速读取系统10包括开启模块100、创建模块200、判断模块300、截取模块400、旋转模块500、替换模块600及绘制模块700。
所述开启模块100用于获取点云文件所在的路径,并根据该路径从存储设备30中读取并打开该点云文件。
所述创建模块200用于获取所述CPU20中的所有执行单元的个数N,创建具有多任务处理能力的N条线程,将所述点云文件分成N段快速并行读入并且分别存入N个数组中。由于读取点云的数据量很大,耗时长,循环次数多,创建N条线程便可以缩短读取时间, 提高读取效率。
所述判断模块300用于判断每段点云文件中的坐标值是否有分隔符。所述分隔符为除”及O到9以外的符号,包括空格、逗号等。所述判断模块300以二进制读取每段点云文件中的任意一行,查找是否含有除”及O到9以外别的符号,如果有别的符号那么该别的符号就是分隔符。在本实施例中,或者每段点云文件中的坐标值都含有分隔符,或者每段点云文件中的坐标值都不含分隔符。
图3A-3B所示是本发明所用点云文件坐标值的示意图,其中图3A所示的点云文件中包含分隔符(空格),图3B所不的点z 文件中不包含分隔符。
所述截取模块400用于当所述坐标值有分隔符时,提示用户确认该分隔符,并在得到用户确认的分隔符后,以所述分隔符为界截取出每段点云文件中每个点对应的X、Y、Z 轴的坐标值,保存到每个数组中。
在图3A所示的点云文件中,每行字符串以空格为界截取出每个点对应的X、Y、 Z轴的坐标值。例如 最后一行截取后的X = -102. 9468507604, y = 103. 8298750264, z =-14. 9906925668 ο
所述截取模块400还用于当所述坐标值没有分隔符时,提示用户确认每个点的坐标值长度,并根据用户确认的坐标值长度截取每段点云文件中每个点的X、Y、Z轴的坐标值,保存到每个数组中。所述截取模块400首先随机选取一段点云文件,从该段点云文件中读取一行字符串(例如读取整个点云文件的第一行字符串),然后计算该行字符串的长度 (”不算在内),将字符串长度除以3得到X、Y、Z轴的坐标值的长度Lengthl, 将Lengthl提示给用户确认,并根据用户确认后的长度Length2截取得到每段点云文件中每个点的X、Y、Z轴的坐标值,将坐标值保存到每个数组中。
在图3B所示的点云文件中,以最后一行为例,字符串长度为30(不算和”), 将字符串长度除以3得到X、Y、Z轴的坐标值的长度Lengthl为10,提示用户确认后的长度 Length2为10,按该长度截取时遇到和”直接复制,不在截取的位数上累加,截取后的 X = -675. 9555535,y = 62. 61125478,z = 57.17889632。
所述旋转模块500用于根据用户对坐标轴的选择,进行坐标轴互换,以减少点云拟合时的旋转操作。所述旋转模块500首先接收用户选择的需要互换的两个坐标轴,获取每个数组中每个点的坐标值,然后把每个点对应该两个坐标轴的坐标值互换,将互换后的坐标值保存到每个数组中。例如图3A中最后一行若进行X轴及Y轴互换,则变为X = 103. 8298750264,y = -102. 9468507604,z = -14.9906925668。
所述替换模块600用于根据用户设定将对应坐标轴的坐标值用设定值替换,以减 少杂点对拟合结果的影响。所述替换模块600首先接收用户输入的需要替换的坐标轴及设 定值,获取每个数组中每个点的坐标值,然后将每个点对应该坐标轴的坐标值替换为所述 设定值,将替换后的坐标值保存到所述数组中。
所述绘制模块700用于将N条线程的所有数组合并成一个坐标数组,并根据该坐 标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
参阅图4所示,是本发明点云文件快速读取方法较佳实施例的流程图。
步骤S10,所述开启模块100获取点云文件所在的路径,并根据该路径从存储设备 30中读取并打开该点云文件。
步骤S12,所述创建模块200获取所述CPU20中的所有执行单元的个数N,创建具 有多任务处理能力的N条线程,将所述点云文件分成N段快速并行读入并且分别存N个数 组中。以下步骤S14-S22由N个线程同时执行,其中,每个线程处理一段点云文件。
步骤S14,所述判断模块300判断每段点云文件中的坐标值是否有分隔符。所述 分隔符包括空格、逗号等。所述判断模块300以二进制读取每段点云文件中的任意一行,查 找是否含有除”及O到9以外别的符号,如果有别的符号那么该别的符号就是 分隔符。若所述坐标值有分隔符,则执行步骤S16 ;若所述坐标值没有分隔符,则执行步骤 S18。在本实施例中,或者每段点云文件中的坐标值都含有分隔符,或者每段点云文件中的 坐标值都不含分隔符。
步骤S16,所述截取模块400提示用户确认该分隔符,并在得到用户确认的分隔符 后,以所述分隔符为界截取出每段点云文件中每个点对应的X、Y、Z轴的坐标值,保存到每 个数组中。
步骤S18,所述截取模块400提示用户确认每个点的坐标值长度,并根据用户确认 的坐标值长度截取每段点云文件中每个点的X、Y、Z轴的坐标值,保存到每个数组中。所述 截取模块400首先随机选取一段点云文件,从该段点云文件中读取一行字符串,然后计算 该行字符串的长度(”不算在内),将字符串长度除以3得到X、Y、Z轴的坐标 值的长度Lengthl,将Lengthl提示给用户确认,并根据用户确认后的长度Length2截取得 到每段点云文件中每个点的X、Y、Z轴的坐标值,将坐标值保存到每个数组中。
步骤S20,所述旋转模块500根据用户对坐标轴的选择,进行坐标轴互换,以减少 点云拟合时的旋转操作。所述旋转模块500首先接收用户选择的需要互换的两个坐标轴, 获取每个数组中每个点的坐标值,然后把每个点对应该两个坐标轴的坐标值互换,将互换 后的坐标值保存到每个数组中。
步骤S22,所述替换模块600根据用户设定将对应坐标轴的坐标值用设定值替换, 以减少杂点对拟合结果的影响。所述替换模块600首先接收用户输入的需要替换的坐标轴 及设定值,获取每个数组中每个点的坐标值,然后将每个点对应该坐标轴的坐标值替换为 所述设定值,将替换后的坐标值保存到每个数组中。
步骤S24,所述绘制模块700将N条线程的所有数组合并成一个坐标数组,并根据 该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
综上所述,使用本发明点云文件快速读取方法及系统,可以通过创建N条线程缩 短读取大量点云文件数据的时间,提高读取效率;而且不仅可以读取含有分隔符的点云文件,还可以在点云文件中不含分隔符时,让用户自定义坐标值长度,以截取各个轴的坐标 值,适用性强。本发明还可以在绘制点云图片前进行坐标轴互换,并将无效值替换为设定 值,可以减少用户在拟合时的旋转操作等步骤,减少杂点对拟合结果的影响,缩短拟合时 间,提高拟合的准确率。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发 明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改 或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种点云文件快速读取方法,其特征在于,该方法包括开启步骤获取点云文件所在的路径,并根据该路径从计算装置的存储设备中读取并打开该点云文件;创建步骤获取该计算装置的CPU中的所有执行单元的个数N,创建具有多任务处理能力的N条线程,将所述点云文件分成N段快速并行读入并且分别存入N个数组中;第一截取步骤当一段点云文件中的坐标值有分隔符时,提示用户确认该分隔符,并在得到用户确认的分隔符后,以所述分隔符为界截取出该段点云文件中每个点对应的X、Y、Z 轴的坐标值,保存到数组中;第二截取步骤当一段点云文件中的坐标值没有分隔符时,提示用户确认每个点的坐标值长度,并根据用户确认的坐标值长度截取该段点云文件中每个点的X、Y、Z轴的坐标值,保存到数组中;旋转步骤根据用户对坐标轴的选择,进行坐标轴互换;替换步骤根据用户设定将对应坐标轴的坐标值用设定值替换;及绘制步骤将N条线程的所有数组合并成一个坐标数组,并根据该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
2.如权利要求1所述的点云文件快速读取方法,其特征在于,所述第二截取步骤包括: 随机选取一段点云文件,从该选取的点云文件中读取一行字符串;计算该行字符串的长度;将字符串长度除以3得到X、Y、Z轴的坐标值的长度Lengthl ;将Lengthl提示给用户确认;根据用户确认后的长度Length2截取得到该段点云文件中每个点的X、Y、Z轴的坐标值;及将坐标值保存到数组中。
3.如权利要求1所述的点云文件快速读取方法,其特征在于,所述旋转步骤包括接收用户选择的需要互换的两个坐标轴;获取每个数组中每个点的坐标值;把每个点对应该两个坐标轴的坐标值互换;及将互换后的坐标值保存到每个数组中。
4.如权利要求1所述的点云文件快速读取方法,其特征在于,所述替换步骤包括接收用户输入的需要替换的坐标轴及设定值;获取每个数组中每个点的坐标值;将每个点对应该坐标轴的坐标值替换为所述设定值;及将替换后的坐标值保存到每个数组中。
5.如权利要求1所述的点云文件快速读取方法,其特征在于,所述分隔符为除 “ + ”及O到9以外别的符号。
6.一种点云文件快速读取系统,其特征在于,该系统包括开启模块,用于获取点云文件所在的路径,并根据该路径从计算装置的存储设备中读取并打开该点云文件;创建模块,用于获取该计算装置的CPU中的所有执行单元的个数N,创建具有多任务处理能力的N条线程,将所述点云文件分成N段快速并行读入并且分别存入N个数组中; 截取模块,用于当一段点云文件中的坐标值有分隔符时,提示用户确认该分隔符,并在得到用户确认的分隔符后,以所述分隔符为界截取出该段点云文件中每个点对应的X、Y、Z轴的坐标值,保存到数组中; 所述截取模块还用于当一段点云文件中的坐标值没有分隔符时,提示用户确认每个点的坐标值长度,并根据用户确认的坐标值长度截取该段点云文件中每个点的X、Y、Z轴的坐标值,保存到数组中; 旋转模块,用于根据用户对坐标轴的选择,进行坐标轴互换; 替换模块,用于根据用户设定将对应坐标轴的坐标值用设定值替换;及绘制模块,用于将N条线程的所有数组合并成一个坐标数组,并根据该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。
7.如权利要求6所述的点云文件快速读取系统,其特征在于,当一段点云文件中的坐标值没有分隔符时,所述截取模块的截取过程包括 随机选取一段点云文件,从该选取的点云文件中读取一行字符串; 计算该行字符串的长度; 将字符串长度除以3得到X、Y、Z轴的坐标值的长度Lengthl ; 将Lengthl提示给用户确认; 根据用户确认后的长度Length2截取得到该段点云文件中每个点的X、Y、Z轴的坐标值;及 将坐标值保存到数组中。
8.如权利要求6所述的点云文件快速读取系统,其特征在于,所述旋转模块的旋转过程包括 接收用户选择的需要互换的两个坐标轴; 获取每个数组中每个点的坐标值; 把每个点对应该两个坐标轴的坐标值互换;及 将互换后的坐标值保存到每个数组中。
9.如权利要求6所述的点云文件快速读取系统,其特征在于,所述替换模块的替换过程包括 接收用户输入的需要替换的坐标轴及设定值; 获取每个数组中每个点的坐标值; 将每个点对应该坐标轴的坐标值替换为所述设定值;及 将替换后的坐标值保存到每个数组中。
10.如权利要求6所述的点云文件快速读取系统,其特征在于,所述分隔符为除“ + ”及O到9以外别的符号。
全文摘要
一种点云文件快速读取系统,该系统用于创建具有多任务处理能力的N条线程,将所述点云文件分成N段快速并行读入并且分别存入N个数组中;截取出每段点云文件中每个点对应的X、Y、Z轴的坐标值;根据用户对坐标轴的选择,进行坐标轴互换;根据用户设定将对应坐标轴的坐标值用设定值替换;将N条线程的所有数组合并成一个坐标数组,并根据该坐标数组中每个点的X、Y、Z轴的坐标值绘制成点云图片。本发明还提供一种点云文件快速读取方法。本发明可以提高点云文件读取的通用性,并且在绘制点云图片前处理点云数据。
文档编号G06F17/30GK103020080SQ20111028654
公开日2013年4月3日 申请日期2011年9月23日 优先权日2011年9月23日
发明者张旨光, 吴新元, 王伟 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1