CN116188678A - 点云处理方法、装置、设备及存储介质 - Google Patents
点云处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116188678A CN116188678A CN202211635298.4A CN202211635298A CN116188678A CN 116188678 A CN116188678 A CN 116188678A CN 202211635298 A CN202211635298 A CN 202211635298A CN 116188678 A CN116188678 A CN 116188678A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- point
- point cloud
- depth map
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices With Unspecified Measuring Means (AREA)
Abstract
本申请提供一种点云处理方法、装置、设备及存储介质。所述方法包括:响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;确定点云中的每一个三维点在所述深度图中的映射位置;根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。本实施例实现对点云表面的三维点的准确选择。
Description
技术领域
本申请涉及点云处理技术领域,尤其涉及一种点云处理方法、装置、电子设备及计算机可读存储介质。
背景技术
点云数据(point cloud data)是指在一个三维坐标系统中的一组向量的集合,在显示时以点的形式进行渲染(例如在OpenGL中,绘制的图元类型为GL_POINTS)。
在一种需求场景中,用户需要对点云的局部区域进行选择,选中点云表面的点,从而对选中的三维点进行某些处理。
相关技术中的一种点云选择方式是基于三维点的法向量方向来进行选择,具体来说,使用穿透的方法进行选择,将法向量方向与屏幕所在平面存在相交的点(也就是法向量朝向屏幕外)、且在选择区域内的三维点,作为最终的选择结果。但是,上述选择方式存在漏选或者多选的问题,无法完全选中属于点云表面的点。
因此,有必要提供一种点云处理方法,以实现对点云表面的点的选择。
发明内容
有鉴于此,本申请提供一种点云处理方法、装置、电子设备及计算机可读存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种点云处理方法,包括:
响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;
确定点云中的每一个三维点在所述深度图中的映射位置;
根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;
从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
可选的,所述根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点,包括:
对于所述点云中的每一个三维点,若所述三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差值小于预设阈值,确定该三维点为在当前视角下处于点云表面的三维点;否则,确定该三维点为在当前视角下处于点云非表面的三维点。
可选的,所述根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图,包括:
根据所述点云中的每一个三维点与相邻三维点之间的距离,确定每一个三维点的显示尺寸,所述显示尺寸用于使三维点与其相邻三维点在显示时无间隙;
将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的像素为在当前视角下处于点云表面的部分三维点的映射结果。
可选的,所述点云中的每一个三维点与相邻三维点之间的距离为预设值;
其中,若所述点云为间隙均匀的点云,所述预设值根据所述点云中所有三维点分别与其相邻三维点之间的距离的统计值确定;
若所述点云为间隙不均匀的点云,所述预设值根据所述点云的业务场景指示的相邻条件确定。
可选的,每一个三维点的显示尺寸根据该三维点与其相邻三维点之间的距离、以及预存的三维空间中的距离与二维空间中的像素个数之间的换算关系确定。
可选的,所述将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图,包括:
将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间得到第一映射结果;
对所述第一映射结果进行深度测试,得到当前视角下的深度图。
可选的,所述确定点云中的每一个三维点在所述深度图中的映射位置,包括:
将所述点云从三维空间再次映射到二维空间得到第二映射结果;
根据所述第二映射结果,确定点云中的每一个三维点在所述深度图中的映射位置。
可选的,还包括:
在显示界面上以指定颜色和/或指定纹理显示所述目标三维点;或者
将所述目标三维点设置为选中状态;或者
删除所述目标三维点。
根据本申请实施例的第二方面,提供一种点云处理装置,包括:
深度图获取模块,用于响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;
映射位置确定模块,用于确定点云中的每一个三维点在所述深度图中的映射位置;
表面三维点确定模块,用于根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;
目标三维点确定模块,用于从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
根据本申请实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令;
其中,所述处理器执行所述可执行指令时实现如第一方面任意一项所述方法中的步骤。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现第一方面任意一项所述方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,考虑到了不同三维点之间存在间隙的问题,为了避免在深度图中通过间隙呈现非点云表面的三维点,因此参考了所述点云中的每一个三维点与相邻三维点之间的距离,保证所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;然后在确定点云中的每一个三维点在所述深度图中的映射位置之后,通过所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异可以确定出该三维点是否处于点云表面,在遍历完点云中的所有三维点之后可以确定在当前视角下处于点云表面的所有三维点,以及可以确定处于所述选择操作指示的选择区域内的目标三维点,实现对点云表面的三维点的准确选择。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本申请一示例性实施例示出的一种点云处理方法的流程示意图。
图2A是本申请一示例性实施例示出的从正面视角下观察到的点云的示意图。
图2B是本申请一示例性实施例示出的从侧面视角下观察到的点云以及用户在点云上划定的选择区域的示意图。
图3A是本申请一示例性实施例示出的在从侧面视角下观察到的点云中显示处于选择区域内的目标三维点的示意图。
图3B是本申请一示例性实施例示出的在从正面视角下观察到的点云中显示处于选择区域内的目标三维点的示意图。
图4是本申请一示例性实施例示出的深度图的示意图。
图5是本申请一示例性实施例示出的电子设备的示例性示意图。
图6是本申请一示例性实施例示出的一种点云处理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关技术中的一种点云选择方式是基于三维点的法向量方向来进行选择,具体来说,使用穿透的方法进行选择,将点云中的所有三维点从三维空间映射到二维空间,根据每一个三维点的映射结果判断该三维点的法向量是否朝向屏幕外且处于选择区域内,最后将法向量方向与屏幕所在平面存在相交的点(也就是法向量朝向屏幕外)、且在选择区域内的三维点,作为最终的选择结果。
但是,上述选择方式存在以下问题,无法完全选中属于点云表面的点:
(1)如果点云数据从当前视角下观察,由好几层深度不同的三维点组成,有多层三维点的法向量方向与屏幕所在平面存在相交,那么这些三维点都会被选中,从而导致多选的问题,即选中不属于点云表面的三维点。
(2)如果是由三维扫描软件扫出来的点云,有些三维点属于杂点,属于杂点的三维点的法向量方向可能和真实的物体上对应位置的法向不一致,所以有可能虽然这些三维点处于表面,但是法向量方向却朝向屏幕内,没有与屏幕所在平面存在相交,导致漏选的问题。
因此,针对于相关技术中的问题,本申请实施例提供了一种点云处理方法,响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,考虑到了不同三维点之间存在间隙的问题,为了避免在深度图中通过间隙呈现非点云表面的三维点,因此参考了所述点云中的每一个三维点与相邻三维点之间的距离,保证所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;然后在确定点云中的每一个三维点在所述深度图中的映射位置之后,通过所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异可以确定出该三维点是否处于点云表面,在遍历完点云中的所有三维点之后可以确定在当前视角下处于点云表面的所有三维点,最后可以从当前视角下处于点云表面的所有三维点中确定处于所述选择操作指示的选择区域内的目标三维点,实现对点云表面的三维点的准确选择。
无论是杂点还是其他类型的三维点,只要处于点云表面,都能通过本申请提供的点云处理方法筛选出来,减少了漏选的风险;并且由于深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值,则将所述点云中的每一个三维点的深度值与在所述深度图中的映射位置处的深度值进行比较,可以筛掉离点云表面比较远的三维点(不属于点云表面),减少多选的风险,实现对处于点云表面的三维点的准确选择。
本申请实施例提供的点云处理方法可以由电子设备来执行,所述电子设备包括但不限于智能电话/手机、平板计算机、个人数字助理(PDA)、膝上计算机、台式计算机、媒体内容播放器、视频游戏站/系统、虚拟现实系统、增强现实系统、可穿戴式装置(例如,手表、眼镜、手套、头饰(例如,帽子、头盔、虚拟现实头戴耳机、增强现实头戴耳机、头装式装置(HMD)、头带)、挂件、臂章、腿环、鞋子、马甲)、遥控器、或者任何其他装置。
示例性的,所述电子设备包括有处理器和存储器,存储器存储有可在处理器上运行的可执行指令,所述处理器执行所述可执行指令时实现本申请实施例提供的点云处理方法。
示例性的,所述电子设备集成一计算机程序产品,该电子设备执行该计算机程序产品时实现本申请实施例提供的点云处理方法。
在一示例性的应用场景中,通过测量仪器扫描一立体的目标物体得到目标物体的点云的过程中,测量仪器可能会把一些在目标物体表面的不属于目标物体的其他杂物也扫描到;举个例子,比如在扫描车辆的时候把飞溅到车辆的水珠、大片灰尘等杂物也一并扫描了;又比如在扫描牙齿的时候把撑开嘴巴的手指扫描到了;从而得到的点云表面可能存在不属于目标物的杂物的三维点,则可以应用本申请提供的点云处理方法,根据用户的选择操作选中属于点云表面且在选择区域内的目标三维点,并删除该属于杂物的目标三维点,实现对点云中的噪声点的处理。
请参阅图1,图1为本申请实施例提供的一种点云处理方法的示意图,所述方法可以由电子设备来执行,所述方法包括:
在S101中,响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值。
在S102中,确定点云中的每一个三维点在所述深度图中的映射位置。
在S103中,根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点。
在S104中,从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
在本实施例中,考虑到不同三维点之间存在间隙的问题,即使点云比较密集,放大到一定程度观察,仍然能看到间隙,甚至可以通过间隙看到远处的三维点,因此本申请为了避免在深度图中通过间隙呈现非点云表面的三维点,在将点云从三维空间映射到二维空间的过程中考虑了所述点云中的每一个三维点与相邻三维点之间的距离,保证了映射得到的深度图的深度值仅包括在当前视角下处于点云表面的至少部分三维点的深度值,而不包含处于点云非表面的三维点的深度值;这样可以以深度图的深度值作为参考,在确定了点云中的每一个三维点在所述深度图中的映射位置之后,可以根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异判断该三维点是否处于点云表面,从而确定在当前视角下处于点云表面的所有三维点;进而可以从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点,实现对点云表面的三维点进行准确选择,满足用户对点云表面的三维点的处理需求。
在一些实施例中,请参阅图2A和图2B,图2A为从正面视角下观察到的点云,图2B为从侧面视角下观察到的点云。在一个例子,请参阅图2B,用户在显示有点云的界面上进行选择操作,从侧面视角下划定点云的某一局部区域(即图2B中示出的选择区域)。进而电子设备响应于用户的选择操作,执行本申请实施例提供的点云处理方法,确定处于所述选择操作指示的选择区域内的目标三维点,示例性的,请参阅图3A,电子设备可以在显示界面上以指定颜色显示选中的目标三维点,该目标三维点为在当前侧面视角下处于点云表面且处于选择区域内的三维点,请参阅图3B,当将点云从侧面视角调整为正面视角时,可以看到从侧面视角下的点云进行选择的显示结果,选择了在侧面视角下处于选择区域内的点云表面的三维点,且在侧面视角下被挡住的区域的三维点并没有被选中。
在一种可能的实施方式中,响应于对点云的选择操作,电子设备首先根据所述点云中的每一个三维点与相邻三维点之间的距离,确定每一个三维点的显示尺寸,所述显示尺寸用于使三维点与其相邻三维点在显示时无间隙。由于确定了每个三维点在显示时能够将间隙填满的显示尺寸,则在任何视角下观察点云时,都只能看到点云表面的三维点,从而避免在获取的深度图中通过间隙呈现非点云表面的三维点;将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图,可以保证获得的深度图中的像素均为在当前视角下处于点云表面的部分三维点的映射结果,也就是说,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值。本实施例通过上述方式填满三维点之间的间隙,使得不管对点云进行何种程度的缩放,最终在深度图中的映射结果就只有点云表面的一层;即是说,不管怎么放大观察点云,本申请均可以通过上述填补间隙的方式实现对点云表面的三维点的选择。
在一个例子中,请参阅图4,图4示出了在确定了每一个三维点的显示尺寸以填满三维点之间的间隙之后,映射得到的深度图。
示例性的,所述点云中的每一个三维点与相邻三维点之间的距离可以根据两者之间的三维坐标计算得到。
示例性的,考虑到基于三维坐标精确计算点云中的每一个三维点与相邻三维点之间的距离需要耗费大量的计算资源,为节省计算资源,提高计算效率,所述点云中的每一个三维点与相邻三维点之间的距离可以是预设值。
在一个例子中,若所述点云为间隙均匀的点云,所述预设值根据所述点云中所有三维点分别与其相邻三维点之间的距离的统计值确定;所述统计值包括但不限于平均值、中位数或者最大值等等;以平均值为例,为保证确定的三维点的显示尺寸可以填满间隙,则所述预设值可以是比平均值稍大的值。
在另一个例子中,若所述点云为间隙不均匀的点云,则可以根据所述点云的业务场景指示的相邻条件预先确定所述预设值,本实施例对此不作任何限制,假设预设值为5cm,即距离在5cm以内的任意两个三维点彼此相邻,超过5cm的任意两个三维点则不相邻。
其中,间隙均匀可以理解为任意两个间隙之间的差异小于预设差异,反之,若点云不满足任意两个间隙之间的差异小于预设差异,则认为是间隙不均匀的点云,该预设差异可依据实际应用场景进行具体设置。间隙指的是三维点与其相邻三维点之间的距离。
示例性的,电子设备预存有三维空间中的距离与二维空间中的像素个数之间的换算关系。对于所述点云中的每一个三维点,电子设备可以根据该三维点与其相邻三维点之间的距离、以及预存的三维空间中的视距与二维空间中的像素个数之间的换算关系确定该三维点的显示尺寸。
示例性的,电子设备在确定了点云中的每一个三维点的显示尺寸之后,可以将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间得到第一映射结果,第一映射结果包括点云中的每个三维点的二维信息(比如二维纹理和深度值);进而对所述第一映射结果进行深度测试,深度测试的目的是为了实现点云的遮挡效果,比如存在处于点云非表面的三维点被处于点云表面的三维点所遮挡,则处于点云非表面的三维点的二维信息是不会在深度图中被渲染出来的,以符合人眼实际的观测效果;通过深度测试,实现根据当前视角下看得见的三维点的二维信息得到深度图。并且因为在点云映射之前,重新确定了每个三维点在显示时能够将间隙填满的显示尺寸,则在当前视角下看得见的三维点只有处于点云表面的三维点,则映射得到的深度图中的深度值均为在当前视角下处于点云表面的至少部分三维点的深度值。
在深度测试中,会将在当前视角下无法看见的三维点的二维信息丢弃掉;并且如果深度图中的一个像素对应有至少两个处于点云表面的三维点,考虑到对应于同一个像素的至少两个处于点云表面的三维点的深度值相近,则可以只取其中一个三维点的二维信息来渲染该像素而舍弃其他部分。因此,映射得到的深度图中的深度值包括在当前视角下处于点云表面的至少部分三维点的深度值,而不一定是处于点云表面的全部三维点的深度值。
在一些实施例中,由于深度测试过程中舍弃了一些三维点的二维映射结果,因此需要将点云从三维空间再次映射到二维空间得到映射结果得到第二映射结果;然后根据所述第二映射结果,确定点云中的每一个三维点在所述深度图中的映射位置。由于所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值,因此可以以深度图的深度值作为参考,根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异判断该三维点是否处于点云表面,在遍历完点云中的所有三维点之后,则可以确定在当前视角下处于点云表面的所有三维点。
需要说明的是,考虑到相邻像素之间的深度值一般差异较小,上述确定的点云中的每一个三维点在所述深度图中的映射位置可以是精确位置,也可以是允许有预设误差的粗略位置,也即在精确位置周围一定范围的位置,本实施例对此不作任何限定。
示例性的,如果第一次映射过程和第二次映射过程完全相同,则第二次映射过程所确定的点云中的每一个三维点在所述深度图中的映射位置是精确位置。如果第一次映射过程和第二次映射过程不相同,比如第一次映射过程是通过opengl光栅化确定映射位置,第二次映射过程是在顶点着色器中计算位置,则第二次映射过程所确定的点云中的每一个三维点在所述深度图中的映射位置可能是存在误差的粗略位置,也即该映射位置可能是在精确位置周围一定范围内的位置。
示例性的,对于所述点云中的每一个三维点,若所述三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差值小于预设阈值,则可以确定该三维点为在当前视角下处于点云表面的三维点;否则,确定该三维点为在当前视角下处于点云非表面的三维点。在遍历完所有的三维点之后,即可确定出在当前视角下处于点云表面的所有三维点。其中,所述预设阈值可依据实际应用场景进行具体设置,即所述三维点的深度值与该三维点在所述深度图中的映射位置的深度值相差不大,即可认为该三维点也是处于点云表面。
在另一些实施例中,可以在上述深度测试值之前,预先根据所述第一映射结果确定所述深度图中的每个像素对应的三维点,进而将确定的信息存储在深度图中;比如深度图中的每个像素可以存储最小深度值和一个列表,该列表指示映射到该像素的所有三维点,比如该列表包括映射到该像素的各个三维点的ID(唯一标识)及其深度值;则在获取深度图之后,电子设备可以遍历所述深度图中的每个像素的列表,根据所述列表指示的每一个三维点的深度值与该像素的深度值之间的差异确定该三维点是否处于表面,从而确定出在当前视角下处于点云表面的所有三维点。示例性的,电子设备在遍历所述深度图中的每个像素的列表指示的每一个三维点时,如果该三维点的深度值与该像素的最小的深度值之间的差值小于预设阈值,确定该三维点为在当前视角下处于点云表面的三维点;否则,确定该三维点为在当前视角下处于点云非表面的三维点。示例性的,每个像素的列表存储有映射到该像素的所有三维点的深度值,在将映射到该像素的所有三维点的深度值按照深度从小到大排序之后,可以将列表中除最小深度值之外的其他深度值与最小深度值进行比较,若两者的差值小于预设阈值,确定该其他深度值对应的三维点为在当前视角下处于点云表面的三维点。本实施例中,通过以列表形式保存信息,可以减少点云映射次数,从而提高效率。
在确定在当前视角下处于点云表面的所有三维点之后,电子设备从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点,进而对目标三维点进行预设操作,所述预设操作包括但不限于以下至少一种:在显示界面上以指定颜色和/或指定纹理显示所述目标三维点、将所述目标三维点设置为选中状态、删除所述目标三维点、对目标三维点拖拽待预设位置、对目标三维点进行变形操作、对目标三维点进行雕刻操作等等。
在一个例子中,比如请参阅图3A,电子设备可以在显示界面上以指定颜色和/或指定纹理显示所述目标三维点。在另一个例子中,电子设备可以修改所述目标三维点的状态,比如将所述目标三维点从未选中状态修改为选中状态,或者将所述目标三维点从选中状态修改为未选中状态。在又一个例子中,电子设备可以删除所述目标三维点。
需要说明的是,确定三维点是否为在当前视角下处于点云表面、以及确定处于点云表面的三维点是否处于所述选择操作指示的选择区域内,这两个过程可以分别在两次遍历过程中进行,也可以在一次遍历过程中进行,本实施例对此不作任何限制。
例如可以在两次遍历过程中确定所述目标三维点,第一次遍历过程遍历点云中的所有三维点,以确定每一个三维点是否在当前视角下处于点云表面,第二次遍历过程遍历当前视角下处于点云表面的所有三维点,以确定处于点云表面的每一个三维点是否处于所述选择操作指示的选择区域内,从而确定目标三维点。
例如也可以在一次遍历过程中确定所述目标三维点,在遍历点云中的每一个三维点时,在确定该三维点是在当前视角下处于点云表面的情况下,进一步确定该三维点是否处于所述选择操作指示的选择区域内,从而确定目标三维点。
其中,不难理解,上述各实施例中的描述的方案在不存在冲突的情况,可以进行组合,本公开实施例中不一一例举。
图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图6,点云处理装置可以应用于如图5所示的设备中,以实现本说明书的技术方案。其中,该点云处理装置可以包括:
深度图获取模块201,用于响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;
映射位置确定模块202,用于确定点云中的每一个三维点在所述深度图中的映射位置;
表面三维点确定模块203,用于根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;
目标三维点确定模块204,用于从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
在一些实施例中,所述表面三维点确定模块203具体用于对于所述点云中的每一个三维点,若所述三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差值小于预设阈值,确定该三维点为在当前视角下处于点云表面的三维点;否则,确定该三维点为在当前视角下处于点云非表面的三维点。
在一些实施例中,所述深度图获取模块201包括显示尺寸确定单元和映射单元。所述显示尺寸确定单元用于根据所述点云中的每一个三维点与相邻三维点之间的距离,确定每一个三维点的显示尺寸,所述显示尺寸用于使三维点与其相邻三维点在显示时无间隙。所述映射单元用于将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的像素为在当前视角下处于点云表面的部分三维点的映射结果。
在一些实施例中,所述点云中的每一个三维点与相邻三维点之间的距离为预设值;其中,若所述点云为间隙均匀的点云,所述预设值根据所述点云中所有三维点分别与其相邻三维点之间的距离的统计值确定;若所述点云为间隙不均匀的点云,所述预设值根据所述点云的业务场景指示的相邻条件确定。
在一些实施例中,每一个三维点的显示尺寸根据该三维点与其相邻三维点之间的距离、以及预存的三维空间中的距离与二维空间中的像素个数之间的换算关系确定。
在一些实施例中,所述映射单元具体用于将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间得到第一映射结果;对所述第一映射结果进行深度测试,得到当前视角下的深度图。
在一些实施例中,所述映射位置确定模块202具体用于将所述点云从三维空间再次映射到二维空间得到第二映射结果;根据所述第二映射结果,确定点云中的每一个三维点在所述深度图中的映射位置。
在一些实施例中,还包括目标三维点处理模块,用于在显示界面上以指定颜色和/或指定纹理显示所述目标三维点;或者修改所述目标三维点的状态;或者删除所述目标三维点。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
相应的,本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令;
其中,所述处理器执行所述可执行指令时实现上述方法中的步骤。
示例性的,所述处理器包括但不限于中央处理单元(Central Processing Unit,CPU)、图形处理器(graphics processing unit,GPU)、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)或者现成可编程门阵列(Field-Programmable Gate Array,FPGA)等。
示例性的,所述存储器可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。
相应的,本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方法。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种点云处理方法,其特征在于,包括:
响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;
确定点云中的每一个三维点在所述深度图中的映射位置;
根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;
从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点,包括:
对于所述点云中的每一个三维点,若所述三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差值小于预设阈值,确定该三维点为在当前视角下处于点云表面的三维点;否则,确定该三维点为在当前视角下处于点云非表面的三维点。
3.根据权利要求1所述的方法,其特征在于,所述根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图,包括:
根据所述点云中的每一个三维点与相邻三维点之间的距离,确定每一个三维点的显示尺寸,所述显示尺寸用于使三维点与其相邻三维点在显示时无间隙;
将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的像素为在当前视角下处于点云表面的部分三维点的映射结果。
4.根据权利要求1或3所述的方法,其特征在于,所述点云中的每一个三维点与相邻三维点之间的距离为预设值;
其中,若所述点云为间隙均匀的点云,所述预设值根据所述点云中所有三维点分别与其相邻三维点之间的距离的统计值确定;
若所述点云为间隙不均匀的点云,所述预设值根据所述点云的业务场景指示的相邻条件确定。
5.根据权利要求3所述的方法,其特征在于,每一个三维点的显示尺寸根据该三维点与其相邻三维点之间的距离、以及预存的三维空间中的距离与二维空间中的像素个数之间的换算关系确定。
6.根据权利要求3所述的方法,其特征在于,所述将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间,获得当前视角下的深度图,包括:
将确定了每一个三维点的显示尺寸的点云从三维空间映射到二维空间得到第一映射结果;
对所述第一映射结果进行深度测试,得到当前视角下的深度图。
7.根据权利要求1所述的方法,其特征在于,所述确定点云中的每一个三维点在所述深度图中的映射位置,包括:
将所述点云从三维空间再次映射到二维空间得到第二映射结果;
根据所述第二映射结果,确定点云中的每一个三维点在所述深度图中的映射位置。
8.根据权利要求1所述的方法,其特征在于,还包括:
在显示界面上以指定颜色和/或指定纹理显示所述目标三维点;或者
将所述目标三维点设置为选中状态;或者
删除所述目标三维点。
9.一种点云处理装置,其特征在于,包括:
深度图获取模块,用于响应于对点云的选择操作,根据所述点云中的每一个三维点与相邻三维点之间的距离,将所述点云从三维空间映射到二维空间,获得当前视角下的深度图;其中,所述深度图中的深度值为在当前视角下处于点云表面的至少部分三维点的深度值;
映射位置确定模块,用于确定点云中的每一个三维点在所述深度图中的映射位置;
表面三维点确定模块,用于根据所述点云中的每一个三维点的深度值与该三维点在所述深度图中的映射位置处的深度值之间的差异,确定在当前视角下处于点云表面的所有三维点;
目标三维点确定模块,用于从当前视角下处于点云表面的所有三维点中,确定处于所述选择操作指示的选择区域内的目标三维点。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令;
其中,所述处理器执行所述可执行指令时实现如权利要求1至8任意一项所述方法中的步骤。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635298.4A CN116188678A (zh) | 2022-12-19 | 2022-12-19 | 点云处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635298.4A CN116188678A (zh) | 2022-12-19 | 2022-12-19 | 点云处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116188678A true CN116188678A (zh) | 2023-05-30 |
Family
ID=86437450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211635298.4A Pending CN116188678A (zh) | 2022-12-19 | 2022-12-19 | 点云处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116188678A (zh) |
-
2022
- 2022-12-19 CN CN202211635298.4A patent/CN116188678A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351864B (zh) | 成凹几何密铺 | |
AU2014363213B2 (en) | Image rendering of laser scan data | |
US10055893B2 (en) | Method and device for rendering an image of a scene comprising a real object and a virtual replica of the real object | |
US9697647B2 (en) | Blending real and virtual construction jobsite objects in a dynamic augmented reality scene of a construction jobsite in real-time | |
JP4769984B2 (ja) | タイルベース・グラフィック・レンダリング | |
WO2016181202A1 (en) | Generation, transmission and rendering of virtual reality multimedia | |
US20170186227A1 (en) | Reducing Shading by Merging Fragments from the Adjacent Primitives | |
JPWO2004114224A1 (ja) | 仮想視点画像生成方法及び3次元画像表示方法並びに装置 | |
EP3314604A1 (en) | Reducing power consumption of mobile devices through dynamic resolution scaling | |
US7903121B2 (en) | System and method for image-based rendering with object proxies | |
CN105550973B (zh) | 图形处理单元、图形处理系统及抗锯齿处理方法 | |
US9959685B2 (en) | Method and system for selectively blending buildings to improve route visibility in a 3D navigation system | |
US10074211B2 (en) | Method and device for establishing the frontier between objects of a scene in a depth map | |
US9443344B2 (en) | Method for rendering data of a three-dimensional surface | |
CN116188678A (zh) | 点云处理方法、装置、设备及存储介质 | |
US20230186575A1 (en) | Method and apparatus for combining an augmented reality object in a real-world image | |
CN110910482B (zh) | 视频数据组织调度的方法、系统及可读存储介质 | |
WO2016210206A1 (en) | Reducing power consumption of mobile devices through dynamic resolution scaling | |
JP2005165283A (ja) | 地図表示装置 | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
CN111145358A (zh) | 图像处理方法、装置、硬件装置 | |
US11615574B2 (en) | System and method for rendering 6 degree-of-freedom virtual reality | |
CN115170715A (zh) | 图像渲染方法、装置、电子设备及介质 | |
CN114288650A (zh) | 虚拟场景图像处理方法、展示方法、装置、电子设备 | |
KR20220154780A (ko) | 3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |