一种动态锁定的方法、装置、移动终端及存储介质与流程

文档序号:18633446发布日期:2019-09-11 21:55阅读:113来源:国知局
一种动态锁定的方法、装置、移动终端及存储介质与流程

本发明涉及图像处理技术领域,尤其涉及一种动态锁定的方法、装置、移动终端及存储介质。



背景技术:

目前,常见的空间三维对象的锁定只能通过观察器对被锁定对象定位点进行点对象锁定,当被锁定对象定位点不在被锁定对象的中心或者被锁定对象形状大小不规则时,为了在观察器视场角内完整显示被锁定对象所有形态特征,观察器就得在被锁定对象不同状态间迅速调整视场角度大小来取得完整的被锁定对象完整的形态画面,在这种情况下被锁定对象的形态画面可能因为观察器的视场角度过大而引起画面模糊不清、被锁定对象的形态画面在观察器视场角内的面积占比小和在被锁定对象姿态快速变化时不能及时锁定而引起部分形态画面丢失的问题。



技术实现要素:

本发明的目的在于提出一种动态锁定的方法、装置、移动终端及存储介质,以解决现有点对象锁定方法无法满足被锁定对象高速锁定以及高清形态获取的问题。

为达此目的,本发明采用以下技术方案:

一种动态锁定的方法,所述方法包括:

锁定动态对象的三维空间的顶点以及观察器位置点;

根据所述顶点以及所述观察器位置点计算出所述动态对象在所述观察器的视角方向的参考焦点以及长度和宽度,根据所述参考焦点及所述观察器位置点计算出所述观察器至所述动态对象的焦距;

根据所述焦距以及所述长度和所述宽度计算视场角度和视口长宽比,并将所述焦点以及所述视场角度和所述视口长宽比输出给所述观察器。

本发明还提供一种动态锁定的装置,所述装置包括:

位置锁定单元,用于锁定动态对象的三维空间的顶点以及观察器位置点;

焦距计算单元,用于根据所述顶点以及所述观察器位置点计算出所述动态对象在所述观察器的视角方向的参考焦点以及长度和宽度,根据所述参考焦点及所述观察器位置点计算出所述观察器至所述动态对象的焦距;

输出单元,用于根据所述焦距以及所述长度和所述宽度计算视场角度和视口长宽比,并将所述焦点以及所述视场角度和所述视口长宽比输出给所述观察器。

本发明还提供一种移动终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本发明实施例所提供的动态锁定的方法的步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时本发明实施例所提供的动态锁定的方法的步骤。

本发明通过锁定动态对象的三维空间的顶点以及观察器位置点;根据顶点以及观察器位置点计算出动态对象在观察器的视角方向的参考焦点以及长度和宽度,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;根据焦距以及长度和宽度计算视场角度和视口长宽比,并将焦点以及视场角度和视口长宽比输出给观察器。有益效果:通过动态锁定的方法计算出焦点、视场角度以及视口长宽比输出给观察器,可以使观察器实时锁定动态对象的焦点,并实时调节观察器的视场角度以及观察器视口的长宽比,从而使观察器输出视口面积高占比的动态对象,减少被动态锁定对象的特征丢失,同时使得被动态锁定对象的画面更加高清。

附图说明

图1是本发明具体实施方式提供的动态锁定的方法流程图一。

图2是本发明具体实施方式提供的动态锁定的参数计算方法流程图。

图3是本发明具体实施方式提供的动态锁定示意图一。

图4是本发明具体实施方式提供的动态锁定示意图二。

图5是本发明具体实施方式提供的动态锁定示意图三。

图6是本发明具体实施方式提供的动态锁定示意图四。

图7是本发明具体实施方式提供的动态锁定示意图五。

图8是本发明具体实施方式提供的动态锁定示意图六。

图9是本发明具体实施方式提供的动态锁定的方法流程图二。

图10是本发明具体实施方式提供的动态锁定示意图七。

图11是本发明具体实施方式提供的动态锁定示意图八。

图12是本发明具体实施方式提供的未使用动态锁定效果图。

图13是本发明具体实施方式提供的使用动态锁定效果图。

图14是本发明具体实施方式提供的动态锁定的装置结构示意图一。

图15是本发明具体实施方式提供的焦距计算单元的装置结构示意图。

图16是本发明具体实施方式提供的动态锁定的装置结构示意图二。

图17是本发明具体实施方式提供的移动终端的结构框图。

具体实施方式

在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

图1是本发明实施例提供的动态锁定的方法流程图一,详述如下:

在步骤s101中,锁定动态对象的三维空间的顶点以及观察器位置点;

在本发明实施例中,可以应用在全息投影领域中,锁定动态对象的三维空间的顶点位置信息和观察器位置点信息,例如,坐标。

在步骤s102中,根据顶点以及观察器位置点计算出动态对象在观察器的视角方向的参考焦点以及长度和宽度,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;

在步骤s103中,根据焦距以及长度和宽度计算观察器的视场角度和视口长宽比,并将焦点以及视场角度和视口长宽比输出给观察器。

在本发明实施例中,计算出动态对象在观察器视角方向的参考焦点以及长度和宽度,参考焦点至观察器位置点的距离即为焦距,观察器的视场角度计算公式如下:

fieldofview=2.0f*atan(frustumwidth*0.5f/distance)*rad2deg;

其中,rad2deg为静态变量,值为57.29578f;fieldofview为观察器的视角;distance为焦距;frustumwidth为宽度;f为浮点数。

视口长宽比计算公式如下:

aspect=frustumlength/frustumwidth;其中,aspect为视口长宽比;frustumlength为长度;frustumwidth为宽度。

在本发明实施例中,通过计算出焦点、视场角度以及视口长宽比输出给观察器,可以使观察器实时锁定动态对象的焦点,并实时调节观察器的视场角度以及观察器视口的长宽比,从而使观察器输出视口面积高占比的动态对象,减少被动态锁定对象的特征丢失,同时使得被动态锁定对象的画面更加高清。

图2示出了本发明实施例提供的动态锁定的参数计算方法流程图,详述如下:

在步骤s201中,根据顶点以及观察器位置点计算出观察器至动态对象的近垂面,并根据近垂面计算出参考焦点;

在本发明实施例中,参考焦点可通过如下步骤计算求得:

确定顶点至观察器中距离从小到大排序的前三个顶点,在前三个顶点至观察器的直线方向上以观察器为起始点分别标记近点距离,近点距离标记的点的连接面为观察器至动态对象的近垂面,其中,近点距离为观察器至顶点中的最近距离;

获取从观察器位置点至近垂面的垂足并标记为参考焦点。

在本发明实施例中,如图3-5所示为动态锁定示意图,将动态对象的三维空间的顶点作为输入参数,简称points数组;观察器的三维空间位置信息即观察器位置点也作为输入参数,简称eyepos,实现如下步骤:

1.首先求出points数组每点相对观察器位置点eyepos距离从小到大排序的前三点a、b、c和最近一点n,计算出观察器位置点eyepos到最近一点n的直线距离nd;

2.作观察器位置点eyepos到a、b、c各点的同等距离nd的点得到an、bn、cn三点,以an、bn、cn三点做近垂面planefront0;

3.作观察器位置点eyepos在近垂面planefront0的垂足p0,标记p0为参考焦点。

在步骤s202中,作经过观察器位置点和参考焦点的正交投影面,包括上投影面和右投影面;

在步骤s203中,计算顶点在上投影面的正投影的最左点和最右点,计算顶点在右投影面的正投影的最上点和最下点;

在步骤s204中,根据最左点和最右点计算出动态对象的长度,根据最上点和最下点计算出动态对象的宽度;

在步骤s205中,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距。

在本发明实施例中,可以先计算最左点和最右点求长度,也可以先计算最上点和最下点求宽度,或者同时计算,可以不分顺序,如图6-8所示,长度和宽度的计算如下步骤:

4.以观察器位置点eyepos到参考焦点p0作为方向向量,计算出一个以参考焦点p0为起始点的上投影面planeup0和右投影面planeright0;

5.points数组每点在上投影面planeup0上的垂足标记为upoints数组,计算upoints数组中最左点upoints[leftmax]和最右点upoints[rightmax]以及points数组中的最左点leftmax和最右点rightmax;

其中,计算方法可以采用如下方式:

设point0在上投影面planeup0上的垂足为b点,point1在上投影面planeup0上的垂足为d点,point2在上投影面planeup0上的垂足为c点,point3在上投影面planeup0上的垂足为a点,设观察器位置点eyepos为e点,则存在6个以e点为顶角的角向量∠bea,∠bed,∠bec,∠aec,∠aed,∠dec;比较这6个角的大小,哪个角最大那相对应点就是在planeup0面上点垂足的最左点upoints[leftmax]和最右点upoints[rightmax],计算最左点upoints[leftmax]和最右点upoints[rightmax]的距离即为长度。

6.points数组每点在右投影面planeright0上的垂足标记为rpoints数组,计算rpoints数组中最高点rpoints[heightmax]和最低点rpoints[lowmax]以及points数组中的最高点heightmax和最低点lowmax;

其中,计算方法可以采用如下方式:

设point0在右投影面planeright0上的垂足为b点,point1在右投影面planeright0上的垂足为d点,point2在右投影面planeright0上的垂足为c点,point3在右投影面planeright0上的垂足为a点,设观察器位置点eyepos为e点,则存在6个以e点为顶角的角向量∠bea,∠bed,∠bec,∠aec,∠aed,∠dec,比较这6个角的大小,哪个角最大那相对应点就是在planeright0面上点垂足的最高点rpoints[heightmax]和最低点rpoints[lowmax],计算最高点rpoints[heightmax]和最低点rpoints[lowmax]的距离即为宽度;

7.计算观察器位置点eyepos到参考焦点p0的距离即为焦距。

图9是本发明实施例提供的动态锁定的方法流程图二,详述如下:

在步骤s301中,锁定动态对象的三维空间的顶点以及观察器位置点;

在步骤s302中,确定顶点至观察器中距离从小到大排序的前三个顶点,在前三个顶点至观察器的直线方向上以观察器为起始点分别标记近点距离,近点距离标记的点的连接面为观察器至动态对象的近垂面,其中,近点距离为观察器至顶点中的最近距离;

在步骤s303中,获取从观察器位置点至近垂面的垂足并标记为参考焦点;

在步骤s304中,作经过观察器位置点和参考焦点的正交投影面,包括上投影面和右投影面;

在步骤s305中,计算顶点在上投影面的正投影的最左点和最右点,计算顶点在右投影面的正投影的最上点和最下点;

在步骤s306中,根据最左点和最右点计算出动态对象的长度,根据最上点和最下点计算出动态对象的宽度;

在步骤s307中,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;

在步骤s308中,根据观察器位置点、最左点以及最右点作以观察器位置点为顶点的第一三角形,并作第一三角形顶角的第一顶点角平分线;

在步骤s309中,以第一顶点角平分线与近垂面的交点作参考焦点校正右投影面,参考焦点校正右投影面与右投影面平行;

作为本发明的优选实施例,在计算出参考焦点、长度和宽度以后,还可以作进一步的缩小误差的计算,如图7所示,设以观察器位置点eyepos、最左点upoints[leftmax]和最右点upoints[rightmax]三点做一个以eyepos为顶点的三角形,顶角为角ler,使用线性平面相交特性求出角ler的角平分线,设ler的角平分线在近垂面planefront0面上的交点为lrp,交点lrp为起始点右方向上作出参考焦点校正右投影面planeright1。

在步骤s310中,根据观察器位置点、最上点以及最下点作以观察器位置点为顶点的第二三角形,并作第二三角形顶角的第二顶点角平分线;

在步骤s311中,以第二顶点角平分线与近垂面的交点作参考焦点校正上投影面,参考焦点校正上投影面与上投影面平行;

在本发明实施例中,如图8所示,设以观察器位置点eyepos、最高点rpoints[heightmax]和最低点rpoints[lowmax]三点做一个以观察器位置点eyepos为顶点的三角形,顶角为角teb,使用线性平面相交特性求出角teb的角平分线,设teb的角平分线在近垂面planefront0面上的交点tbp,以交点tbp为起始点上方向上作出参考焦点校正上投影面planeup1。

在步骤s312中,以近垂面、参考焦点校正有投影面以及参考焦点校正上投影面的交点作为校正参考焦点,作经过观察器位置点和校正参考焦点的校正正交投影面,包括校正上投影面和校正右投影面;

在本发明实施例中,如图10所示,以参考焦点校正右投影面planeright1、参考焦点校正上投影面planeup1和近垂面planefront0面相交,交点为ep,作为校正参考焦点,以观察器位置点eyepos到校正参考焦点ep作为方向向量计算出一个以校正参考焦点ep为起始点的校正近垂面、校正上投影面planeup2和校正右投影面planeright2;

在步骤s313中,计算顶点在校正上投影面的正投影的校正最左点和校正最右点,计算顶点在校正右投影面的正投影的校正最上点和校正最下点;

在本发明实施例中,如图10-11所示,计算方式如下:

1.points数组每点在校正上投影面planeup2上的垂足标记为upoints2数组,计算upoints2数组中最左点upoints2[leftmax]和最右点upoints2[rightmax]以及points数组中的最左点leftmax2和最右点rightmax2;

2.设point0在校正上投影面planeup2面上的垂足为b点,point1在校正上投影面planeup2面上的垂足为d点,point2在校正上投影面planeup2面上的垂足为c点,point3在校正上投影面planeup2面上的垂足为a点,设观察器位置点eyepos为e点,则存在6个以e点为顶角的角向量∠bea,∠bed,∠bec,∠aec,∠aed,∠dec,比较这6个角的大小,哪个角最大那相对应点就是在校正上投影面planeup2面上点垂足的最左点upoints2[leftmax]和最右点upoints2[rightmax];

3.points数组每点在校正右投影面planeright2上的垂足标记为rpoints数组,计算rpoints数组中最高点rpoints2[heightmax]和最低点rpoints2[lowmax]以及points数组中的最高点heightmax2和最低点lowmax2;

4.设point0在校正右投影面planeright2面上的垂足为b点,point1在校正右投影面planeright2面上的垂足为d点,point2在校正右投影面planeright2面上的垂足为c点,point3在校正右投影面planeright2面上的垂足为a点,设eyepos为e点;则存在6个以e点为顶角的角向量∠bea,∠bed,∠bec,∠aec,∠aed,∠dec,比较这6个角的大小,哪个角最大那相对应点就是在校正右投影面planeright2上点垂足的最高点rpoints2[heightmax]和最低点rpoints2[lowmax]。

在步骤s314中,根据校正最左点和校正最右点重新计算出动态对象的长度,根据校正最上点和校正最下点重新计算出动态对象的宽度;

在步骤s315中,根据校正参考焦点以及观察器位置点重新计算出观察器至动态对象的焦距;

在本发明实施例中,重新计算观察器位置点至校正参考焦点的距离,即焦距。

在步骤s316中,根据焦距以及长度和宽度计算视场角度和视口长宽比,并将焦点以及视场角度和视口长宽比输出给观察器。

作为本发明的优选实施例,由于上述求出的参考焦点p0为假设焦点,为了减少误差,也可以在求出校正参考焦点ep后,求出校正后的焦距,即观察器位置点eyepos到校正参考焦点ep的距离,作为第一次的视场角度和视口长宽比计算。

在本发明实施例中,通过进一步的计算求出校正参考焦点、校正最左点和校正最右点、校正最上点和校正最下点,从而校正第一次的计算结果,重新计算出焦距、长度、宽度、进而重新计算出视场角度和视口长宽比,使得结果更精确。

作为本发明的优选实施例,根据需要可以进行多次校正,以达到最精确结果。

在本发明实施例中,通过大量测试数据,得出通过使用该动态锁定方法,可以实时调节观察器的视场角度以及观察器视口的长宽比,从而使观察器输出视口面积高占比的动态对象,减少被动态锁定对象的特征丢失,同时使得被动态锁定对象的画面更加高清,测试数据如表1-2所示:

表1:未使用动态锁定方法表

表2:使用动态锁定方法表

观察器视口面积占比测试对比,观察器在使用全息区域锁定算法后有效锁定区域在观察器视口面积占比明显提高了,如图12-13所示。

图14本发明实施例提供的动态锁定的装置结构示意图一,详述如下:

该装置包括位置锁定单元10锁定动态对象的三维空间的顶点以及观察器位置点;

在本发明实施例中,可以应用在全息投影领域中,锁定动态对象的三维空间的顶点位置信息和观察器位置点信息,例如,坐标。

焦距计算单元20根据顶点以及观察器位置点计算出动态对象在观察器的视角方向的参考焦点以及长度和宽度,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;

输出单元30根据焦距以及长度和宽度计算视场角度和视口长宽比,并将焦点以及视场角度和视口长宽比输出给观察器。

在本发明实施例中,计算出动态对象在观察器视角方向的参考焦点以及长度和宽度,参考焦点至观察器位置点的距离即为焦距,观察器的视场角度计算公式如下:

fieldofview=2.0f*atan(frustumwidth*0.5f/distance)*rad2deg;

其中,rad2deg为静态变量,值为57.29578f;fieldofview为观察器的视角;distance为焦距;frustumwidth为宽度;f为浮点数。

视口长宽比计算公式如下:

aspect=frustumlength/frustumwidth;其中,aspect为视口长宽比;frustumlength为长度;frustumwidth为宽度。

各单元执行的方法在上述方法实施例中已详细阐述,在此不再赘述。

在本发明实施例中,通过计算出焦点、视场角度以及视口长宽比输出给观察器,可以使观察器实时锁定动态对象的焦点,并实时调节观察器的视场角度以及观察器视口的长宽比,从而使观察器输出视口面积高占比的动态对象,减少被动态锁定对象的特征丢失,同时使得被动态锁定对象的画面更加高清。

图15示出了本发明实施例提供的焦距计算单元的装置结构示意图,详述如下:

焦距计算单元20具体包括参考焦点获取模块21根据顶点以及观察器位置点计算出观察器至动态对象的近垂面,并根据近垂面计算出参考焦点;

正交投影面获取模块22作经过观察器位置点和参考焦点的正交投影面,包括上投影面和右投影面;

左右点获取模块23计算顶点在上投影面的正投影的最左点和最右点,计算顶点在右投影面的正投影的最上点和最下点;

长宽度获取模块24根据最左点和最右点计算出动态对象的长度,根据最上点和最下点计算出动态对象的宽度;

焦距获取模块25根据参考焦点及观察器位置点计算出观察器至动态对象的焦距。

焦距计算单元20中各模块的执行方法在上述方法实施例中已详细阐述,在此不再赘述。

图16本发明实施例提供的动态锁定的装置结构示意图二,详述如下:

动态锁定装置包括位置锁定单元10锁定动态对象的三维空间的顶点以及观察器位置点;

焦距计算单元20根据顶点以及观察器位置点计算出动态对象在观察器的视角方向的参考焦点以及长度和宽度,根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;

其中,焦距计算单元20包括参考焦点获取模块21根据顶点以及观察器位置点计算出观察器至动态对象的近垂面,并根据近垂面计算出参考焦点;

其中,参考焦点获取模块21包括近垂面获取模块2101确定顶点至观察器中距离从小到大排序的前三个顶点,在前三个顶点至观察器的直线方向上以察器为起始点分别标记近点距离,近点距离标记的点的连接面为观察器至动态对象的近垂面,其中,近点距离为观察器至顶点中的最近距离;

参考焦点标记模块2102获取从观察器位置点至近垂面的垂足并标记为参考焦点;

正交投影面获取模块22作经过观察器位置点和参考焦点的正交投影面,包括上投影面和右投影面;

左右点获取模块23计算顶点在上投影面的正投影的最左点和最右点,计算顶点在右投影面的正投影的最上点和最下点;

长宽度获取模块24根据最左点和最右点计算出动态对象的长度,根据最上点和最下点计算出动态对象的宽度;

焦距获取模块25根据参考焦点及观察器位置点计算出观察器至动态对象的焦距;

第一顶点角平分线获取模块26,用于在执行焦距获取模块26根据参考焦点及观察器位置点计算出观察器至动态对象的焦距之后根据观察器位置点、最左点以及最右点作以观察器位置点为顶点的第一三角形,并作第一三角形顶角的第一顶点角平分线;

参考焦点校正右投影面获取模块27以第一顶点角平分线与近垂面的交点作参考焦点校正右投影面,参考焦点校正右投影面与所述右投影面平行;

第二顶点角平分线获取模块28根据观察器位置点、最上点以及最下点作以观察器位置点为顶点的第二三角形,并作第二三角形顶角的第二顶点角平分线;

校正上投影面获取模块29以第二顶点角平分线与近垂面的交点作参考焦点校正上投影面,其中,参考焦点校正上投影面与上投影面平行;

校正参考点获取模块210以近垂面、参考焦点校正有投影面以及参考焦点校正上投影面的交点作为校正参考焦点,作经过观察器位置点和校正参考焦点的校正正交投影面,包括校正上投影面和校正右投影面;

校正点获取模块211计算顶点在校正上投影面的正投影的校正最左点和校正最右点,计算顶点在校正右投影面的正投影的校正最上点和校正最下点;

长宽度校正模块212根据校正最左点和校正最右点重新计算出动态对象的长度,根据校正最上点和校正最下点重新计算出动态对象的宽度;

焦距校正获取模块213根据校正参考焦点以及所述观察器位置点重新计算出观察器至动态对象的焦距。

作为本发明的优选实施例,在计算出参考焦点、长度和宽度以后,还可以作进一步的缩小误差的计算,各模块的执行方法在上述方法实施例中已详细阐述,在此不再赘述。

作为本发明的优选实施例,根据需要可以在焦距计算单元20设置多个校正模块进行多次校正,以达到最精确结果,具体计算方法在上述方法实施例中已详细阐述,在此不再赘述。

图17示出了本发明实施例提供的移动终端的结构框图,详述如下:

一种移动终端,包括存储器101、处理器102及存储在存储器上并可在处理器上运行的计算机程序,处理器102直行程序时实现上述方法实施例中任意一项方法的步骤。

具体的方法步骤在方法实施例中已经阐述,在此不再赘述。

在本发明实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中任意一项方法的步骤。

具体的方法步骤在方法实施例中已经阐述,在此不再赘述。

本发明有益效果:通过动态锁定的方法计算出焦点、视场角度以及视口长宽比输出给观察器,可以使观察器实时锁定动态对象的焦点,并实时调节观察器的视场角度以及观察器视口的长宽比,从而使观察器输出视口面积高占比的动态对象,减少被动态锁定对象的特征丢失,同时使得被动态锁定对象的画面更加高清。

值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以不再进行赘述,相关之处参见方法实施例的部分说明即可。

以上对发明的具体实施方式进行了详细说明,但其只作为范例,本发明并不限制于以上描述的具体实施方式。对于本领域的技术人员而言,任何对该发明进行的等同修改或替代也都在本发明的范畴之中,因此,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1