一种交互式三维点云颜色编辑方法

文档序号:6515266阅读:1796来源:国知局
一种交互式三维点云颜色编辑方法
【专利摘要】本发明公开了一种交互式三维点云颜色编辑方法,包括以下步骤:S1、三维点云可视化;S2、三维视图调整;S3、上色颜色选取;S4、三维点云交互选点;S5、三维点云上色;S6、重复步骤S2至步骤S5并循环,直至遍历所有需要进行上色的点云。本发明采用三维投影结合计算机视觉的方法,使得三维点云的颜色编辑过程更符合人类视觉感官,同时通过人机交互的方式,可快速准确的对失真点云进行修正。
【专利说明】—种交互式三维点云颜色编辑方法【技术领域】
[0001]本发明涉及点云数据处理方法领域,具体的说是一种对三维点云数据进行交互式颜色编辑的方法。
【背景技术】
[0002]三维点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合。
[0003]随着三维激光扫描技术的快速发展并广泛应用,三维点云数据尤其是包含点云颜色信息的三维彩色点云数据,已经成为了一种记录环境空间分布及表面特性的重要数据形式。
[0004]由于测量环境、被测对象形貌等因素的影响和限制,三维彩色点云数据通常会产生颜色上的失真以及噪点,这就使得对点云的后处理显得尤为重要,其中对三维点云进行颜色编辑是修正失真点云的关键。

【发明内容】

[0005]本发明的目的在于提供一种交互式三维点云颜色编辑方法,其采用人机交互方式,可快速准确的对失真点云进行修正。
[0006]为实现上述目的,本发明采用以下技术方案:
[0007]—种交互式三维点云颜色编辑方法,包括以下步骤:
[0008]SI、三维点云可视化,通过读取三维点云数据,获得三维点云的空间坐标信息及颜色值,将其绘制并显示在交互窗口中;
[0009]S2、三维视图调整,对交互窗口中的三维点云进行三维视图调整,所述三维视图调整包括旋转、平移及缩放;
[0010]S3、上色颜色选取,采用单点颜色提取方式或调色板颜色选取方式,选取用于给三维点云上色的颜色,并输出该颜色的RGB颜色值;
[0011 ] S4、三维点云交互选点,选中需要进行上色的点云,选中的点云为三维点云数据中的单个点或某一区域内的所有点;
[0012]S5、三维点云上色,将步骤S3中选取的颜色值赋给步骤S4中选中的点云;
[0013]S6、重复步骤S2至步骤S5并循环,直至遍历所有需要进行上色的点云。
[0014]进一步地,所述单点颜色提取方式通过以下步骤实现:
[0015]S31、三维投影,采用透视投影的方式将三维点云投影到交互窗口的显示平面上,获得点云的X值、y值和Z值,其中X值和y值是三维点云在显示平面上的坐标,z值是三维点云到显示平面的距离值,z值代表点云在当前视角中的深度,z值越大,深度值越大,定义z值与深度值的线性对应关系,z值为O时,深度值为0,z值为预先设定的一特定值时,深度值为I ;
[0016]S32、选中三维点云中的单个点;
[0017]S33、读取并输出步骤S32中选中的点的RGB颜色值。[0018]优选地,所述步骤S32包括以下子步骤:
[0019]S321、以用户鼠标在显示平面上的点击位置为中心,设置一个平面搜索半径,选中该范围之内的z值最小的点;
[0020]S322、若不存在步骤S321中选中的点,则重复步骤S321或选中距离用户鼠标在显示平面上的点击位置最近的点。
[0021]优选地,所述平面搜索半径为
[0022]进一步地,所述步骤S4具体包括以下分步骤:
[0023]S41、重复步骤 S31;
[0024]S42、交互式选点,采用单点选点方式、毛刷选点方式、多边形选点方式、反选方式中的任一种方式选中需要进行上色的点云。
[0025]优选地,所述单点选点方式通过以下方法实现:重复步骤S321和步骤S322,得到被选中的单个点。
[0026]优选地,所述毛刷选点方式通过以下方法实现:通过调整毛刷深度值以及毛刷半径形成一圆柱形的选点范围,该圆柱形的顶面与显示平面在同一平面内,以用户鼠标在显示平面上的点击位置为该圆柱形的顶面圆心,选中在该圆柱形的选点范围内的点云。
[0027]优选地,所述多边形选点方式通过以下方法实现:在交互窗口的显示平面上绘制多边形,判断点云是否位于该多边形内部,选中位于所述多边形内部的且深度值在O到I范围内的点云。
[0028]优选地,所述判断点云是否位于该多边形内部,通过以下方法实现:获取所述多边形所在区域的X最大值、X最小值、y最大值、y最小值,分别设为X_、Xmin> ymax> ymin;对所有点循环判断,剔除x〈xmin、x>xmax、y<ymin及y>y_的点;对于剩余的每一个点,分别计算从该点向无穷远处引一条射线,该条射线与多边形的交点个数,若为奇数,则该点在多边形内部,若为偶数,则该点在多边形外部。
[0029]进一步地,还包括步骤S7,所述步骤S7位于步骤S6之后或步骤S3之前,所述步骤S7包括以下子步骤:
[0030]S71、重复步骤 S31;
[0031]S72、用户根据实际需要分别选中三维点云中的两个点作为映射基准点,并计算确定两个映射基准点之间的映射关系;
[0032]S73、采用毛刷选点方式进行选点,通过调整毛刷深度值以及毛刷半径形成一圆柱形的选点范围,该圆柱形的顶面与显示平面在同一平面内,以用户鼠标在显示平面上的点击位置为该圆柱形的顶面圆心,选中在该圆柱形的选点范围内的点云;
[0033]S74、对于在步骤S73中选中的点云中的单个点,根据在步骤S72中计算确定的映射关系,获得该单个点的映射位置,选取距离该映射位置最近的点的颜色值并赋给该单个占.
[0034]S75、重复步骤S74,遍历圆柱形的选点范围内的所有点云。
[0035]采用上述技术方案后,本发明与【背景技术】相比,具有如下优点:
[0036]I、本发明采用三维投影结合计算机视觉的方法,使得三维点云的颜色编辑过程更符合人类视觉感官,同时通过人机交互的方式,可快速准确的对失真点云进行修正。
[0037]2、通过单点选点、毛刷选点、多边形选点及反选四种选点方式的配合运用,可对较大规模的点云,如十亿个点级别的点云数据进行颜色编辑,处理速度基本达到实时效果,便于用户对三维点云数据进行后续处理。
[0038]3、本发明采用毛刷选点方式结合坐标映射,可将某一区域内的点云修改为不同的颜色值,使其具有纹理效果,在视觉上更加细腻真实。
【专利附图】

【附图说明】
[0039]图I为本发明实施例一的工作流程图。
[0040]图2为本发明基于深度优先原则选中三维点云中单个点的示意图。
[0041]图3为本发明基于最近邻原则选中三维点云中单个点的示意图。
[0042]图4为本发明对树的三维点云进行毛刷选点的示意图。
[0043]图5为本发明对树的三 维点云进行多边形选点的示意图。
[0044]图6为本发明实施例二的工作流程图。
[0045]图7为本发明采用毛刷选点方式结合坐标映射对三维点云进行颜色编辑的示意图。
【具体实施方式】
[0046]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047]实施例一
[0048]在对本实施例进行详细描述之前,需要指出的是,本实施例所提供的交互式三维点云颜色编辑方法,是基于人机交互的方式,对三维点云进行颜色编辑的。在颜色编辑过程中涉及的颜色值均采用RGB颜色模型,通过红绿蓝三通道颜色值的混合形成彩色。
[0049]请参阅图1,本发明提供了一种交互式三维点云颜色编辑方法,包括以下步骤:
[0050]SI、三维点云可视化。
[0051]通过读取三维点云数据,获得三维点云的空间坐标信息及颜色值,将其绘制并显示在交互窗口中。
[0052]S2、三维视图调整。
[0053]用户通过鼠标的交互,对交互窗口中的三维点云进行三维视图调整,从而获得颜色编辑过程中的最佳视角及最佳视觉效果。三维视图调整包括旋转、平移及缩放。
[0054]S3、上色颜色选取。
[0055]本步骤可通过单点颜色提取和调色板颜色选取两种方式实现,用户可根据实际的需要,采用其中任一种方式来选取用于给三维点云上色的颜色值,例如,若步骤Si中读取的三维点云数据未携带颜色值信息,则用户可通过调色板颜色选取方式在调色板上选取用于给三维点云上色的颜色值,又如,若步骤SI中读取的三维点云数据携带有颜色值信息,且该颜色值符合后续上色要求,则用户可通过单点颜色提取方式在三维点云上选取用于给三维点云上色的颜色值。其中:
[0056]调色板颜色选取方式是通过以下方法实现:调色板将RGB颜色模型所能提供的颜色全部显示出来,并提供几种常用的基本颜色,用户可以直接从常用的基本颜色中选择颜色或者在调色板中自行选择需要的颜色,通过选定颜色并将该颜色的RGB颜色值输出以完成颜色选取过程。
[0057]单点颜色提取方式通过以下步骤实现:
[0058]S31、三维投影。由于三维点云所在的空间坐标系是三维的,而显示平面所在的坐标系是二维的,为了实现三维点云与交互界面的坐标对应,采用透视投影的方法,将三维点云的坐标映射到交互窗口的显示平面上,并获得点云的X值、Y值和Z值,其中X值和y值是点云在显示平面上的坐标,z值是三维点云到显示平面的距离值。z值代表点云在当前视角中的深度,Z值越大,深度值越大。同时,定义Z值与深度值的线性对应关系,z值为O时,深度值为0,z值为某一特定值时,深度值为I。这里提到的“某一特定值”指的是,在正常情况下人眼能够清晰识别的最远直线距离,在本实例中,根据经验将该特定值设为250m。
[0059]本领域技术人员应该理解的是,对于深度值大于I的点云(即超出人眼能够清晰识别范围的点云)或小于O的点云(即位于交互窗口之外的点云)进行颜色编辑及其他处理没有实际意义,反而会在点云处理过程中增加不必要的工作量。因此,本发明在对三维点云进行颜色编辑过程中,只考虑深度值在O到I范围内的点,对于范围之外的其他点云不做处理。
[0060]S32、选中三维点云中的单个点,其具体包括以下步骤:
[0061]S321、以用户鼠标在显示平面上的点击位置为中心,设置一个平面搜索半径,选中该范围之内的z值最小的点。也就是说,以用户鼠标在显示平面上的点击位置为圆心,以平面搜索半径的值作为圆形的半径值,界定一个圆形区域,选中该圆形区域内z值最小的点。平面搜索半径的值可以根据经验得出,也可跟据实际需要进行修改。在本实施例中,将平面搜索半径设定为Vicm。对于单个点的选择,从视觉上来说,人们更倾向于在关注范围内选择最靠近自己的点,因此本步骤是基于深度优先的原则进行选点的。以图2为例,用户通过鼠标交互,在显示平面上选定一圆形区`域D1,圆形区域D1内包含有三个点,其中点P1的Z值最小,故选中点Pp
[0062]S322、若不存在步骤S321中选中的点,则重复步骤S321或选中距离用户鼠标在显示平面上的点击位置最近的点。在本实施例中,基于最近邻原则,若不存在步骤S321中选中的点,则选中距离用户鼠标在显示平面上的点击位置最近的点。以图3为例,用户通过鼠标交互,在显示平面上选定一圆形区域D2,圆形区域D2内不存在点云,故选中距离用户鼠标在显示平面上的点击位置(即圆形区域D2的圆心)最近的点,点P2离圆形区域D2的圆心最近,故选中点P2。
[0063]为了方便理解,对步骤S321和步骤S322的实现原理做进一步说明。首先输入一个用户在显示平面上选定的位置,通过模拟从该位置垂直于显示平面向内照射一束半径为^cni的光束,选择被光束照到的所有点中最靠近观察点的点云;若光束没有照到点云,则选择距离光束中心最近的点云。通过这样的方式能够使得选点符合视觉感官,并且通过结合最近邻的方式可以让选择目标边界上的点时更加方便。
[0064]S33、读取并输出步骤S32中选中的点的RGB颜色值。
[0065]S4、三维点云交互选点。
[0066]选中需要进行上色的点云,选中的点云为三维点云数据中的单个点或某一区域内的所有点。该步骤具体包括以下步骤:[0067]S41、三维投影。该步骤的工作过程与步骤S31相同,其具体工作过程可参见步骤S31的相关描述。
[0068]S42、交互式选点,包括单点选点、毛刷选点、多边形选点及反选四种选点方式,用户在实际的交互操作过程中,可根据三维点云的形貌、失真点云的分布位置等实际情况,选择合适的选点方式。
[0069]下面对上述四种选点方式分别进行详细描述。
[0070]单点选点方式用于选中三维点云中的单个点,其工作过程与步骤S32相同,更具体的说,重复步骤S321和步骤S322的工作过程,即可实现单点选点方式。单点选点的具体工作过程可参见步骤S321和步骤S322的相关描述。
[0071]毛刷选点方式通过以下方法实现:调整毛刷深度值和毛刷半径,以用户鼠标在显示平面上的点击位置为中心,结合毛刷深度值和毛刷半径,选中所有在范围内的点云。毛刷深度值默认为视野纵深(即深度值为1),毛刷深度值可按照视野纵深的百分比来调整;毛刷半径默认为100cm。通过调整毛刷深度值和毛刷半径形成一个圆柱形的选点范围,并输入用户在显示平面上选定的位置,选中的点云就是以显示平面上的选定位置为圆柱形顶面圆心,顶面圆平面与显示平面平行,选中在圆柱形范围内的点。以树的三维点云颜色编辑为例,参见图4,用户鼠标在显示平面上划过,获得毛刷选点区域D3,用户鼠标划过的轨迹可视为一组连续的鼠标点击位置的集合,区域D3为基于每个鼠标点击位置获得的选点范围叠加--? 。
[0072]多边形选点方式通过以下方法实现:在交互窗口绘制多边形,判断点云是否位于该多边形内部,选中位于多边形内部的且深度值在O到I范围内的所有点云。仍以树的三维点云颜色编辑为例,如图5所示,用户通过鼠标操作在显示平面绘制一个多边形,获得多边形选点区域D4,然后选中多边形选点区域D4内的所有点云。
[0073]其中,判断点云是否位于该多边形内部,是通过以下方法实现的:获取多边形所在区域的X最大值、X最小值、y最大值、y最小值,分别设为X_、Xmin> ymax> ymin;对所有点循环判断,剔除x〈xmin、x>xmax> yU y>ymax的点;对于剩余的每一个点,分别从该点向无穷远处引一条射线,计算这条射线与多边形的交点个数,若为奇数,则该点在多边形内部,若为偶数,则该点在多边形外部。
[0074]反选方式是通过以下方法实现的:在采用上述的其他三种选点方式的过程中,每当一个点未被选中,就将该点保存未被反选中的点,通过相应的反选操作选择所有之前未选中的点。
[0075]S5、三维点云上色,将步骤S3中选取的颜色值赋给步骤S4中选中的点云,本步骤实际上就是修改选中点云的颜色值信息的过程。
[0076]S6、重复步骤S2至步骤S5并循环,直至遍历所有需要进行上色的点云。此时,即完成了对三维点云的颜色编辑工作。
[0077]在对三维点云的颜色编辑过程中,通过单点选点、毛刷选点、多边形选点及反选四种选点方式的配合运用,可对较大规模的点云,如百万个点级别的点云数据进行颜色编辑,处理速度基本达到实时效果,便于用户对三维点云数据进行后续处理。
[0078]实施例二
[0079]本实施例与实施例一的不同之处在于,本实施例还包括对三维点云的纹理信息进行编辑的步骤S7,这里提到的纹理信息指的是三维点云中的各个点所具有的不同的颜色值信息,对三维点云的纹理信息进行编辑实际上就是对三维点云的颜色值进行编辑。
[0080]步骤S7可位于步骤S6之后,也可位于步骤S3之前,用户可根据时间情况灵活选择,本实施例中步骤步骤S7可位于步骤S6之后(如图6所示)。
[0081]步骤S7包括以下步骤:
[0082]S71、三维投影,该步骤的工作过程与步骤S31相同,其具体工作过程可参见步骤S31的相关描述。
[0083]S72、用户根据实际需要分别选中三维点云中的两个点作为映射基准点,并计算确定两个映射基准点之间的映射关系,这里提到的分别选中三维点云中的两个点是通过单点选点方式实现的,单点选点方式的工作过程请参见步骤S321和步骤S322的工作过程;
[0084]S73、采用毛刷选点方式进行选点,通过调整毛刷深度值以及毛刷半径形成一圆柱形的选点范围,该圆柱形的顶面与显示平面在同一平面内,以用户鼠标在显示平面上的点击位置为该圆柱形的顶面圆心,选中在该圆柱形的选点范围内的点云;
[0085]S74、对于在步骤S73中选中的点云中的单个点,根据在步骤S72中计算确定的映射关系,获得该单个点的映射位置,选取距离该映射位置最近的点的颜色值并赋给该单个占.
[0086]S75、重复步骤S74,遍历圆柱形的选点范围内的所有点云。
[0087]下面结合图7对步骤S72-S75做进一步说明。
[0088]参见图7,用户根据实际需要确定了目标区域D。(即需要进行纹理信息编辑的区域)和纹理选取区域Ds,采用单点选点方式在目标区域D。选中一个映射基准点Po (xd, yd),在纹理选取区域Ds选中另一个映射基准点Ps(xs,ys),通过计算确定了 Po 与Ps的映射关系,也就确定了目标区域D。内的点与纹理选取区域队内的点的映射关系。
[0089]用户采用毛刷选点方式进行选点,形成一圆柱形的选点范围,其中点A1为该圆柱形的顶面圆心,点A1在显示平面上的坐标(Xd,yd),点仏的深度值为Z1 ;根据上述映射关系,形成一圆柱形的映射选点范围,其中点A2为该圆柱形的顶面圆心,点A2在显示平面上的坐标(Xd+Xs,Xo,yd+ys-yo),点A2的深度值为z2, z2为该圆柱形的映射选点范围内所有点中深度值最小的点的深度值。
[0090]对于圆柱形的选点范围内的单个点,以点D为例,点D在显示平面上的坐标为(xd,yd),深度为Zd,其根据映射关系确定的映射位置为D',D'在显示平面上的坐标为(xd+xs-xo,yd+ys-yo),D'的深度值为(Zd+Z2-Z1),选取与D'最近邻的点的颜色值并赋给点D,此时就完成了对点D的颜色修改过程。按照同样的方式,遍历圆柱形的选点范围内的所有点。
[0091]通过以上描述可以看出,实施例一对三维点云的颜色编辑过程实际上是将某一区域内的点云修改为相同的颜色,而本实施例在实施例一的基础上还可通过步骤S7将某一区域内的点云修改为不同的颜色,使其具有纹理效果,在视觉上更加细腻真实。
[0092]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1.一种交互式三维点云颜色编辑方法,其特征在于,包括以下步骤: 51、三维点云可视化,通过读取三维点云数据,获得三维点云的空间坐标信息及颜色值,将其绘制并显不在交互窗口中; 52、三维视图调整,对交互窗口中的三维点云进行三维视图调整,所述三维视图调整包括旋转、平移及缩放; 53、上色颜色选取,采用单点颜色提取方式或调色板颜色选取方式,选取用于给三维点云上色的颜色,并输出该颜色的RGB颜色值; 54、三维点云交互选点,选中需要进行上色的点云,选中的点云为三维点云数据中的单个点或某一区域内的所有点; 55、三维点云上色,将步骤S3中选取的颜色值赋给步骤S4中选中的点云; 56、重复步骤S2至步骤S5并循环,直至遍历所有需要进行上色的点云。
2.如权利要求1所述的一种交互式三维点云颜色编辑方法,其特征在于,所述单点颜色提取方式通过以下步骤实现: 531、三维投影,采用透视投影的方式将三维点云投影到交互窗口的显示平面上,获得点云的X值、y值和ζ值,其中X值和y值是三维点云在显示平面上的坐标,ζ值是三维点云到显示平面的距离值,ζ值代表点云在当前视角中的深度,ζ值越大,深度值越大,定义ζ值与深度值的线性对应关系,ζ值为O时,深度值为O,ζ值为预先设定的一特定值时,深度值为I ; 532、选中三维点云中的单个点; 533、读取并输出步骤S32中选中的点的RGB颜色值。
3.如权利要求2所述的一种交互式三维点云颜色编辑方法,其特征在于,所述步骤S32包括以下子步骤: 5321、以用户鼠标在显示平面上的点击位置为中心,设置一个平面搜索半径,选中该范围之内的ζ值最小的点; 5322、若不存在步骤S321中选中的点,则重复步骤S321或选中距离用户鼠标在显示平面上的点击位置最近的点。
4.如权利要求3所述的一种交互式三维点云颜色编辑方法,其特征在于:所述平面搜索半径为Cm。
5.如权利要求3所述的一种交互式三维点云颜色编辑方法,其特征在于,所述步骤S4具体包括以下分步骤: 541、重复步骤S31; 542、交互式选点,采用单点选点方式、毛刷选点方式、多边形选点方式、反选方式中的任一种方式选中需要进行上色的点云。
6.如权利要求5所述的一种交互式三维点云颜色编辑方法,其特征在于,所述单点选点方式通过以下方法实现:重复步骤S321和步骤S322,得到被选中的单个点。
7.如权利要求5所述的一种交互式三维点云颜色编辑方法,其特征在于,所述毛刷选点方式通过以下方法实现:通过调整毛刷深度值以及毛刷半径形成一圆柱形的选点范围,该圆柱形的顶面与显示平面在同一平面内,以用户鼠标在显示平面上的点击位置为该圆柱形的顶面圆心,选中在该圆柱形的选点范围内的点云。
8.如权利要求5所述的一种交互式三维点云颜色编辑方法,其特征在于,所述多边形选点方式通过以下方法实现:在交互窗口的显示平面上绘制多边形,判断点云是否位于该多边形内部,选中位于所述多边形内部的且深度值在O到I范围内的点云。
9.如权利要求8所述的一种交互式三维点云颜色编辑方法,其特征在于,所述判断点云是否位于该多边形内部,通过以下方法实现:获取所述多边形所在区域的X最大值、X最小值、y最大值、y最小值,分别设为xmax、xmin> ymax、ymin;对所有点循环判断,剔除x〈xmin、Χ>Χη,3χ>Υ<Υη,?η及YWmax的点;对于剩余的每一个点,分别计算从该点向无穷远处引一条射线,该条射线与多边形的交点个数,若为奇数,则该点在多边形内部,若为偶数,则该点在多边形外部。
10.如权利要求2-9任一项所述的一种交互式三维点云颜色编辑方法,其特征在于,还包括步骤S7,所述步骤S7位于步骤S6之后或步骤S3之前,所述步骤S7包括以下子步骤: .571、重复步骤S31; .572、用户根据实际需要分别选中三维点云中的两个点作为映射基准点,并计算确定两个映射基准点之间的映射关系; .573、采用毛刷选点方式进行选点,通过调整毛刷深度值以及毛刷半径形成一圆柱形的选点范围,该圆柱形的顶面与显示平面在同一平面内,以用户鼠标在显示平面上的点击位置为该圆柱形的顶面圆心,选中在该圆柱形的选点范围内的点云; .574、对于在步骤S73中选中的点云中的单个点,根据在步骤S72中计算确定的映射关系,获得该单个点的映射位置,选取距离该映射位置最近的点的颜色值并赋给该单个点; .575、重复步骤S74,遍历圆柱形的选点范围内的所有点云。
【文档编号】G06T19/20GK103489224SQ201310476596
【公开日】2014年1月1日 申请日期:2013年10月12日 优先权日:2013年10月12日
【发明者】王程, 蔡志鹏, 林阳斌, 程骏, 李军 申请人:厦门大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1