发明内容
基于此,有必要针对基于三维点云数据进行问题处理时的计算过程复杂的技术问题,提供一种三维点云数据处理方法、装置、计算机设备和存储介质。
一种三维点云数据处理方法,所述方法包括:
从基于原始坐标系的三维点云数据中选择至少三个目标点;
根据所述至少三个目标点所在的平面和所述平面的法线建立目标坐标系;
确定所述原始坐标系与所述目标坐标系的转换关系;
根据所述转换关系对所述三维点云数据进行坐标转换,得到基于所述目标坐标系的转换后三维点云数据;
在所述目标坐标系中将所述转换后三维点云数据投影到目标平面,得到二维点云图像;所述二维点云图像的像素值,是根据所述转换后三维点云数据在与所述目标平面垂直的坐标轴上的坐标值确定的。
在一个实施例中,所述根据所述至少三个目标点所在的平面和所述平面的法线建立目标坐标系,包括:
确定所述至少三个目标点所在的平面;
确定所述平面与所述原始坐标系Z轴的交点;
以所述平面为基准平面、所述交点为目标原点、经过所述交点的所述平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,所述以所述平面为基准平面、所述交点为目标原点、经过所述交点的所述平面的法线为目标Z轴建立目标坐标系,包括:
将所述平面中经过所述交点且与所述原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线;
根据所述目标坐标轴,以所述平面为基准平面、所述交点为目标原点、经过所述交点的所述平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,所述转换关系包括所述目标原点在所述原始坐标系中的原始坐标,以及所述目标坐标系与所述原始坐标系对应坐标轴之间的夹角;所述确定所述原始坐标系与所述目标坐标系的转换关系,包括:
基于所述至少三个目标点在所述原始坐标系中的坐标确定所述基准平面的平面方程;
根据所述平面方程确定所述目标原点在所述原始坐标系中的原始坐标;
根据所述原始坐标和所述平面方程确定所述原始坐标系的参考坐标轴与所述目标坐标系的夹角。
在一个实施例中,所述根据所述转换关系对所述三维点云数据进行坐标转换,得到基于所述目标坐标系的转换后三维点云数据,包括:
根据所述原始坐标对所述三维点云数据进行平移转换,得到平移后三维点云数据;
根据所述目标坐标系与所述原始坐标系对应坐标轴之间的夹角对所述平移后三维点云数据进行旋转转换,得到基于所述目标坐标系的转换后三维点云数据。
在一个实施例中,所述在所述目标坐标系中将所述转换后三维点云数据投影到目标平面,得到二维点云图像,包括:
在所述目标坐标系中,确定目标平面;
采用小孔成像模型或透视投影模型将所述转换后三维点云数据投影到所述目标平面,得到二维点云图像。
一种三维点云数据处理装置,所述装置包括:
目标点选择模块,用于从基于原始坐标系的三维点云数据中选择至少三个目标点;
目标坐标系建立模块,用于根据所述至少三个目标点所在的平面和所述平面的法线建立目标坐标系;
转换关系确定模块,用于确定所述原始坐标系与所述目标坐标系的转换关系;
坐标转换模块,用于根据所述转换关系对所述三维点云数据进行坐标转换,得到基于所述目标坐标系的转换后三维点云数据;
投影模块,用于在所述目标坐标系中将所述转换后三维点云数据投影到目标平面,得到二维点云图像;所述二维点云图像的像素值,是根据所述转换后三维点云数据在与所述目标平面垂直的坐标轴上的坐标值确定的。
在一个实施例中,所述目标坐标系建立模块,还用于:
确定所述至少三个目标点所在的平面;
确定所述平面与所述原始坐标系Z轴的交点;
以所述平面为基准平面、所述交点为目标原点、经过所述交点的所述平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,所述目标坐标系建立模块,还用于:
将所述平面中经过所述交点且与所述原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线;
根据所述目标坐标轴,以所述平面为基准平面、所述交点为目标原点、经过所述交点的所述平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,所述转换关系包括所述目标原点在所述原始坐标系中的原始坐标,以及所述目标坐标系与所述原始坐标系对应坐标轴之间的夹角;所述转换关系确定模块,还用于:
基于所述至少三个目标点在所述原始坐标系中的坐标确定所述基准平面的平面方程;
根据所述平面方程确定所述目标原点在所述原始坐标系中的原始坐标;
根据所述原始坐标和所述平面方程确定所述原始坐标系的参考坐标轴与所述目标坐标系的夹角。
在一个实施例中,所述坐标转换模块,还用于:
根据所述原始坐标对所述三维点云数据进行平移转换,得到平移后三维点云数据;
根据所述目标坐标系与所述原始坐标系对应坐标轴之间的夹角对所述平移后三维点云数据进行旋转转换,得到基于所述目标坐标系的转换后三维点云数据。
在一个实施例中,所述投影模块,还用于:
在所述目标坐标系中,确定目标平面;
采用小孔成像模型或透视投影模型将所述转换后三维点云数据投影到所述目标平面,得到二维点云图像。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述三维点云数据处理方法、装置、计算机设备和存储介质,基于所要处理的问题,从基于原始坐标系的三维点云数据中选择至少三个目标点,并根据该至少三个目标点所在的平面和平面的法线建立目标坐标系,以及确定原始坐标系与目标坐标系的转换关系,在根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据之后,在目标坐标系中将转换后三维点云数据投影到目标平面,从而得到便于问题处理的二维点云图像,其中二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的三维点云数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。上述三维点云数据处理方法可以应用于终端102或服务器104,以应用于终端为例进行说明,终端102从基于原始坐标系的三维点云数据中选择至少三个目标点;根据至少三个目标点所在的平面和平面的法线建立目标坐标系;确定原始坐标系与目标坐标系的转换关系;根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据;在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像;二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种三维点云数据处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S202,从基于原始坐标系的三维点云数据中选择至少三个目标点。
其中,原始坐标系为空间笛卡尔坐标系,具体可以是以三维激光扫描设备为坐标原点所建立的空间笛卡尔坐标系、或以三维激光扫描设备之外的其他参考点为坐标原点所建立的空间笛卡尔坐标系、或世界坐标系。三维点云数据为所扫描物体的形状以点的形式进行记录时所记录的数据,具体包括每个点的三维坐标,还可以包含有颜色信息或反射强度信息。至少三个目标点处于同一个平面中。
在一个实施例中,三维激光扫描设备对待测物体进行扫描,得到待测物体基于原始坐标系的三维点云数据,并将该三维点云数据发送至终端,以便终端根据所要研究的问题对该三维点云数据进行处理。终端在接收到三维点云数据之后,基于所研究的问题从该基于原始坐标系的三维点云数据中选择至少三个目标点。
在一个实施例中,终端在接收到三维点云数据之后,对该基于原始坐标系的三维点云数据进行显示,用户可以在显示页面从所显示的三维点云数据中选择至少三个目标点,当终端检测到用户的选择操作时,获取用户从该三维点云数据中所选择的至少三个目标点。
在一个实施例中,终端在接收到三维点云数据之后,对该基于原始坐标系的三维点云数据进行渲染显示,用户可以在显示页面通过鼠标进行点击选取至少三个目标点。
在一个实施例中,终端在接收到三维点云数据之后,可以将三维激光扫描设备对待测物体进行扫描时待测物体所在载物平台上的至少三个点作所选择的至少三个目标点。
在一个实施例中,终端可以预先基于所研究的问题确定在原始坐标系的至少三个定位点,并在接收到三维点云数据之后,将该至少三个定位点确定为所选取的至少三个目标点。
S204,根据至少三个目标点所在的平面和平面的法线建立目标坐标系。
在一个实施例中,终端在获取到所选择的至少三个目标点之后,确定该至少三个目标点所在的平面,并根据该平面和该平面的法线建立目标坐标系。其中所建立的目标坐标系的坐标原点可以是原始坐标系其中一个坐标轴上的一点,例如,目标坐标系的坐标原点为原始坐标系Z轴上的一点。
在一个实施例中,终端在获取到所选择的至少三个目标点之后,确定该至少三个目标点所在的平面,并确定该平面与原始坐标系的参考坐标轴的交点,并以该平面为基准平面、所确定的交点为目标坐标系的坐标原点(目标原点)、以经过交点的该平面的法线为目标坐标系的Z轴建立目标坐标系。其中参考坐标轴可以是原始坐标系中与基准平面相交的任一坐标轴。
在一个实施例中,终端在获取到所选择的至少三个目标点之后,确定该至少三个目标点所在的平面,并确定该平面与原始坐标系的Z轴的交点,并以该平面为基准平面、所确定的交点为目标坐标系的坐标原点(目标原点)、以经过交点的该平面的法线为目标坐标系的Z轴建立目标坐标系。
S206,确定原始坐标系与目标坐标系的转换关系。
其中,转换关系包括目标原点在原始坐标系中的原始坐标,以及目标坐标系与原始坐标系对应坐标轴之间的夹角。
在一个实施例中,终端在选择至少三个目标点之后,获取该至少三个目标点在原始坐标系中的坐标,并根据该至少三个点在原始坐标系中的坐标确定该至少三个点所在的平面(基准平面)的平面方程,并根据该平面方程确定出目标原点在原始坐标系中的原始坐标,然后根据该原始坐标和基准平面的平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角,具体为原始坐标系的参考坐标轴与目标坐标系中任意两个坐标轴所在平面的夹角。例如,若原始坐标系的参考坐标轴为Z轴,则计算原始坐标系的Z轴与目标坐标系的目标X轴、目标Y轴所在平面的夹角,计算原始坐标系的Z轴与目标坐标系的目标Y轴、目标Z轴所在平面的夹角,计算原始坐标系的Z轴与目标坐标系的目标X轴、目标Z轴所在平面的夹角。
在一个实施例中,终端在计算出目标原点在原始坐标系中的原始坐标,以及原始坐标系的参考坐标轴与目标坐标系的夹角之后,根据目标原点的原始坐标和目标原点在目标坐标系中的坐标,以及原始坐标系的参考坐标轴与目标坐标系的夹角,确定原始坐标系中任意一点的原始坐标转换为目标坐标系中的目标坐标的坐标转换公式,以便根据该坐标转换公式对基于原始坐标的三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据。
S208,根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据。
在一个实施例中,终端在确定出原始坐标系和目标坐标系之间的坐标转换关系之后,根据所确定的转换关系对基于原始坐标系的三维点云数据进行坐标转换,从而得到基于目标坐标系的转换后三维点云数据。
在一个实施例中,终端在计算出目标原点在原始坐标系中的原始坐标,以及原始坐标系的参考坐标轴与目标坐标系的夹角之后,根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据,然后根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
在一个实施例中,终端在根据目标原点的原始坐标和目标原点在目标坐标系中的坐标,以及原始坐标系的参考坐标轴与目标坐标系的夹角,确定出原始坐标系中任意一点的原始坐标转换为目标坐标系中的目标坐标的坐标转换公式之后,将基于原始坐标系的三维点云数据中各点的三维坐标代入该坐标转换公式,从而计算得出基于目标坐标系的转换后三维点云数据。
S210,在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像。
其中,目标平面可以是与目标坐标系中任意两个坐标轴所在平面平行的平面。二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的。
在一个实施例中,终端在得到基于目标坐标系的转换后三维点云数据之后,在该目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像,其中在投影过程中,将转换后三维坐标数据的X坐标和Y坐标映射到二维点云图像上的X偏移和Y偏移,并根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值,确定投影后所得的二维点云图像上对应点的像素值。例如,目标平面为目标坐标系的目标X轴与目标Y轴所在平面平行的平面,则在将转换后三维点云数据投影到该目标平面时,将转换后三维点云数据在目标坐标系中的Z轴坐标值映射为投影所得的二维点云图像的像素值,具体可以直接将Z轴坐标值确定为二维点云图像的像素值,也可以是将Z轴坐标值乘以或除以预设值之后所得的结果确定为二维点云图像的像素值,预设值可以是常数。
在一个实施例中,终端在得到基于目标坐标系的转换后三维点云数据之后,采用opencv中的projectPoints函数,在目标坐标系中将转换后三维点云数据投影到目标平面,并根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值,确定投影后所得的二维点云图像上对应点的像素值,从而得到二维点云图像。
在一个实施例中,终端在得到基于目标坐标系的转换后三维点云数据之后,根据所研究的问题在目标坐标系中确定目标平面,并采用小孔成像模型或透视投影模型将转换后三维点云数据投影到所确定的目标平面,得到二维点云图像。其中,小孔成像模型的投影原理如图3所示。
上述实施例中,终端基于所要处理的问题,从基于原始坐标系的三维点云数据中选择至少三个目标点,并根据该至少三个目标点所在的平面和平面的法线建立目标坐标系,以及确定原始坐标系与目标坐标系的转换关系,在根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据之后,在目标坐标系中将转换后三维点云数据投影到目标平面,从而得到便于问题处理的二维点云图像,其中二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,如图4所示,终端根据所述至少三个目标点所在的平面和所述平面的法线建立目标坐标系,具体包括以下步骤:
S402,确定至少三个目标点所在的平面。
在一个实施例中,终端在选择出至少三个目标点之后,获取该至少三个目标点在原始坐标系中的坐标,并根据该至少三个目标点在原始坐标系中的坐标计算该至少三个点所在平面的平面方程。
例如,原始坐标系的坐标原点为Oa(0,0,0),三个坐标轴分别为Xa轴、Ya轴和Za轴,终端根据所选择的三个目标点在原始坐标系中的坐标,确定出该三个目标点所在平面的平面方程为:
Axa+Bya+Cza=D (1)
其中,A、B、C、D均为已知常数,且A、B、C不同时为0。
S404,确定平面与原始坐标系的参考坐标轴的交点。
在一个实施例中,终端在确定出至少三个目标点所在平面的平面方程之后,根据该平面方程确定该平面与原始坐标系的参考坐标轴的交点。其中参考坐标轴可以是与该平面相交的坐标轴。
例如,若原始坐标系的参考坐标轴为Za轴,则平面与Za轴的交点Ob可以根据平面的平面方程进行确定,设交点Ob在原始坐标系中的坐标为Ob(0,0,M),则将该点坐标代入平面方程,可以求得:
M=D/C (2)
从而确定出平面与原始坐标系的Za轴的交点为Ob(0,0,D/C)。
S406,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,终端在确定至少三个目标点所在平面、该平面与原始坐标系的参考坐标轴的交点之后,以所确定的平面为基准平面、所确定的交点为目标原点、经过该交点的平面的法线为目标Z轴建立目标平面坐标系。
上述实施例中,终端通过确定至少三个目标点所在的平面,确定平面与原始坐标系的参考坐标轴的交点,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系,从而可以建立出便于问题处理的目标坐标系,进而得到便于问题处理的二维点云图像,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,终端在确定至少三个目标点所在平面、该平面与原始坐标系的参考坐标轴的交点之后,以所确定的平面为基准平面、所确定的交点为目标原点、基准平面中经过该交点的平面的法线为目标Z轴所在直线、基准平面中经过该交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线,并基于右手螺旋定则建立目标平面坐标系。
在一个实施例中,若终端所确定的平面与原始坐标系的参考坐标轴的交点具体是平面与原始坐标系的Z轴的交点,则终端以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系,具体包括以下步骤:将平面中经过交点且与原始坐标系的X轴平行的直线确定为目标X轴所在的直线;根据目标X轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
例如,原始坐标系的参考坐标轴为Za轴,所确定的平面与原始坐标系的Za轴的交点为(0,0,D/C),终端则以平面为基准平面、以交点(0,0,D/C)为目标坐标系的坐标原点,并以基准平面中经过该交点的平面的法线为目标Z轴(Zb轴),以基准平面中经过该交点与原始坐标系中的Xa轴平行的直线作为目标坐标系中的对应的目标X轴(Xb轴)所在直线,并根据右手螺旋定则建立目标平面坐标系,所得的目标坐标系的坐标原点Ob在目标坐标系中的坐标为Ob(0,0,0),在原始坐标系中的坐标为Ob(0,0,D/C),目标坐标系的坐标轴分别为Xb轴、Yb轴和Zb轴,且Xb轴与原始坐标系的Xa轴平行。
上述实施例中,终端通过将平面中经过交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线,并根据目标坐标轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系,使得原始坐标系与目标坐标系的转换关系简单,从而可以减少三维点数据坐标转换时的计算量,进而提高了三维点云数据处理的效率。
在一个实施例中,终端确定原始坐标系与目标坐标系的转换关系具体包括以下步骤:基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程,根据平面方程确定目标原点在原始坐标系中的原始坐标,根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角。
例如,所确定的基准平面的平面方程Axa+Bya+Cza=D,目标原点在原始坐标系中的原始坐标为Ob(0,0,D/C),参考图5,图中Oa(0,0,0)为原始坐标系的坐标原点,ObOaxz为线段ObOa投影到Xb轴、Zb轴所在平面的线段,Ob Obz为线段ObOa投影到Zb轴的线段,从而∠OaObOaxz为ObOa(Za轴)与Xb轴、Zb轴所在平面的夹角AX,∠OazObOaxz为ObOa(Za轴)与Yb轴、Zb轴所在平面的夹角AY,∠OaObOaxy为ObOa(Za轴)与Xb轴、Yb轴所在平面的夹角,∠OaObOaxy与图中Zb轴和Za轴的夹角A互补。终端根据基准平面的平面方程Axa+Bya+Cza=D和Ob(0,0,D/C),结合点到平面的距离计算公式(公式3),求得Oa到基准平面(Xb轴、Yb轴所在平面)的距离dZ。
在计算出Oa到基准平面(Xb轴、Yb轴所在平面)的距离dZ之后,根据dZ三角函数公式(公式4),进而可以求得夹角A、AX和AY的值。
上述实施例中,终端通过基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程,并根据平面方程确定目标原点在原始坐标系中的原始坐标,然后根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角,从而能够确定出原始坐标系与目标坐标系之间的转换关系,进而实现对三维点云数据的坐标转换,进而提高了三维点云数据处理的效率。
在一个实施例中,终端根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据,具体包括以下步骤:根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据;根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
例如,参考图5,基于原始坐标系的三维点云数据中任一点P的坐标为Pa(xa,ya,za),然后沿着原始坐标系的Za轴对点P进行平移,得到点Pa’(xa,ya,za-D/C),然后根据夹角AX结合公式5对点P的平移后坐标进行第一次旋转转换,然后再根据夹角AY结合公式6在第一次旋转转换的基础上对点P的坐标进行第二次旋转转换,从而得到P基于目标坐标系的转换后的坐标Pb(xb,yb,zb)。
其中,(x,y,z)为第一次旋转转换前P点的坐标,即Pa’(xa,ya,za-D/C),(x’,y’,z’)为第一次旋转转换后P点的坐标。
其中,(x’,y’,z’)为第一次旋转转换后、第二次旋转转换前P点的坐标,(xb,yb,zb)为第二次旋转转换后P点的坐标。
通过上述实施例中对三维点云数据进行坐标转换,如图6所示,可以得到等效成在参考平面正上方、竖直朝下放置的虚拟相机的视角对待测物体进行扫描所得到的三维点云数据,从而可以对该三维点云数据进行投影得到二维点云图像。
上述实施例中,终端根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据,根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据,从而可以对该三维点云数据进行投影得到二维点云图像,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,如图7所示,还提供了一种三维点云数据处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S702,从基于原始坐标系的三维点云数据中选择至少三个目标点。
S704,确定至少三个目标点所在的平面。
S706,确定平面与原始坐标系的参考坐标轴的交点。
S708,基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程。
S710,根据平面方程确定目标原点在原始坐标系中的原始坐标。
S712,根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角。
S714,根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据。
S716,根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
S718,根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据。
S720,在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像。
应该理解的是,虽然图2、4和7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4和7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种三维点云数据处理装置,包括:目标点选择模块802、目标坐标系建立模块804、转换关系确定模块806、坐标转换模块808和投影模块810,其中:
目标点选择模块802,用于从基于原始坐标系的三维点云数据中选择至少三个目标点;
目标坐标系建立模块804,用于根据至少三个目标点所在的平面和平面的法线建立目标坐标系;
转换关系确定模块806,用于确定原始坐标系与目标坐标系的转换关系;
坐标转换模块808,用于根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据;
投影模块810,用于在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像;二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的。
上述实施例中,终端基于所要处理的问题,从基于原始坐标系的三维点云数据中选择至少三个目标点,并根据该至少三个目标点所在的平面和平面的法线建立目标坐标系,以及确定原始坐标系与目标坐标系的转换关系,在根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据之后,在目标坐标系中将转换后三维点云数据投影到目标平面,从而得到便于问题处理的二维点云图像,其中二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,目标坐标系建立模块804,还用于:
确定至少三个目标点所在的平面;
确定平面与原始坐标系Z轴的交点;
以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
上述实施例中,终端通过确定至少三个目标点所在的平面,确定平面与原始坐标系的参考坐标轴的交点,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系,从而可以建立出便于问题处理的目标坐标系,进而得到便于问题处理的二维点云图像,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,目标坐标系建立模块804,还用于:
将平面中经过交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线;
根据目标坐标轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
上述实施例中,终端通过将平面中经过交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线,并根据目标坐标轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系,使得原始坐标系与目标坐标系的转换关系简单,从而可以减少三维点数据坐标转换时的计算量,进而提高了三维点云数据处理的效率。
在一个实施例中,转换关系包括目标原点在原始坐标系中的原始坐标,以及目标坐标系与原始坐标系对应坐标轴之间的夹角;转换关系确定模块806,还用于:
基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程;
根据平面方程确定目标原点在原始坐标系中的原始坐标;
根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角。
上述实施例中,终端通过基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程,并根据平面方程确定目标原点在原始坐标系中的原始坐标,然后根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角,从而能够确定出原始坐标系与目标坐标系之间的转换关系,进而实现对三维点云数据的坐标转换,进而提高了三维点云数据处理的效率。
在一个实施例中,坐标转换模块808,还用于:
根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据;
根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
上述实施例中,终端根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据,根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据,从而可以对该三维点云数据进行投影得到二维点云图像,使得后续基于该二维点云图像进行问题处理时的计算过程的复杂程度降低,提高了对三维点云数据的处理效率。
在一个实施例中,投影模块810,还用于:
在目标坐标系中,确定目标平面;
采用小孔成像模型或透视投影模型将转换后三维点云数据投影到目标平面,得到二维点云图像。
关于三维点云数据处理装置的具体限定可以参见上文中对于三维点云数据处理方法的限定,在此不再赘述。上述三维点云数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种三维点云数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储点云数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种三维点云数据处理方法。
本领域技术人员可以理解,图9或10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下的步骤:从基于原始坐标系的三维点云数据中选择至少三个目标点;根据至少三个目标点所在的平面和平面的法线建立目标坐标系;确定原始坐标系与目标坐标系的转换关系;根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据;在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像;二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的。
在一个实施例中,计算机程序被处理器执行根据至少三个目标点所在的平面和平面的法线建立目标坐标系的步骤时,使得处理器具体执行以下步骤:确定至少三个目标点所在的平面;确定平面与原始坐标系的参考坐标轴的交点;以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,计算机程序被处理器执行以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系的步骤时,使得处理器具体执行以下步骤:将平面中经过交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线;根据目标坐标轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,转换关系包括目标原点在原始坐标系中的原始坐标,以及目标坐标系与原始坐标系对应坐标轴之间的夹角;计算机程序被处理器执行确定原始坐标系与目标坐标系的转换关系的步骤时,使得处理器具体执行以下步骤:基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程;根据平面方程确定目标原点在原始坐标系中的原始坐标;根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角。
在一个实施例中,计算机程序被处理器执行根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据的步骤时,使得处理器具体执行以下步骤:根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据;根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
在一个实施例中,计算机程序被处理器执行在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像的步骤时,使得处理器具体执行以下步骤:在目标坐标系中,确定目标平面;采用小孔成像模型或透视投影模型将转换后三维点云数据投影到目标平面,得到二维点云图像。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下的步骤:从基于原始坐标系的三维点云数据中选择至少三个目标点;根据至少三个目标点所在的平面和平面的法线建立目标坐标系;确定原始坐标系与目标坐标系的转换关系;根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据;在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像;二维点云图像的像素值,是根据转换后三维点云数据在与目标平面垂直的坐标轴上的坐标值确定的。
在一个实施例中,计算机程序被处理器执行根据至少三个目标点所在的平面和平面的法线建立目标坐标系的步骤时,使得处理器具体执行以下步骤:确定至少三个目标点所在的平面;确定平面与原始坐标系的参考坐标轴的交点;以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,计算机程序被处理器执行以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系的步骤时,使得处理器具体执行以下步骤:将平面中经过交点且与原始坐标系中的坐标轴平行的直线作为目标坐标系中的对应的目标坐标轴所在直线;根据目标坐标轴,以平面为基准平面、交点为目标原点、经过交点的平面的法线为目标Z轴建立目标坐标系。
在一个实施例中,转换关系包括目标原点在原始坐标系中的原始坐标,以及目标坐标系与原始坐标系对应坐标轴之间的夹角;计算机程序被处理器执行确定原始坐标系与目标坐标系的转换关系的步骤时,使得处理器具体执行以下步骤:基于至少三个目标点在原始坐标系中的坐标确定基准平面的平面方程;根据平面方程确定目标原点在原始坐标系中的原始坐标;根据原始坐标和平面方程确定原始坐标系的参考坐标轴与目标坐标系的夹角。
在一个实施例中,计算机程序被处理器执行根据转换关系对三维点云数据进行坐标转换,得到基于目标坐标系的转换后三维点云数据的步骤时,使得处理器具体执行以下步骤:根据原始坐标对三维点云数据进行平移转换,得到平移后三维点云数据;根据目标坐标系与原始坐标系对应坐标轴之间的夹角对平移后三维点云数据进行旋转转换,得到基于目标坐标系的转换后三维点云数据。
在一个实施例中,计算机程序被处理器执行在目标坐标系中将转换后三维点云数据投影到目标平面,得到二维点云图像的步骤时,使得处理器具体执行以下步骤:在目标坐标系中,确定目标平面;采用小孔成像模型或透视投影模型将转换后三维点云数据投影到目标平面,得到二维点云图像。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。