图像显示的方法和装置与流程

文档序号:16427534发布日期:2018-12-28 19:53阅读:154来源:国知局
图像显示的方法和装置与流程

本发明实施例涉及图像领域,并且更具体地,涉及图像显示的方法和装置。

背景技术

增强现实(augmentedreality,ar)是一种全新的人机交互技术,通过这种技术,将虚拟对象应用到真实场景,真实场景和虚拟对象实时地叠加到同一个画面或空间中同时存在,用户不仅能够感受到在客观物理世界中所经历的“身临其境”的逼真性,而且能够突破空间、时间以及其它客观限制,感受到在真实世界中无法亲身经历的体验,因而,ar技术得到了广泛应用。

现有技术中,该虚拟对象为静态图像,或者说,该虚拟对象在真实场景(或者说,世界坐标系)中的位置不发生变化。

随着ar技术的发展,为了提高ar技术的逼真性,提出了使用动态图像作为虚拟对象的技术,即,该虚拟对象在真实场景中具有运动轨迹。

但是,在该现有技术中,终端设备对该运动轨迹的呈现是固定的,具体地说,在终端设备处于不同姿态时,该运动轨迹相对于终端设备(具体地说,是终端设备的设备坐标系)的位置相同。或者说,该运动轨迹相对于真实场景(或者说,世界坐标系)的位置随终端设备的姿态的变化而变化。

例如,如果在终端设备处于某一姿态(例如,终端设备的长度方向与重力方向平行)下,用户视察的运动轨迹为自上而下,则在终端设备的姿态发生变更,例如,终端设备的长度方向与重力方向形成为具有一定角度,则用户视察的运动轨迹不再为自上而下,而是具有一定倾斜度。

从而,严重降低了ar技术的逼真性,影响了ar技术的用户体验。



技术实现要素:

本发明实施例提供了一种图像显示的方法和装置,提高了ar技术的逼真性,提高了用户体验。

第一方面,提供了一种图像显示的方法,所述方法包括:

终端设备拍摄第一图像;

所述终端设备获取第一姿态的信息,所述第一姿态是所述终端设备拍摄所述第一图像时所处的姿态;

所述终端设备根据所述第一姿态的信息,确定第一运动轨迹;

所述终端设备呈现所述第一图像,并根据所述第一运动轨迹呈现虚拟对象,以使所述虚拟对象在所述第一图像的画面内沿所述第一运动轨迹移动。

因此,本发明实施例提供的图像显示的方法,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验。

可选地,所述终端设备获取第一姿态的信息,包括:

所述终端设备确定第一方向,所述第一方向是在所述第一姿态下所述终端设备的设备坐标系中预设的第一轴在世界坐标系中的方向;

所述终端设备确定第二方向,所述第二方向是世界坐标系中预设的第二轴的方向;

所述终端设备将所述第一方向与所述第二方向之间的夹角的信息作为所述第一姿态的信息。

因此,本发明实施例提供的图像显示的方法,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的夹角确定第一运动轨迹,从而,在该终端设备的姿态发生变化时,不仅能够使得该虚拟对象在不同姿态下对应的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;

同时,通过仅仅使用两个方向之间的夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面(或者说,该第一图像的画面)上,而不会在该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验。

可选地,所述第二方向为所述世界坐标系中的重力方向。

可选地,所述终端设备获取第一姿态的信息,包括:

所述终端设备确定所述终端设备自预设的基准姿态绕预设的第三轴旋转而处于所述第一姿态的过程中所旋转的夹角;

所述终端设备将所述夹角的信息作为所述第一姿态的信息。

可选地,所述终端设备根据所述第一姿态的信息,确定第一运动轨迹,包括:

在所述夹角处于预设的第一角度范围内的情况下,所述终端设备将预设的候选运动轨迹确定为所述第一运动轨迹;

在所述夹角处于预设的第一角度范围外的情况下,所述终端设备根据所述候选运动轨迹和所述夹角与所述第一角度范围的第一边界值的差值,确定所述第一运动轨迹。

可选地,所述终端设备根据所述第一姿态的信息,确定第一运动轨迹,包括:

在所述夹角在第二角度范围外的情况下,所述终端设备对所述夹角进行预设的变换处理,以使经过所述变换处理后的夹角在所述第二角度范围外且在预设的第三角度范围内,所述第二角度范围为通过用于表示旋转的四元数或旋转矩阵进行计算得到的角度所属的角度范围;

所述终端设备根据经过所述变换处理后的夹角,确定所述第一运动轨迹。

可选地,所述方法还包括:

所述终端设备获取基准运动轨迹,所述基准运动轨迹包括在所述终端设备处于预设的基准姿态下,所述虚拟对象在所述终端设备显示的画面中的运动轨迹;以及,

所述终端设备根据所述第一姿态的信息,确定第一运动轨迹,包括:

所述终端设备根据所述第一姿态的信息和所述基准运动轨迹,确定所述第一运动轨迹。

可选地,所述基准姿态包括在所述终端设备的设备坐标系中预设的第一轴与水平面平行或近似平行时所述终端设备所处的姿态,其中,所述第一轴平行于所述终端设备的宽度方向或长度方向。

可选地,所述方法还包括:

所述终端设备获取第一用户操作信息,所述第一用户操作信息是根据用户针对至少两个姿态的选择操作生成的;

所述终端设备根据所述第一用户操作信息,从所述至少两个姿态中确定所述基准姿态。

可选地,所述获取基准运动轨迹,包括:

所述终端设备获取第二用户操作信息,所述第二用户操作信息用于指示第一形状;

所述终端设备根据所述第二用户操作信息,确定所述基准运动轨迹,以使所述基准运动轨迹与所述第一形状相对应。

可选地,所述方法还包括:

获取映射关系信息,所述映射关系信息用于指示多种姿态的标识与多种运动轨迹之间的映射关系;以及,

所述根据所述第一姿态的信息,确定第一运动轨迹,包括:

根据所述第一姿态的标识,从所述映射关系中确定与所述第一姿态的标识相对应的所述第一运动轨迹。

第二方面,提供了一种图像显示的装置,包括用于执行上述第一方面以及第一方面中各实现方式的方法中的各步骤的单元。

第三方面,提供了一种图像显示的终端设备,包括存储器和处理器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得图像处理的终端设备执行第一方面及第一方面的任一种可能实现方式中的方法。

第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被终端设备的处理器运行时,使得该终端设备执行第一方面或第一方面的任一种可能的实现方式中的方法。

第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得终端设备执行第一方面或第一方面的任一种可能的实现方式中的方法。

在上述某些实现方式中,所述第一轴平行于以下任一个方向:

所述显示器的长度方向,或

所述显示器的宽度方向,或

所述终端设备的长度方向,或

所述终端设备的宽度方向。

在上述某些实现方式中,所述终端设备获取第二用户操作信息,包括:

所述终端设备检测用户的操作轨迹;

所述终端设备根据所述操作轨迹,确定所述第二用户操作信息,其中,所述第一形状与所述操作轨迹相对应。

附图说明

图1是适用本发明实施例的图像显示的方法的终端设备的示意性结构图。

图2是适用本发明实施例的设备坐标系的示意图。

图3是适用本发明实施例的世界坐标系的示意图。

图4是根据本发明实施例的图像显示的方法的示意性流程图。

图5是现有技术中手机处于第一姿势时,在第一时刻下虚拟对象在手机的显示器的显示平面上的运动状态。

图6是本发明实施例中手机处于第一姿势时,在第一时刻下虚拟对象在手机的显示器的显示平面上的运动状态。

图7是根据本发明实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。

图8是根据本发明另一实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。

图9是根据本发明再一实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。

图10是根据本发明实施例的手机的基准姿态的状态示意图。

图11是根据本发明另一实施例的手机的基准姿态的状态示意图。

图12是根据本发明再一实施例的手机的基准姿态的状态示意图。

图13是使用用于表示旋转的四元数描述的本发明一实施例的示意性流程图。

图14是使用用于表示旋转的旋转矩阵描述的本发明另一实施例的示意性流程图。

图15是根据本发明实施例的图像显示的装置的示意性框图。

图16是根据本发明实施例的图像显示的终端设备的示意性结构图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行描述。

本发明实施例的技术方案可以应用于各种支持角度测量的终端设备(也称为,用户设备),例如,手机、手环、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、个人数字助理(personaldigitalassistant,pda)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备等,而不仅限于通信终端。

首先,以图1所示的手机为例对本发明实施例所适用的终端设备进行介绍。在本发明实施例中,手机可以包括射频(radiofrequency,rf)电路110、存储器120、输入单元130、无线保真(wirelessfidelity,wifi)模块170、显示单元140、传感器150、音频电路160、处理器180、以及电源190等部件。

其中,本领域技术人员可以理解,图1中示出的手机结构仅为示例而非限定,手机还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

rf电路110可用于在收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将手机上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemformobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

其中,存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号。具体地,输入单元130可包括触控面板131、摄像设备132以及其他输入设备133。摄像设备132,可以对需要获取的图像进行拍照,从而将图像传送给处理器150进行处理,最后将图形通过显示面板141呈现于用户。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131和摄像设备132,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

其中,显示单元140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元140可以包括显示面板141(或,显示器141),可选地,可以采用液晶显示单元(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板141。进一步地,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。

其中,人眼能够识别的视觉输出外显示面板141可以作为本发明实施例中的显示设备,用来显示文本信息或图像信息。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现手机的输入和输出功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现手机的输入和输出功能。

另外,手机100还可包括至少一种传感器150,比如运动传感器151、距离传感器152、以及其他传感器。

具体地,姿态传感器也可以称为运动传感器151,并且,作为该运动传感器151的一种,可以列举角速度传感器(也称为,陀螺仪),当其被配置于手机中时,用于测量运动状态中的手机在偏转、倾斜时的转动角速度,从而,陀螺仪就可以精确分析判断出使用手机的用户的实际动作,进而,对手机做相应的操作。例如:体感、摇一摇(晃动手机实现一些功能)、平移/转动/移动手机可在游戏中控制视角、在全球定位系统(globalpositioningsystem,gps)没有信号时(如隧道中)根据物体运动状态实现惯性导航。

作为运动传感器151的另一种,可以列举重力传感器,重力传感器采用弹性敏感元件制成悬臂式位移器,并采用弹性敏感元件制成的储能弹簧来驱动电触点,从而实现将重力变化转换成为电信号的变化。例如:手机横竖屏智能切换、拍照照片朝向、重力感应类游戏(如滚钢珠)。

作为运动传感器151的另一种,可以列举加速度传感器,加速度传感器可检测各方向上(一般为三轴)加速度大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用以及振动识别相关功能等。例如:横竖屏切换、相关游戏、磁力计姿态校准、计步、敲击、手机摆放位置朝向角度。

此外,传感器还可以列举距离传感器,不仅包括可以测量短距离的距离传感器,例如,设置在手机听筒的两侧或者手机听筒凹槽中的距离传感器,还可以包括能够测量较远距离的距离传感器,例如,可以测量手机附近的物体与手机之间的距离。在本发明实施例中,可以采用上述列举的部分或全部运动传感器来获取有关手机运动状态的参数,例如:手机是否处于正在运动状态、手机的倾斜、偏转角度等。可以采用上述列举的距离传感器来获取手机与手机附近物体的距离。但并不限定于此,其他能够获取“有关手机运动状态的参数”和/或“手机与手机附近物体的距离”的传感器均落入本发明实施例的保护范围内。

此外,在本发明实施例中,作为传感器150,还可配置气压计、湿度计、温度计和红外线传感器等其他传感器,在此不再赘述。

光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板141和/或背光。

音频电路160、扬声器161,传声器162可提供用户与手机之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经rf电路110以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了wifi模块170,但是可以理解的是,其并不属于手机100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选地,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。

可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

手机100还包括给各个部件供电的电源(图中未画出)。

优选地,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。尽管未示出,手机100还可以包括蓝牙模块、耳机接口等,在此不再赘述。

需要说明的是,图1所示手机仅为一种终端设备的举例,本发明实施例并未特别限定,本发明实施例可以应用于手机、平板电脑等电子设备,本发明实施例对此不做限定。

在本发明实施例中,涉及两种坐标系,一种坐标系是相对坐标系(即,相对于终端设备的坐标系),即下文描述的设备坐标系,另一种坐标系是绝对坐标系,即下文描述的世界坐标系。,一种坐标系是相对坐标系(即,相对于终端设备的坐标系),即下文描述的用户坐标系。

下面,结合图2和图3对本发明实施例中涉及的两种坐标系进行简单说明。

1、设备坐标系

设备坐标系反映的数据是设备相对于自己的位置信息,是一种相对坐标系。具体而言,当设备运动或者旋转的时候,设备坐标轴相对于设备的相对位置不会发生变化,或者说,设备坐标系是跟随设备的姿态的变化而变化的。

图2所示的是在应用于本发明实施例的设备坐标系。如图2所示,当设备处于图2所示的姿态时,该设备的设备坐标系中的三个轴分别是:沿着屏幕从左指向右边的是x轴,沿着屏幕从底部指向顶部的是y轴,垂直于屏幕且指向屏幕正面向外的是z轴,即屏幕背面是z的负值。

2、世界坐标系

世界坐标系的数据反映的是设备相对于地球及真实环境的位置信息,是一种绝对坐标系。当设备运动或者旋转的时候,世界坐标系与设备的相对位置是变化的。图3所示的是应用于本发明实施例中的三维世界坐标系,如图3所示,世界坐标系中的三个轴的相对于该三维世界坐标系的数据反映的是设备相对于地球及真实环境的位置信息,是一种绝对坐标系,定义如下:x轴平行于地面的是,指向东方;y轴平行于地面的y轴,指向北极方向;z轴垂直于地面的是z轴,指向天空。通常情况下,将平行于地面的任一个方向称为水平方向,将垂直于地面的方向的重力方向,且对于运动中的设备来说,该三维世界坐标系与设备的相对位置是变化的。

以下,为了便于理解和记忆,以上述手机100作为本发明实施例的图像显示的方法的执行主体,结合图4对该方法进行详细说明。

图4是根据本发明实施例的图像显示的方法的示意性流程图。如图4所示,该方法可以在包括摄像头和显示器的终端设备中执行,该方法包括:

s210,拍摄第一图像;

s220,获取第一姿态的信息,所述第一姿态是所述终端设备拍摄所述第一图像时所处的姿态;

s230,所述终端设备根据所述第一姿态的信息,确定第一运动轨迹;

s240,呈现所述第一图像,并根据所述第一运动轨迹呈现虚拟对象,以使所述虚拟对象在所述第一图像的画面内沿所述第一运动轨迹移动。

具体而言,在s210中,手机100可以通过摄像设备132拍摄该第一图像,该第一图像为该终端设备在该第一姿态时拍摄的图像,该第一图像即为真实场景的画面,该第一图像也为静态图像。

在s220中,处理器180可以通过运动传感器151(例如,加速度传感器)获取该第一姿态的信息,该第一姿态是该终端设备拍摄该第一图像时所处的姿态。换句话说,该第一姿态可以是该终端设备相对于基准姿态存在有一定偏移量的姿态,该基准姿态可以是预设的基准姿态,该预设的基准姿态可以是用户手持手机100时,用户看到的虚拟对象在真实场景中的运动轨迹是预设情况的姿态,后续对该预设的基准姿态会有详细说明。

此外,该第一姿态的信息可以是手机100在该第一姿态下相对于预设的基准姿态之间的偏移量,具体地,该偏移量可以是手机100在该第一姿态时相对于基准方向(或者说,固定轴)之间的夹角,或者说,该偏移量也可以是手机100在该第一姿态时相对于基准坐标点的偏移量等。

在s230中,处理器180可以根据该第一姿态的信息,确定该第一运动轨迹,该第一运动轨迹指的是手机100在该第一姿态下,该虚拟对象在该显示器141(或者说,显示面板141)上的显示平面上的运动轨迹。

换句话说,该第一运动轨迹也可以理解为该虚拟对象在该显示平面上的显示方向,该显示方向可以是,例如,该虚拟对象是在xy轴平面上的图像,则该显示方向可以是该虚拟对象的图像的各像素点中,在x轴上的坐标值最大值像素点与在x轴上的坐标值最小值像素点的连线的方向,或者,该显示方向可以是该虚拟对象的图像的各像素点中,在y轴上的坐标值最大值像素点与在y轴上的坐标值最小值像素点之间的连线的方向。

在本发明实施例中,该第一运动轨迹与手机100(或者说,设备坐标系)的相对位置是变化的,该第一运动轨迹与真实环境(或者说,世界坐标系)的相对位置是不变的。也就是说,无论手机100处于哪种姿势,用户视察到的该虚拟对象在真实场景中的运动轨迹是不变的。

在本发明实施例中,根据该第一姿态的信息确定该第一运动轨迹,逻辑上也可以这么理解:该终端设备处于该第一姿态时,该第一姿态相对于基准姿态之间具有的偏移量为偏移量#a,方向为正方向,该终端设备将具有运动轨迹的虚拟对象通过在反方向调整偏移量#a,从而可以使得用户视察到的该虚拟对象的运动轨迹相对于真实环境是不变的。

该虚拟对象可以是ar应用中的3d模型,也可以是基于ar技术的游戏中的虚拟场景等,本发明实施例并不限于此。

在s240中,在手机100处于该第一姿态时,处理器180(这里的处理器可以是图形处理器)将该第一图像显示在该显示器141中,且根据该第一运动轨迹在该显示器141上呈现虚拟对象。这样,在该第一姿态下,可以使得用户在真实场景中看到的运动轨迹与预设的情况相同,即,用户在真实场景中看到的运动轨迹与用户在预设的基准姿态在真实场景中看到的运动轨迹是相同的。

下面,结合图5和图6详细描述现有技术与本发明实施例的区别。

图5所示为现有技术中手机处于第一姿势时,在第一时刻虚拟对象在手机的显示器的显示平面上的运动状态。

手机100在预设的基准状态(例如,手机100的显示面与重力方向平行)下,该虚拟对象在显示面上的运动轨迹(即,第一运动轨迹)是与重力方向平行的,即,实际上用户视察的该第一运动轨迹相对于真实环境是从天上飞下来的,或者说,该第一运动轨迹与手机100的长边平行。

当手机100处于图5所示的第一姿势(例如,手机100沿着设备坐标系中的z轴旋转第一角度)时,该第一运动轨迹相对于手机100不会发生变化,即,该第一运动轨迹都是与手机100的长边平行,但是,该第一运动轨迹相对于真实环境发生变化,即,该第一运动轨迹与水平方向具有一定夹角,用户视察到的该第一运动轨迹相对于真实环境来说并不是从天上飞下的,该虚拟对象在该第一姿态且在第一时刻的运动状态即为图5所示,用户视察到的该虚拟对象在真实环境中的位置可以视为该虚拟对象的该第一运动轨迹中的任一个质点在真实环境中的位置。

图6所示为本发明实施例中手机处于第一姿势时,在第一时刻虚拟对象在手机的显示器的显示平面上的运动状态。

同理,手机100在预设的基准状态(例如,手机100的显示平面与重力方向平行)下,该虚拟对象在显示平面上的运动轨迹(即,第一运动轨迹)是与重力方向平行的,即,实际上用户视察的该第一运动轨迹相对于真实环境是从天上飞下来的,或者说,该第一运动轨迹与手机100的长边平行。

当手机100处于图6所示的第一姿势(例如,手机100沿着设备坐标系中的z轴旋转第一角度)时,该第一运动轨迹相对于手机100发生变化,即,该第一运动轨迹不再与手机100的长边平行,但是,该第一运动轨迹相对于真实环境不发生变化,即,该第一运动轨迹始终与重力方向平行,用户视察到的该第一运动轨迹相对于真实环境来说也是从天上飞下的,该虚拟对象在该第一姿态且在第一时刻的运动状态即为所示,用户视察到的该虚拟对象在真实环境中的位置可以视为该虚拟对象的该第一运动轨迹中的任一个质点在真实环境中的位置。

因此,本发明实施例提供的图像显示的方法,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发生变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验。

在本发明实施例中,该第一图像可以为该终端设备在任意时刻通过摄像机拍摄的图像中的任一幅图像,即该图像为静态图像,同理,该第一姿态可以为该终端设备在任意时刻所处的姿态中的任一姿态,该终端设备可以获取该终端设备在任意时刻所处的姿态下的信息,从而可以确定在不同姿态下该虚拟对象在显示平面上的运动轨迹。针对“该终端设备根据该第一姿态的信息确定该第一运动轨迹”的具体过程,可以有多种实现方式,后续对其进行详细说明。

此外,作为示例而非限定,本发明实施例也可以应用在视频显示的场景中,即在显示平面上显示视频的同时呈现虚拟对象的场景中。

在视频显示的场景中,可以通过摄像头拍摄视频,该视频包括至少一帧图像,该第一图像为该视频中的任一帧图像。该终端设备针对该视频中的每一帧图像的处理方式与该终端设备针对该第一图像的处理方式相似,或者说,该终端设备在显示该视频中的每一帧图像且呈现该虚拟对象在显示平面上的运动轨迹的方式与该终端设备在显示该第一图像且呈现该虚拟对象在显示平面上的运动轨迹的方式相似,这里,为了避免赘述,省略其详细说明。

可选地,该终端设备获取第一姿态的信息,包括:

该终端设备确定第一方向,该第一方向是在该第一姿态下该终端设备的设备坐标系中预设的第一轴在世界坐标系中的方向;

该终端设备确定第二方向,该第二方向是世界坐标系中预设的第二轴的方向;

该终端设备将该第一方向与该第二方向之间的夹角的信息作为所述第一姿态的信息。

具体而言,如前所述,设备坐标系是相对于设备(即,手机100)的,该设备坐标系与设备之间的位置关系不会随着设备的姿态变化而变化,该世界坐标系是设备相对于地球及真实环境的位置信息,是一种绝对坐标系。

该第一姿态的信息具体包括两个方向(即,第一方向和第二方向)之间的夹角,当手机100处于不同姿势时,该第一方向相对于手机100的设备坐标系中预设的第一轴是固定的,但是,相对于世界坐标系的方向是随着手机100的姿态的变化而变化的。

图7所示是根据本发明实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。在图7中,存在两种坐标系,一种是世界坐标系,一种是设备坐标系。

该预设的第一轴可以是与手机100的长边平行的轴,即,图7中设备坐标系所示的y轴,该第一方向与该第一轴平行。

作为示例而非限定,该预设的第一轴也可以是与手机100的短边平行的轴(即,图7所示的设备坐标系中的x轴),本发明实施例并不限于此。

该预设的第二轴是世界坐标系中的任一轴,该第二轴可以是如图7所示的世界坐标系中的z轴,对应地,该第二方向可以是重力方向。

作为示例而非限定,该第二轴可以是如图7所示的世界坐标系中的x轴或y轴,对应地,该第二方向可以为平行于水平面的任意两个互相垂直的方向。

在图7中,在手机100处于左图所示的姿势时,该第一方向与手机100的第一轴平行,且第一方向与世界坐标系中的重力方向(即,世界坐标系中的z轴)平行;在手机100处于右图所示的姿势时,该第一方向仍然平行于该第一轴,但是该第一方向不再平行于世界坐标系中的重力方向,该第一方向与重力方向之间的夹角即为该第一夹角,即图7所示的夹角

此外,该显示平面与该设备坐标系中预设的第一平面保持平行或近似平行,该第一平面可以是由手机100的长边与短边构成的平面。

因此,本发明实施例提供的图像显示的方法,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的夹角确定第一运动轨迹,从而,在该终端设备的姿态发生变化时,不仅能够使得该虚拟对象在不同姿态下对应的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;

同时,通过仅仅使用两个方向之间的夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面(或者说,该第一图像的画面)上,而不会在该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验。

可选地,该第二方向为该世界坐标系中的重力方向。

即,在本发明实施例中,可以将世界坐标系中的重力方向作为基准参考方向。

在本发明实施例中,该终端设备根据该第一姿态的信息确定该第一运动轨迹的具体方式可以有多种方式,下面,分别对该多种方式进行详细说明。

方式1

可选地,该方法还包括:

获取基准运动轨迹,该基准运动轨迹包括在预设的基准姿态下,该虚拟对象在该显示平面内的运动轨迹;以及

根据该第一姿态的信息,确定第一运动轨迹,包括:

根据该第一姿态的信息和该基准运动轨迹,确定该第一运动轨迹。

具体而言,该基准运动轨迹也可以理解为系统预设的用户视察的该虚拟对象在真实环境中的运动轨迹,该基准运动轨迹与该第一运动轨迹相对于手机100的设备坐标系之间的位置关系是不一样。

继续,以图7为例,假设,左边的图表示是手机100当前的姿势是基准姿势,该基准运动轨迹与手机100的设备坐标系的位置如图所示,并且,该基准运动轨迹与该第一轴是平行的;右边的图表示的是手机100当前的姿势是第一姿势,该第一运动轨迹与手机100的设备坐标系中的位置如图所示,与该基准运动轨迹与手机100的设备坐标系中的位置完全不同,最明显地,该第一运动轨迹与重力方向并不平行,而是成一定角度。

进而,处理器180可以根据该第一姿态(进一步地,可以根据该第一方向与该第二方向之间的第一夹角)的信息以及基准运动轨迹来确定该第一运动轨迹。

例如,处理器180可以将该用于表示该第一夹角的相关参数进行求逆运算,根据计算结果确定该基准运动轨迹与该设备坐标系之间的位置关系,从而可以确定该第一运动轨迹。

在本发明实施例中,可以通过下述方式获得该基准运动轨迹:

可选地,该终端设备获取第二用户操作信息,该第二用户操作信息用于指示第一形状;

该终端设备根据该第二用户操作信息,确定该基准运动轨迹,以使该基准运动轨迹与该第一形状相对应。

具体而言,该第二用户操作信息可以是用户的触控操作(为了便于区分与理解,记为触控操作#a),该触控操作#a可以为滑动操作,即,该滑动操作形成的轨迹为连续的滑动轨迹,该滑动轨迹对应该第一形状,该终端设备可以基于该滑动轨迹确定该第一形状,从而确定该基准运动轨迹,或者说,该滑动轨迹可以表示该基准运动轨迹的具体轨迹曲线。

作为示例而非限定,该触控操作#a可以为点击操作,即,该终端设备可以检测到用户点击的多个(至少两个)触控点,此种情况下,该终端设备可以基于该多个触控点,确定该第一形状,从而确定该基准运动轨迹。

例如,该多个触控点可以连接为一条连续的曲线或直线,该终端设备可以将该曲线或直线作为该第一形状,从而根据该第一形状确定该基准运动轨迹。

作为示例而非限定,该触控操作#a可以为用户输入的文本信息,该文本信息可以是不同基准运动轨迹对应的标识。此种情况下,该终端设备可以存储多个基准运动轨迹,并且,可以在人机交互窗口(或者说,人机交互界面)上呈现不同基准运动轨迹的索引(例如,该多个基准运动轨迹的名称或缩略图)。此种情况下,该终端设备可以将被用户选择的基准运动轨迹作为基准运动轨迹。

作为示例而非限定,该第二用户信息不仅可以指示该第一形状,也可以指示为用户在显示面上的滑动方向,即该触控操作#a为用户在显示面上的滑动方向,该滑动方向#a可以表示基准运动轨迹的运动方向。

例如,若是手机100中的传感器检测到滑动方向为从显示平面的左边滑向右边,则该基准运动轨迹的运动方向可以平行水平方向;再例如,若是手机100中的传感器检测到滑动方向为从显示平面的顶部滑向底部,则该基准运动轨迹的运动方向可以平行重力方向。

方式2

该方法还包括:

获取映射关系信息,该映射关系信息用于指示多种姿态的标识与多种运动轨迹之间的映射关系;以及

该根据该第一姿态的信息,确定第一运动轨迹,包括:

根据该第一姿态的标识,从该映射关系中确定与该第一姿态的标识相对应的第一运动轨迹。

具体而言,手机100内部的存储器中可以存储有多个该映射关系,或者,可以从手机100中的系统软件或应用软件中时时获取该映射关系,该映射关系用于指示多个姿态的标识与多个运动轨迹之间的映射关系。该映射关系可以是一一对应关系,也可以是至少两种姿态的标识对应一种运动轨迹的映射关系。

例如,继续以图7为例,例如,当手机100处于左图的姿势(即,基准姿态)时,虚拟对象在显示平面上的运动轨迹平行y轴,当手机100处于右边的姿势(即,第一姿势)时,虚拟对象在显示平面上的运动轨迹与y轴形成一定夹角,即,基准姿态对应的是左图中的运动轨迹,第一姿态对应的是右图中的运动轨迹,该终端设备在上述两种姿态中对应两种不同的运动轨。那么,该基准姿态的标识可以为1,该第一姿态的标识可以为2。

再例如,将角度进行范围划分,即将360进行等分,处于同一角度范围内的姿态使用相同的标识,不同角度范围之间的角度使用不同的标识,对不同姿态进行标识等。

再例如,将角度进行范围划分,即将360进行等分,处于同一角度范围内的不同姿态使用不同的标识,但是处于同一角度范围内的不同姿态对应的不同标识对应一种运动轨迹。

进而,处理器180可以根据该第一姿态的标识,从该映射关系中确定与该第一姿态的标识相对应的第一运动轨迹。

方式3

可选地,该终端设备根据该第一姿态的信息,确定第一运动轨迹,包括:

在该夹角处于预设的第一角度范围内的情况下,所述终端设备将预设的候选运动轨迹确定为该第一运动轨迹;

在该夹角处于预设的第一角度范围外的情况下,该终端设备根据该候选运动轨迹和该夹角与该第一角度范围的第一边界值的差值,确定该第一运动轨迹。

换句话说,在该终端设备所处的多种姿态所对应的多个夹角都处于该第一角度范围内的情况下,该多种姿态对应的是同一种运动轨迹,即候选运动轨迹,该候选运动轨迹可以是预设的基准运动轨迹,也可以是预设的任意一种运动轨迹,此种情况下,该终端设备将该候选运动轨迹作为该第一运动轨迹,也就是说,逻辑上来说,该终端设备可以不调整该虚拟对象在当前姿势的角度,这样,在一定程度范围内可以减少处理器180的负载;

在该终端设备所处的多种姿态所对应的多个角度都处于该第一角度范围外的情况下,该多种姿态对应多种运动轨迹,即不同姿态对应不同的运动轨迹,该终端设备可以根据当前姿态与基准姿态之间的夹角以及该夹角与该第一角度范围的边界值之间的差值确定该第一运动轨迹,也就是说,逻辑上来说,该终端设备需要调整该虚拟对象在当前姿势的角度,从而使得用户视察的该虚拟对象的运动轨迹相对于真实环境是不变的。

在本发明实施例中,该基准运动轨迹可以是该终端设备处于基准姿态下该虚拟对象在该终端设备显示的画面中的运动轨迹,或者说,该基准运动轨迹可以是该终端设备处于基准姿态下该虚拟对象在该终端设备的显示平面上的运动轨迹。

此外,该第一角度范围可以是预设的值,可以根据实际需要为该第一角度范围赋予不同的值,理论上,该第一角度范围越小越有利于提高用户体验。

下面,结合上述图8以及图9详细描述手机100通过方式3根据该第一姿态的信息确定该第一运动轨迹。

图8所示为根据本发明另一实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。如图8所示,在手机100处于左图所示的姿势(即,基准姿态)时,该第一方向与手机100的第一轴平行,且第一方向与世界坐标系中的重力方向(即,世界坐标系中的z轴)平行;在手机100处于右图所示的姿势(记为姿态#a,即,该第一姿态的一例)时,该第一方向仍然平行于该第一轴,但是该第一方向不再平行于世界坐标系中的重力方向,该第一方向与重力方向之间的夹角即为图8所示的夹角

手机100通过传感器获得手机100在该姿态#a下的夹角处理器180确定该夹角属于该第一角度范围外,则,该手机100根据该夹角确定该第一运动轨迹,且该第一运动轨迹相对于真实环境变化较小。

假设,该第一角度范围为手机100在姿态#a相对于基准姿态的夹角为25°,那么,该夹角处于该第一角度范围外,该第一角度范围的第一边界值即为5°,该夹角与该第一边界值的差值即为20°,处理器180根据该20°的夹角确定该第一运动轨迹,该第一运动轨迹与该设备坐标系中的第一方向以及重力方向之间的位置关系即为图8所示:该第一运动轨迹与该第一方向之间的位置关系不再是平行关系,该第一运动轨迹与重力方向之间有着较小的角度,可以视为该夹角与该第一角度范围的第一边界值之间的差值。

如前所述,该第一角度范围越小越有利于提高用户体验,当该第一角度范围为0度时,该虚拟对象的运动轨迹始终相对于真实环境是不变的,此时的用户体验是最高的。

作为示例而非限定,此种情况下,在该夹角处于该第一角度范围之外的情况下,该终端设备也可以根据该夹角来确定该第一运动轨迹。

例如,在上述例子中,该夹角为25°,处理器100直接根据该夹角确定该第一运动轨迹,逻辑上讲,手机100相对于基准姿态旋转了多少角度,该虚拟对象就被反方向调整多少角度。

图9所示为根据本发明再一实施例的世界坐标系、设备坐标系、基准运动轨迹以及第一运动轨迹之间的位置关系的示意性指示图。如图9所示,在手机100处于左图所示的姿势(即,基准姿态)时,该第一方向与手机100的第一轴平行,且第一方向与世界坐标系中的重力方向(即,世界坐标系中的z轴)平行;在手机100处于右图所示的姿势(记为姿态#b,即,该第一姿态的另一例)时,该第一方向仍然平行于该第一轴,但是该第一方向不再平行于世界坐标系中的重力方向,该第一方向与重力方向之间的夹角即为图9所示的夹角

手机100通过传感器获得手机100在该姿态#b下的夹角处理器180确定该夹角属于该第一角度范围内,则,该手机100根据该夹角确定该第一运动轨迹,且该第一运动轨迹相对于真实环境变化未变化,这样。

假设,该第一角度范围为手机100在姿态#b相对于基准姿态的的夹角为3°,那么,该夹角处于该第一角度范围内,该终端设备将该基准运动轨迹确定为该第一运动轨迹。此种情况下,该第一运动轨迹与该设备坐标系中的第一方向以及重力方向之间的位置关系即为图8所示:该第一运动轨迹与该第一方向之间的位置关系仍然是平行关系,该第一运动轨迹与重力方向之间有角度,可以视为该夹角

同理,如前所述,该第一角度范围越小越有利于提高用户体验,当该第一角度范围为0度时,该虚拟对象的运动轨迹始终相对于真实环境是不变的,此时的用户体验是最高的。

作为示例而非限定,该终端设备也可以基于其他方式来根据该第一姿态的信息确定该第一运动轨迹。

例如,不同姿态之间的偏移量小于一定偏移量范围时,可以对应一种运动轨迹,该偏移量越小越有利于提供用户的体验。

具体而言,假设,该终端设备的前后两种姿态之间的偏移量为1°,那么,该前后两种姿态对应的是同一种运动轨迹,该终端设备将前一种姿态对应的运动轨迹作为后一种姿态对应的运动轨迹。

再例如,该终端设备可以对不同姿态相对于基准姿态的偏移量进行求和计算,获得该终端设备在一定偏移范围内的平均偏移量,从而根据该平均偏移量确定该虚拟对象在显示平面上的运动轨迹。

可选地,该终端设备获取第一姿态的信息,包括:

该终端设备确定该终端设备自预设的基准姿态绕预设的第三轴旋转而处于该第一姿态的过程中所旋转的夹角;

该终端设备将该夹角的信息作为该第一姿态的信息。

具体而言,该第一姿态可以是手机100在该基准姿态下,绕该第三轴旋转后的姿态,该第三轴即为如图2所示的z轴,从而手机100将自己在旋转过程中的夹角确定该第一姿态的信息。

这样,终端设备绕着垂直于显示平面的第三轴进行旋转,可以满足用户使用终端设备的使用习惯,能够使得该终端设备的显示平面可以面向用户(或者说,该终端设备的显示平面在用户的视角范围内),进而可以使得显示平面中显示的图像和虚拟对象被用户观察到。

可选地,该基准姿态包括在该终端设备的设备坐标系中预设的第一轴与水平面平行或近似平行时该终端设备所处的姿态,其中,该第一轴平行于该终端设备的宽度方向或长度方向。

具体而言,该基准姿态可以包括如图10所示的手机100所处的姿态,该第一轴与手机100的宽度方向平行,或者,该第一轴与手机100的显示器的宽度方向平行,该第一轴即为图10所示的设备坐标系中的x轴,该第一轴与图10所示的水平面平行或近似平行。

或者,该基准姿态可以包括如图11所示的手机100所处的姿态,该第一轴与手机100的长度方向平行,或者,该第一轴与手机100的显示器的长度方向平行,该第一轴即为图11所示的设备坐标系中的y轴,该第一轴与图10所示的水平面平行或近似平行

更具体地,该基准姿态可以包括如图12所示的手机100所处的姿势,同理,该第一轴与手机100的宽度方向平行,或者,该第一轴与手机100的显示器的宽度方向平行,该第一轴即为图12所示的设备坐标系中的x轴,该第一轴不仅与图12所示的水平面平行或近似平行,且该第一轴与重力方向垂直或近似垂直。

应理解,上述图示的该基准姿态仅为示意性说明,本发明实施例并不限于此,任何满足上述特征的基准姿态都在本发明实施例的保护范围内。

可选地,该方法还包括:

该终端设备获取第一用户操作信息,该第一用户操作信息是根据用户针对至少两个姿态的选择操作生成的;

该终端设备根据该第一用户操作信息,从该至少两个姿态中确定该基准姿态。

具体而言,手机100可以存储至少两个备选姿态,并且,可以在人机交互窗口(或者说,人机交互界面)上呈现该至少两个备选姿态的索引(例如,该至少两个备选姿态的名称或缩略图)

这样,手机100可以将该至少两个备选姿态中被用户选择的姿态作为该基准姿态,此种情况下,作为示例而非限定,该用户操作可以是用户使用触控板、触控笔等输入设备进行的操作。

作为示例而非限定,该第一用户操作信息也可以是触控操作(为了便于区分与理解,记为触控操作#b),该触控操作#b也可以为滑动方向、点击操作等。

例如,若是滑动方向与基准方向之间的夹角的大小的概率在一定阈值范围内,可以认为该手机100处于该基准姿态。

应理解,上述举例仅为示意性说明,本发明实施例并不限于此,任何能够根据用户操作指示信息确定该基准姿态的方式都在本发明实施例的保护范围内。

可选地,该第一轴平行于以下任一个方向:

该显示器的长度方向,或

该显示器的宽度方向,或

该终端设备的长度方向,或

该终端设备的宽度方向。

可选地,该终端设备根据该第一姿态的信息,确定第一运动轨迹,包括:

在该夹角在第二角度范围外的情况下,该终端设备对该夹角进行预设的变换处理,以使经过该变换处理后的夹角在该第二角度范围外且在预设的第三角度范围内,该第二角度范围为通过用于表示旋转的四元数或旋转矩阵进行计算得到的角度所属的角度范围;

该终端设备根据经过该变换处理后的夹角,确定该第一运动轨迹。

具体而言,该第二角度范围可以是预设的值,可以为通过四元数或旋转矩阵进行计算得到的角度所属的角度范围,该第三角度范围也开始是预设的。更具体地,一般说来,可以使用四元数或旋转矩阵表示该夹角的信息,由于根据四元数或旋转矩阵计算出的角度范围在(即,该第二角度范围为)之间,这样,若是手机100的顶部处于水平面以下,或者说,设备坐标系的第一轴(例如,y轴)处于水平面以下,那么,通过该第二角度范围为的四元数计算出来的角度进行后续计算处理的话是错误的,因此,当使用四元数或旋转矩阵表示该夹角的信息时,可以通过设置第二角度范围来调整该夹角,使得经过处理后的夹角属于该第三角度范围,该第三角度范围可以是从而,该手机100根据针对该夹角处理后的夹角进行该第一运动轨迹的确定。

以该第二角度范围为该第三角度范围为为例,说明预设的变化处理,为了便于区分与理解,将经过变更处理前的夹角记为将经过变更处理后的夹角记为

例如,若是设备坐标系的第一轴(例如,y轴)处于水平面以下,表示手机100在当前姿态下的实际角度范围在若通过四元数或旋转矩阵计算的该夹角属于则处理后的夹角为其中,这样,处理后的夹角的角度范围为若通过四元数或旋转矩阵计算的该夹角属于其中,这样,处理后的夹角的角度范围为

以上,结合图1至图12详细描述了根据本发明实施例的图像显示的方法,下面,结合13和图14,通过两个具体的实施例来描述本发明实施例的图像显示的方法。

图13所示的是使用四元数描述的本发明另一实施例的示意性流程图,以手机100的基准姿态如图7中左图所示的姿态,手机100的第一姿态如图7中右图所示的姿态(或者说,以手机100自该基准姿势绕着设备坐标系的第三轴(即,图7所示的设备坐标系中的z轴)旋转第一夹角后的姿态)为例,对本发明实施例的过程进行详细说明。

具体步骤如下:

在s310中,开启运动传感器151;

在s320中,处理器180根据运动传感器151获取用于表示手机100在该第一姿态下的旋转变化的第一四元数q,该第一四元数q用于表示手机10的旋转;

在s330中,处理器180根据该第一四元数q计算手机100的第一轴(即,图2所示的设备坐标系中的y轴)与重力方向之间的第一夹角

由于根据四元数计算出的该第二角度范围为这样,若是手机100的顶部处于水平面以下,或者说,设备坐标系的第一轴(即,y轴)处于水平面以下,那么,通过角度范围为的四元数计算出来的角度进行的后续计算处理是错误的。

因而,可选地,在s320中,手机100还可以获取手机100在该第一姿态下的运动传感器151在第一轴(即,设备坐标系中的y轴)上的第一数值a,进而,在s331中,在根据该第一数值a判断手机100的第一轴是否处于水平面以下(即,判断该第一数值a是否小于0):若通过该第一数值a判断手机100的第一轴处于水平面以下,那么,在s332中,需要将变为即,使该夹角的角度范围为该第三夹角范围具体而言,若通过四元数或旋转矩阵计算的该夹角属于则处理后的夹角为其中,这样,处理后的夹角的角度范围为若通过四元数或旋转矩阵计算的该夹角属于其中,这样,处理后的夹角的角度范围为

若通过该第一数值a判断手机100的第一轴处于水平面以上,那么,不需要针对处理,后续步骤直接使用即可。

在s340中,处理器180根据在s330中确定的第一夹角构造出一个新的表示旋转的第二四元数q0,该第二四元数q0表示的仅仅是手机100的第一轴与重力方向的夹角,或者,该第二四元数q0表示的仅仅是手机100由基站姿态绕着手机100的第三轴(即,图2所示的设备坐标系中的z轴)旋转后的角度,不考虑手机100的其余两个轴的旋转角度。

在s350中,处理器180将在s340中确定的第二四元数q0进行求逆运算,获得第三四元数q1,该第三四元数q1表示的角度与第一夹角的大小相等,方向相反。

在s360中,处理器180将该第三四元数q1输入应用软件中,具体来说,该第三四元数q1应用在虚拟摄像机中。

需要说明的是,若是手机100中的虚拟摄像机相对于预设状态已经有了旋转,那么,需要将该第三四元数q1和用于表示该虚拟摄像机的旋转的四元数进行相乘。

这样,逻辑上来讲,该虚拟对象就被旋转了一个角度,可以使得手机100在该第一姿态下虚拟对象在显示平面上的运动轨迹相对于真实环境不会发生变化,提高了用户体验。

此外,若是处理后的手机100中虚拟对象在显示平面上的运动轨迹不满足条件,例如,计算有误等,可以重新执行上述步骤,直到满足条件,进而在当前的姿态下,可以关闭运动传感器151。当手机100处于另一种姿态时,继续开始运动传感器151,重复执行上述步骤,直到满足条件。

例如,现有技术中,对于从天上飞下来的虚拟对象,若是手机100处于该第一姿态,那么,虚拟对象的在显示平面上的运动轨迹会随着手机100的倾斜而倾斜,用户视察到的虚拟对象在真实场景中的运动轨迹不再是从天上飞下来的运动轨迹,而是与手机100有着同样的倾斜角度。而在本发明实施例中,在手机100处于该第一姿态时,虚拟对象在显示平面上的运动轨迹相对于真实环境来说不会随着手机100的倾斜而倾斜,用户视察到的虚拟对象在真实场景中的运动轨迹是不会发生变化的,虚拟对象在真实场景中的运动轨迹仍然是从天上飞下来的运动轨迹。

作为示例而非限定,本发明实施例不仅可以通过四元数表示手机100的旋转,也可以通过旋转矩阵表示手机100的旋转,其中使用旋转矩阵针对本发明实施例可以有两种处理方式,一种处理方式与图13中使用四元数针对本发明实施例的处理方式相似,此处为了简洁,不再赘述;一种是通过向量的处理方式来实现本发明实施例。

下面,结合图14针对本发明实施例中使用旋转矩阵且通过向量的处理方式进行详细描述。

图14所示的是使用旋转矩阵描述的本发明再一实施例的示意性流程图。如图14所示,同样,以手机100的基准姿态如图7中左图所示的姿态,手机100的第一姿态如图7中右图所示的姿态(或者说,以手机100自该基准姿势绕着设备坐标系的第三轴(即,图7所示的设备坐标系中的z轴)旋转第一夹角后的姿态)为例,对本发明实施例的过程进行详细说明。

首先,需要说明的是,下文描述的右向量即为right向量,可以对应图2中的x轴,上向量即为up向量,可以对应图2中的y轴,观察向量即为backward向量,可以对应图2中的z轴。为了描述方便,统一采用右向量、上向量和观察向量对本发明实施例进行描述。

具体步骤如下:

在s410中,开启运动传感器151;

在s420中,从运动传感器151中获取用于表示旋转的第一旋转矩阵m;

在s430中,处理器180将该第一旋转矩阵m拆分为右向量、上向量、观察向量,因为需要的是手机绕z轴的旋转,所以取其中的观察向量进行下面步骤的操作:

在s431中,将世界坐标系中的z轴单位向量(0,0,1)(即垂直于水平面指向天空的向量)和观察向量叉乘,这样得到一个新的右向量(即,newright向量),并且将新的右向量规范化;

在s432中,将观察向量和新的右向量叉乘,得到新的上向量(即,newup向量);

在s433中,将新的右向量、新的上向量和观察向量构造成一个新的第二旋转矩阵m0,该第二旋转矩阵仅仅包含针对z轴的旋转,即指示同上述图10所示的实施例中的第一夹角;

在s440中,处理器180针对该第二旋转矩阵m0进行求逆运算,获得第三旋转矩阵m1;

在s450中,处理器180将该第三旋转矩阵m1输入应用软件中,具体来说,将该第三旋转矩阵m1应用在虚拟摄像机中。

需要说明的是,若是手机100中的虚拟摄像机相对于预设状态已经有了旋转,那么,需要将该第三旋转矩阵m1和用于表示该虚拟摄像机的旋转的旋转矩阵进行相乘。

这样,从逻辑上来说,该虚拟对象就相当于被旋转了一个角度,可以使得手机100在该第一姿态下虚拟对象在显示平面上的运动轨迹相对于真实环境不会发生变化,提高了用户体验。

因而,本发明实施例提供的图像显示的方法,一方面,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验;

另一方面,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的第一夹角确定第一运动轨迹,不仅能够使得虚拟对象在显示平面上的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;同时,通过仅仅使用两个方向之间的第一夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面上,而不会当该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验;

再一方面,该终端设备绕着垂直于显示平面的第三轴进行旋转,可以满足用户使用终端设备的使用习惯,能够使得该终端设备的显示平面可以面向用户(或者说,该终端设备的显示平面在用户的视角范围内),进而可以使得显示平面中显示的图像和虚拟对象被用户观察到。

以上,结合图1至图14详细描述了根据本发明实施例的图像显示的方法,下面,结合图15和图16描述根据本发明实施例的图像显示的装置和终端设备。

图15所示的是根据本发明实施例的图像显示的装置,该装置500包括:

拍摄单元510,用于拍摄第一图像;

获取单元520,用于获取第一姿态的信息,该第一姿态是该终端设备拍摄该第一图像时所处的姿态;

处理单元530,用于根据该第一姿态的信息,确定第一运动轨迹;

显示单元540,用于呈现该第一图像,并根据该第一运动轨迹呈现虚拟对象,以使该虚拟对象在所述第一图像的画面内沿该第一运动轨迹移动。

因而,本发明实施例提供的图像显示的装置,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验。

可选地,该获取单元520具体用于:

确定第一方向,该第一方向是在该第一姿态下该终端设备的设备坐标系中预设的第一轴在世界坐标系中的方向;

确定第二方向,该第二方向是世界坐标系中预设的第二轴的方向;

将该第一方向与该第二方向之间的夹角的信息作为该第一姿态的信息。

因而,本发明实施例提供的图像显示的装置,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的第一夹角确定第一运动轨迹,不仅能够使得虚拟对象在显示平面上的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;同时,通过仅仅使用两个方向之间的第一夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面上,而不会当该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验。

可选地,该第二方向为该世界坐标系中的重力方向。

可选地,该获取单元520还用于:

确定该终端设备自预设的基准姿态绕预设的第三轴旋转而处于该第一姿态的过程中所旋转的夹角;

将该夹角的信息作为该第一姿态的信息。

可选地,该处理单元530具体用于:

在该夹角处于预设的第一角度范围内的情况下,将预设的候选运动轨迹确定为该第一运动轨迹;

在该夹角处于预设的第一角度范围外的情况下,根据该候选运动轨迹和该夹角与该第一角度范围的第一边界值的差值,确定该第一运动轨迹。

可选地,该处理单元530具体用于:

在该夹角在第二角度范围外的情况下,对该夹角进行预设的变换处理,以使经过该变换处理后的夹角在该第二角度范围外且在预设的第三角度范围内,该第二角度范围为通过用于表示旋转的四元数或旋转矩阵进行计算得到的角度所属的角度范围;

根据经过该变换处理后的夹角,确定该第一运动轨迹。

可选地,该获取单元520还用于:

获取基准运动轨迹,该基准运动轨迹包括在该终端设备处于预设的基准姿态下,该虚拟对象在该终端设备显示的画面中的运动轨迹;以及,

该处理单元530具体用于:

根据该第一姿态的信息和该基准运动轨迹,确定该第一运动轨迹。

可选地,该基准姿态包括在该终端设备的设备坐标系中预设的第一轴与水平面平行或近似平行时该终端设备所处的姿态,其中,该第一轴平行于该终端设备的宽度方向或长度方向。

可选地,该处理单元530还用于:

获取第一用户操作信息,该第一用户操作信息是根据用户针对至少两个姿态的选择操作生成的;

根据该第一用户操作信息,从该至少两个姿态中确定该基准姿态。

可选地,该处理单元530还用于:

获取第二用户操作信息,该第二用户操作信息用于指示第一形状;

根据该第二用户操作信息,确定该基准运动轨迹,以使该基准运动轨迹与该第一形状相对应。

可选地,该获取单元520还用于:

获取映射关系信息,该映射关系信息用于指示多种姿态的标识与多种运动轨迹之间的映射关系;以及,

该处理单元530具体用于:

根据该第一姿态的标识,从该映射关系中确定与该第一姿态的标识相对应的该第一运动轨迹。

可选地,该第一轴平行于以下任一个方向:

该显示器的长度方向,或

该显示器的宽度方向,或

该终端设备的长度方向,或

该终端设备的宽度方向。

因而,本发明实施例提供的图像显示的装置,一方面,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验;

另一方面,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的第一夹角确定第一运动轨迹,不仅能够使得虚拟对象在显示平面上的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;同时,通过仅仅使用两个方向之间的第一夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面上,而不会当该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验;

再一方面,该终端设备绕着垂直于显示平面的第三轴进行旋转,可以满足用户使用终端设备的使用习惯,能够使得该终端设备的显示平面可以面向用户(或者说,该终端设备的显示平面在用户的视角范围内),进而可以使得显示平面中显示的图像和虚拟对象被用户观察到。

图16所示的是根据本发明实施例的图像显示的终端设备的示意性结构图,该图像显示的终端设备600包括:至少一个处理器601,至少一个网络接口604或者其他用户接口603,存储器605,至少一个通信总线602。通信总线602用于实现这些组件之间的连接通信。

该终端设备600可选地包含用户接口603,包括显示器(例如,触摸屏、lcd、crt、全息成像设备或者投影设备等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。

存储器605可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器605的一部分还可以包括非易失性随机存取存储器(nvram)。

在一些实施方式中,存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

操作系统6051,包含各种系统程序,例如图1所示的框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

应用程序模块6052,包含各种应用程序,例如图1所示的桌面(launcher)、媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。

在本发明实施例中,通过调用存储器605存储的程序或指令,该摄像头6031用于,拍摄第一图像;

该处理器601,获取第一姿态的信息,该第一姿态是该终端设备拍摄该第一图像时所处的姿态;

该处理器601还用于,根据该第一姿态的信息,确定第一运动轨迹;

该显示器6032,呈现该第一图像,并根据该第一运动轨迹呈现虚拟对象,以使该虚拟对象在该第一图像的画面内沿该第一运动轨迹移动。

因而,本发明实施例提供的图像显示的终端设备,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验。

可选地,该处理器601具体用于:

确定第一方向,该第一方向是在该第一姿态下该终端设备的设备坐标系中预设的第一轴在世界坐标系中的方向;

确定第二方向,该第二方向是世界坐标系中预设的第二轴的方向;

将该第一方向与该第二方向之间的夹角的信息作为该第一姿态的信息。

因而,本发明实施例提供的图像显示的终端设备,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的第一夹角确定第一运动轨迹,不仅能够使得虚拟对象在显示平面上的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;

同时,通过仅仅使用两个方向之间的第一夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面上,而不会当该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验。

可选地,该第二方向为该世界坐标系中的重力方向。

可选地,该处理器601还用于:

确定该终端设备自预设的基准姿态绕预设的第三轴旋转而处于该第一姿态的过程中所旋转的夹角;

将该夹角的信息作为该第一姿态的信息。

可选地,该处理器601具体用于:

在该夹角处于预设的第一角度范围内的情况下,将预设的候选运动轨迹确定为该第一运动轨迹;

在该夹角处于预设的第一角度范围外的情况下,根据该候选运动轨迹和该夹角与该第一角度范围的第一边界值的差值,确定该第一运动轨迹。

可选地,该处理器601具体用于:

在该夹角在第二角度范围外的情况下,对该夹角进行预设的变换处理,以使经过该变换处理后的夹角在该第二角度范围外且在预设的第三角度范围内,该第二角度范围为通过用于表示旋转的四元数或旋转矩阵进行计算得到的角度所属的角度范围;

根据经过该变换处理后的夹角,确定该第一运动轨迹。

可选地,该处理器601具体用于:

获取基准运动轨迹,该基准运动轨迹包括在该终端设备处于预设的基准姿态下,该虚拟对象在该终端设备显示的画面中的运动轨迹;

根据该第一姿态的信息和该基准运动轨迹,确定该第一运动轨迹。

可选地,该基准姿态包括在该终端设备的设备坐标系中预设的第一轴与水平面平行或近似平行时该终端设备所处的姿态,其中,该第一轴平行于该终端设备的宽度方向或长度方向。

可选地,该处理器601还用于:

获取第一用户操作信息,该第一用户操作信息是根据用户针对至少两个姿态的选择操作生成的;

根据该第一用户操作信息,从该至少两个姿态中确定该基准姿态。

可选地,该处理器601还用于:

获取第二用户操作信息,该第二用户操作信息用于指示第一形状;

根据该第二用户操作信息,确定该基准运动轨迹,以使该基准运动轨迹与该第一形状相对应。

可选地,该处理器601具体用于:

获取映射关系信息,该映射关系信息用于指示多种姿态的标识与多种运动轨迹之间的映射关系;

根据该第一姿态的标识,从该映射关系中确定与该第一姿态的标识相对应的该第一运动轨迹。

可选地,该第一轴平行于以下任一个方向:

该显示器的长度方向,或

该显示器的宽度方向,或

该终端设备的长度方向,或

该终端设备的宽度方向。

因而,本发明实施例提供的图像显示的终端设备,一方面,通过根据终端设备的第一姿态的信息,确定该终端设备在该第一姿态下虚拟对象在该终端设备的显示器的显示平面上的第一运动轨迹,使得该虚拟对象能够在通过摄像头拍摄的第一图像的画面内沿着该第一运动轨迹移动,从而,在该终端设备的姿态发送变化时,可以使得该虚拟对象在不同姿态下对应的运动轨迹相对于终端设备发生变化,而相对于真实环境不发生变化,即,能够使得用户视察到的虚拟对象在真实场景中的运动轨迹不发生变化,进而提高了ar技术的逼真性,提高了用户体验;

另一方面,在该终端设备处于第一姿态时通过仅仅使用两个方向(即,该第一方向与该第二方向)之间的第一夹角确定第一运动轨迹,不仅能够使得虚拟对象在显示平面上的运动轨迹相对于真实环境(或者说,世界坐标系)不会发生变化,而且可以有效地减少实现的复杂度,减少了计算过程的复杂度;同时,通过仅仅使用两个方向之间的第一夹角,可以使得该终端设备在移动过程中,该虚拟对象能够始终呈现在该终端设备的显示平面上,而不会当该终端设备移动较大范围时,该虚拟对象不再呈现在显示平面上,进一步有效地提高了用户体验;

再一方面,该终端设备绕着垂直于显示平面的第三轴进行旋转,可以满足用户使用终端设备的使用习惯,能够使得该终端设备的显示平面可以面向用户(或者说,该终端设备的显示平面在用户的视角范围内),进而可以使得显示平面中显示的图像和虚拟对象被用户观察到。

本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序被终端设备(例如,上述显示图像的装置或终端设备,具体地说,是显示图像的装置中的确定单元或终端设备中的处理器)执行方法200中终端设备(例如,手机100)执行的各步骤。

本发明实施例还提供了一种计算机可读程序介质,该计算机可读程序介质存储有程序,该程序使得终端设备(例如,上述显示图像的装置或终端设备,具体地说,是显示图像的装置中的确定单元或终端设备中的处理器)执行方法200中终端设备(例如,手机100)执行的各步骤。

应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

还应理解,以上所述的“平行”可以理解为“近似平行”,以上所述的“垂直”可以理解为“近似垂直”,即,对于本领域技术人员而言,上述“平行”或“垂直”的误差在一定误差范围(例如,运动传感器的测量精度、用户使用该终端设备的姿势的微小变化、该终端设备的制造精度等因素造成的误差)内是允许的,因此,均落入本发明实施例的保护范围内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发送实施例中所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

该功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以所述权利要求的保护范围为准。

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