鱼眼图像的3d交互显示方法和系统的制作方法

文档序号:10555923阅读:930来源:国知局
鱼眼图像的3d交互显示方法和系统的制作方法
【专利摘要】本发明公开了一种鱼眼图像的3D交互显示方法和系统。该方法包括如下步骤:将鱼眼图像根据预先选择的3D显示模型进行3D显示;在鱼眼图像3D显示的同时,读取交互消息进行模型状态更新,根据所述交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互;继续等待或处理新的交互消息,直至退出。其使得交互操作更流畅和人性化,体验效果更好。显示效果更优秀,无死角,有身临其境的直观感受。
【专利说明】
鱼眼图像的3D交互显示方法和系统
技术领域
[0001]本发明涉及全景显示技术,特别是针对鱼眼镜头拍摄的图像的3D交互显示方法和系统,应用于虚拟现实、科学研究、娱乐、监控等各种领域。
【背景技术】
[0002]鱼眼图像是指采用鱼眼镜头拍摄的图像,如图1所示,包含的视野范围广,通常鱼眼镜头的水平和垂直视野等于或者超过360°xl80°,近年来应用越来越广泛,例如在虚拟现实、科学研究、娱乐、监控领域。
[0003]现有的鱼眼图像在显示时,其畸变非常严重,不是人眼习惯的矩形,而是一个圆形,因此需要对鱼眼要显示的鱼眼图像进行校正,使其符合人眼的视觉习惯。
[0004]现有的鱼眼图像的校正方法,如球面成像模型、抛物面成像模型、经度校正模型等,现有的鱼眼交互显示技术,通常是在鱼眼图像中预置几个点,通过校正算法得到以每个预置点为中心的无畸变的局部校正图像,它们被平铺在屏幕上进行观看,校正显示为某一矩形区域。
[0005]但现有鱼眼图像交互校正显示技术在根据设备输入的交互消息进行交互的过程中,再进行鱼眼图像的再校正的方式这种交互显示方法的缺点很明显:只能看到以预置点为中心的有限的几个视角,其它包含在鱼眼图像的信息则被遗漏,使得视野范围大为缩小,效果与多个普通摄像头是类似的,鱼眼图像作为一种全景图像的优越性没有得到体现。体现在于现有交互校正显示技术不够便捷,操作定位不精确,校正后显示的效果不理想,畸变较大。

【发明内容】

[0006]本发明针对现有技术中存在的上述问题,提出一种鱼眼图像的3D交互显示方法和系统。其将鱼眼图像转化成3D模型后的交互方法,实现鱼眼照片和/或视频的多种3D显示和交互,定位操作更精确,体验效果更好。
[0007]本发明的技术方案为:
[0008]提供一种鱼眼图像的3D交互显示方法,包括如下步骤:
[0009]将鱼眼图像根据预先选择的3D显示模型进行3D显示;
[0010]在鱼眼图像3D显示的同时,读取交互消息进行模型状态更新,根据所述交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互;
[0011 ] 继续等待或处理新的交互消息,直至退出。
[0012]为实现本发明目的,还提供一种鱼眼图像的3D交互显示系统。
[0013]本发明具有如下有益效果:
[0014]本发明鱼眼图像的3D交互显示方法和系统,其将鱼眼图像转化成3D模型后的交互,鱼眼图像所包含的全景信息没有任何遗漏。交互操作更流畅和人性化,体验效果更好。显示效果更优秀,无死角,有身临其境的直观感受。其实现鱼眼照片和视频的多种3D显示和交互,定位操作更精确,体验效果更好。
【附图说明】
[0015]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要的附图做简单的介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为原始鱼眼图像不意图。
[0017]图2为本发明实施例的3D模型坐标系和观察点示意图。
[0018]图3(a)为本发明实施例图1的原始鱼眼图像圆盘平面模型示意图。
[0019]图3(b)为本发明实施例图1的原始鱼眼图像矩形平面模型示意图。
[0020]图4(a)为本发明实施例的半球/球面模型分别用于鱼眼镜头水平向上时拍摄的鱼眼图像示意图。
[0021]图4(b)为本发明实施例的半球/球面模型分别用于鱼眼镜头水平向下时拍摄的鱼眼图像示意图。
[0022]图5为本发明实施例的柱面模型示意图。
[0023]图6为本发明实施例的交互显示区域的坐标系示意图。
[0024]图7为本发明实施例鱼眼图像的3D交互显示方法示意图。
[0025]图8为本发明实施例的记录的表征量示意图。
[0026]图9为本发明实施例的成像在XY平面,旋转轴为Z轴的坐标轴示意图。
[0027]图10为本发明实施例的成像在XY平面,旋转轴为Z轴平面展开图像的旋转方法流程图。
[0028]图11为本发明实施例的除成像在XY平面,旋转轴为Z轴外的平面展开图像的旋转方法流程图。
【具体实施方式】
[0029]下面结合说明书附图对本发明实施例的鱼眼图像的3D交互显示方法和系统【具体实施方式】作详细说明。
[0030]本发明利用3D渲染技术,例如OpenGL,建立3D模型,例如球、半球、圆柱、立方体、平面等;将鱼眼图像作为纹理图像贴在3D模型上;通过交互操作,改变模型大小/方位、视点位置、视线方向及视野大小等等;最终将3D渲染结果显示在屏幕上。
[0031]如图2所示,3D模型坐标系与OpenGL世界坐标系的定义【笛卡尔(Descartes)右手坐标系】是一致的,便于采用OpenGL技术进行3D渲染。其中,显示窗口位于xy平面内,z轴正方向指向显示窗口外。
[0032]对于大多数模型而言,观察位置为从Z轴正方向朝Z轴负方向查看,如图2所示。
[0033]图3(a)圆盘模型通常用于展示图1的原始鱼眼图像。图3(b)矩形模型通常用于展示各种展开图,例如360°展开、180°展开、定点局部展开等。平面模型的中心点位于坐标系中(0,0,0)位置。
[0034]图4(a)(b)半球/球面模型分别用于鱼眼镜头水平向上和向下时拍摄的鱼眼图像。
[0035]图5的柱面模型支持镜头水平向上、向下两种模式。
[0036]为了使3D渲染后的图像更适合观察者的角度,本发明实施例实现了一种鱼眼图像的3D交互显示方法,其通过在显示区域内的交互操作,动态调整模型位置和朝向。
[0037]其中,交互显示区域的坐标系如图6所示,区域的左上角为坐标原点(0,0),向右为X正方向,向下为Y轴正方向,区域的右下角坐标为(W,h),w为显示区域的宽度(单位:像素Pixel),h为高度(单位:像素Pixel)。
[0038]如图7所示,模型的显示包含两个主要过程,上部是多媒体流水线显示流程,下部是交互消息循环流程。上部从下部的流程中得到模型状态。
[0039]本发明实施例中的鱼眼图像的3D交互显示方法,可应用OpenGL或者D3D技术中实现。
[0040]下面以OpenGL为例,本发明实施例的鱼眼图像的3D交互显示方法,包括如下步骤:
[0041]将鱼眼图像根据预先选择的3D显示模型进行3D显示;
[0042]在显示3D图像的同时,读取交互消息进行模型状态更新,根据交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互;
[0043]继续等待或处理新的交互消息,直至退出。
[0044]下面详细描述本发明实施例的步骤:将鱼眼图像根据预先选择的3D显示模型进行3D显示。
[0045]首先,在将鱼眼图像处理为纹理图像后,根据预先选择3D显示模型,得到对应的3D顶点坐标数组、纹理坐标数组和顶点索引数组。
[0046]鱼眼图像可以直接或者经过简单处理,例如裁剪掉没有图像信息的黑色区域,作为纹理图像。
[0047]根据系统当前设置选择具体的3D显示模型(如圆盘、半球、圆柱、360度水平展开、任意视角平面展开、小行星等),得到对应的3D顶点坐标数组、纹理坐标数组和顶点索引数组。
[0048]然后,根据当前模型的查看状态,使用OpenGL的模型变换、视口变换、投影变换功能函数设置模型位置、观察位置、显示区域等参数。
[0049]其后,使用OpenGL的绑定纹理功能函数绑定好纹理图像。
[0050]最后,使用OpenGL渲染函数进行3D渲染。
[0051]本发明实施例,作为一种可实施方式,以视频为例进行说明:
[0052 ]从视频中分离出图像流数据;
[0053 ]将图像流数据进行解码得到帧图像;
[0054]将帧图像直接或者经过简单处理后作为纹理图像,与鱼眼图像的处理相同。
[0055]下面详细描述本发明实施例的步骤:在显示3D图像的同时,读取交互消息进行模型状态更新,根据交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互。
[0056]为了使展开后的图像更适合观察者的角度,因此本发明实施例通过鱼眼图像的3D交互显示方法,实现在显示区域内交互来调节模型位置。
[0057]首先,分析交互消息的类型,解析成为基本操作类型。
[0058]所述交互消息的类型,包括但不限于鼠标、触控、传感器等计算机的输入类型输入的消息。
[0059]将交互消息解析成为基本操作类型,如控制点从位置(X0,y0)移动到位置(xl,yl),或以(x0,y0)为中心放大或缩小delta倍。其是一种现有技术,因此在本发明实施例中,不再详细描述。
[0060]然后,将输入消息根据3D显示模型的方法进行计算,得到新的模型状态,将新的模型状态应用到当前鱼眼图像进行交互显示。
[0061 ]作为一种可实施方式,下面通过多个实施例详细描述本发明实施例中所述的模型状态及3D显示模型的方法。
[0062]作为一种较佳的实施方式,每一种3D模型都有对应的显不状态,在切换模型时,先保存记录原模型的状态,加载模型数据后再应用新的模型状态,在短暂的切换瞬间可以达到无缝显示,提高用户体验效果。
[0063]模型状态包括但不限于当前模型的世界坐标系矩阵(worldmatrix)、模型坐标系矩阵(project matrix)、观察矩阵(view matrix)、视口(viewport)。
[0064]在本发明实施例中,当窗口显示区域变化时,视口进行相应的变化,其它情况下视口保持不变。作为一种可实施方式,视口值(viewport)为整个绘制缓冲区(backbuffer)的大小。
[0065]为了灵活计算得到模型状态的变化结果,本发明实施例中,如图8所示,除了记录初始的三个状态矩阵(world matrix、pro ject matrix、view matrix),还记录了每个模型对应于这三个矩阵的表征量,包括在X、Y、Z三个坐标轴的旋转角度dx、dy、dz、以及三个方向上的位移量 off setX、off setY、off setZ、观察点状态(eye、at、up、aspect、fovy、zn、zf)。将模型状态量用一个结构体形式表不如下:
[0066]struct model_state
[0067]{
[0068]float eye[3];
[0069]float at[3];
[0070]float up[3];
[0071]float fovy ;
[0072]float aspect;
[0073]float zn;
[0074]float zf ;
[0075]float offsetX,offsetY,offsetZ;
[0076]float dx,dy,dz;
[0077]};
[0078]其中,eye表示在坐标系中观察点的坐标,at表示观察视线的方向位置,up表示相对于观察方向的向上正方向,fovy是观察角度,aspect是观察角的横纵比例,zn是投影近平面的距离,zf是远平面的距离,off setX、off setY、off setZ依次为模型在坐标系三个坐标轴方向上的位移,dx、dy、dz依次模型相对于三个坐标轴的旋转角度。
[0079]实施一:
[0080]作为一种可实施方式,当需要放大或缩小模型比例为原来的delta倍时,调整当前模型状态的fovy,3D显示模型的方法为:
[0081]fovy = fovy/delta
[0082]即视角变小时,看到的范围变小,在同等大小的显示区域里显示图像变大;视角变大时,同等大小的显示区域里图像变小。
[0083]实施二:
[0084]作为另一种可实施方式,在本发明实施例中,当控制点移动时,对应不同的模型会带来不同的效果。在模型查看时,有不同的平移和旋转等效果,因此,所述3D显示模型的方法为:
[0085]旋转幅度的判断根据实际的显示区域像素值大小设定一个阈值后采用点(x0,y0)至IJUl,yl)的距离D作为逼近值计算,这个距离D与显示区域宽度W的比值即为本实施例操作z轴的旋转角度,并将结果累加到状态结构的dz变量上。
[0086]作为另一种更佳的实施例,本发明实施例中,利用三种不同的3D显示模型的方法得到新的模型状态:
[0087]A)平面展开图像的旋转方法;
[0088]B)平面展开图像的平移方法;
[0089]C)球环类立体图像的交互方法;
[0090]下面详细描述三种方法:
[0091]实施三:
[0092]A)平面展开图像的旋转方法:
[0093]步骤AlOO,设成像在XY平面,旋转轴为Z轴,而且旋转轴位于点(x,y)上,如图9所示,其中的十字线交点,操作方法为控制点从(xO,yO)移动到(XI,y I),交互为一个绕点(x,y)的顺时针或逆时针移动交互,然后进入步骤三;
[0094]111)如果xO等于X,即移动位置的起始点在Y轴上,执行步骤112;否则执行步骤121;
[0095]112)如果yO大于y,即起始点在Y轴下半轴上,执行步骤113;反之执行步骤114;
[0096]113)若xl大于x0,即得到旋转方向为逆时针,反之为顺时针,然后进入步骤三;
[0097]114)若xl大于x0,即得到旋转方向为顺时针,反之为逆时针,然后进入步骤三;
[0098]121)如果xl等于X,即移动位置的终止点在Y轴上,执行步骤122;否则执行步骤A200;
[0099]122)如果yl大于y,即终止点在Y轴下半轴上,执行步骤123,反之执行步骤124;
[0100]123)如果xl大于x0,即得到旋转方向为逆时针,反之为顺时针,然后进入步骤三;
[0101]124)如果xl大于x0,即得到旋转方向为顺时针,反之为逆时针,然后进入步骤三。
[0102]步骤A200,否则,以(x,y)作为坐标轴原点重新定义两个坐标轴X轴和Y轴,并将区域分成四个象限,右下角为I象限、左下角为2象限、左上角为3象限、右上角为4象限;
[0103]步骤“00,计算得到诎=(70-7)/(别1),1^1= (71-7)/(叉11);
[0104]步骤A400,根据kO和kl的比较结果,将图像在各个象限之间进行新的模型状态,然后进入步骤二;
[0105]由于信号采集的连续性,可以认为当前情况为在同一象限内移动。若kO大于kl,则为逆时针,然后进入步骤三;反之为顺时针,然后进入步骤三。
[0106]所述步骤A400包括如下步骤:
[0107]132)若kO小于O且kl大于0,即从2或4象限移动到I或3象限,执行步骤133;否则执行步骤139;
[0108]133)若xO小于X且yO大于y,即从2象限开始移动,执行步骤134,否则执行136;
[0109]134)若xl大于X且yl大于y,即移动到I象限,为逆时针旋转,然后进入步骤三;否则执行135;
[0110]135)若xl小于X且yl小于y,即移动到3象限,为顺时针旋转,然后进入步骤三;
[0111]136)若别大于1且70小于7,即从4象限开始移动,执行步骤137;
[0112]137)若xl大于X且yl大于y,即移动到I象限,为顺时针旋转,然后进入步骤三;否则执行138;
[0113]138)若xl小于X且yl小于y,即移动到3象限,为逆时针旋转,然后进入步骤三;
[0114]139)若kO大于O且kl小于0,则从I或3象限移动到2或4象限,执行步骤1310;否则进入步骤三;
[0?? 5] 1310)若xO小于X且yO小于y,即从3象限开始移动,执行步骤1311,否则执行1313;
[0116]1311)若xl大于X且yl小于y,即移动到4象限,为顺时针旋转,然后进入步骤三;否则执行1312;
[0117]1312)若xl小于X且yl大于y,即移动到2象限,为逆时针旋转,然后进入步骤三;
[0118]1313)若xO大于X且yO大于y,即从I象限开始移动,执行步骤1314;
[0119]1314)若xl大于X且yl小于y,即移动到4象限,为逆时针旋转,否则执行1315;
[0120]1315)若xl小于X且yl大于y,即移动到2象限,为顺时针旋转,然后进入步骤三。
[0121]实施例四:
[0122]B)平面展开图像的平移方法
[0123]只有当图像的完整大小大于显示区域时,才允许对图像进行平移显示。作为一种可实施方式,当图像的长度大于显示区域长度时允许左右平移,当图像的高度大于显示区域的高度时允许上下平移。
[0124]作为一种可实施方式,所述平面展开图像的平移方法包括如下步骤:
[0125]BI)记录当前状态的fovy与初始状态的fovy的比值,以及当前展开图像对应于原始鱼眼图像的弧度值,和当前显示区域宽度;
[ΟΙ26] B2)计算得到单位显示像素对应的宽高模型单位ID^Puy;
[0127]B3)计算水平方向位移得到移动幅度为(xl-x0)*ux,并累加到模型状态的dx变量;
[0128]B4)计算垂直方向位移得到移动幅度为(yl-y0)*uy,并累加到模型状态的dy变量;[ΟΙ29] B5)重新根据dx和dy生成平面展开图像。
[0130]实施例五:
[0131]C)球环类立体图像的交互方法
[0132]球环类立体模型,当控制点移动时,带来的效果是对模型进行旋转,旋转方式是先旋转Z方向,然后旋转Y方向,再旋转X方向。一般地,作为一种可实施方式,可以不考虑Z方向的旋转,只旋转Y方向和X方向。
[0133]根据观察点位置的不同,分为两种计算模式:
[0134]Cl)对于观察点在模型外的情况,设初始状态时,观察到的角度范围是完整模型,即180度,对应的显示像素宽度为W,高度为h。则计算X方向移动时旋转的角度为:
[0135]dx = dx+180*(xl_x0)/w
[0136]dy = dy+180*(yl-y0)/h
[0137]然后可在X和Y方向上旋转dx和dy得到模型的最终状态。
[0138]C2)对于观察点在模型内的情况,设当前观察点的位置在模型中心,则计算公式为:
[0139]dx = dx+f ovy 氺 aspect氺(xl _x0 )/w
[0140]dy = dy+f ovy*(yl-y0)/h
[0141]在模型旋转后,在根据offSetX、offsetY、offsetZ来进行模型位置的平移调整。
[0142]本发明实施例的鱼眼图像的3D交互显示方法和系统,其将鱼眼图像转化成3D模型后的交互,鱼眼图像所包含的全景信息没有任何遗漏。交互操作更流畅和人性化,体验效果更好。显示效果更优秀,无死角,有身临其境的直观感受。其实现鱼眼照片和视频的多种3D显示和交互,定位操作更精确,体验效果更好。
[0143]本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0144]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、⑶-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0145]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进轨道了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种鱼眼图像的3D交互显示方法,其特征在于,包括如下步骤: 将鱼眼图像根据预先选择的3D显示模型进行3D显示; 在鱼眼图像3D显示的同时,读取交互消息进行模型状态更新,根据所述交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互; 继续等待或处理新的交互消息,直至退出。2.根据权利要求1所述的鱼眼图像的交互显示方法,其特征在于,所述进行3D显示,包括如下步骤: 在将鱼眼图像处理为纹理图像后,根据预先选择3D显示模型,得到对应的3D顶点坐标数组、纹理坐标数组和顶点索引数组; 根据当前模型的查看状态,使用OpenGL的模型变换、视口变换、投影变换功能函数设置模型位置、观察位置、显示区域等参数; 使用OpenGL的绑定纹理功能函数绑定好纹理图像; 使用OpenGL渲染函数进行3D渲染。3.根据权利要求1所述的鱼眼图像的交互显示方法,其特征在于,所述模型状态更新,还包括如下步骤: 在切换模型时,先保存记录原模型的状态,加载模型数据后再应用新的模型状态。4.根据权利要求1所述的鱼眼图像的交互显示方法,其特征在于,所述模型状态包括当前模型的世界坐标系矩阵world matrix、模型坐标系矩阵project matrix、观察矩阵viewmatrix、视口 viewport ;以及每个模型对于所述三个矩阵的表征量,包括在X、Y、Z三个坐标轴的旋转角度(^、(^、(^、以及三个方向上的位移量(^€86七乂、(^€86七¥、(^€86七2、观察点状态(eye、at、up、aspect、fovy、zn、zf);将模型状态量用一个结构体形式表示如下: struct model_state { float eye[3]; float at[3]; float up[3]; float fovy; float aspect; float zn; float zf; float offsetX?offsetY?offsetZ; float dx,dy,dz; }; 其中,eye表示在坐标系中观察点的坐标,at表示观察视线的方向位置,up表示相对于观察方向的向上正方向,fovy是观察角度,aspect是观察角的横纵比例,zn是投影近平面的距离,Zf是远平面的距离,off setx、off setY、off setz依次为模型在坐标系三个坐标轴方向上的位移,dx、dy、dz依次模型相对于三个坐标轴的旋转角度; 视口值viewport为整个绘制缓冲区的大小。5.根据权利要求4所述的鱼眼图像的交互显示方法,其特征在于,当需要放大或缩小模型比例为原来的de I ta倍时,调整当前模型状态的fovy,计算方法为:fovy = fovy/de Ita 即视角变小时,看到的范围变小,在同等大小的显示区域里显示图像变大;视角变大时,同等大小的显示区域里图像变小。6.根据权利要求4所述的鱼眼图像的交互显示方法,其特征在于,当控制点移动时,旋转幅度的判断根据实际的显示区域像素值大小设定一个阈值后采用点(xO,yO)到(Xl,yl)的距离D作为逼近值计算; 这个距离D与显示区域宽度w的比值即为操作z轴的旋转角度,并将结果累加到状态结构的dz变量上。7.根据权利要求4所述的鱼眼图像的交互显示方法,其特征在于,对应不同的3D显示模型,利用 平面展开图像的旋转方法 和/或 平面展开图像的平移方法 和/或 球环类立体图像的交互方法 得到新的模型状态。8.根据权利要求7所述的鱼眼图像的交互显示方法,其特征在于,所述平面展开图像的旋转方法,包括如下步骤: 设成像在XY平面,旋转轴为Z轴,而且旋转轴位于点(X,y)上,操作方法为控制点从UO,yO)移动到(Xl,yl),交互为一个绕点(x,y)的顺时针或逆时针移动交互,然后等待新的交互消息或者退出; 否则,以(x,y)作为坐标轴原点重新定义两个坐标轴X轴和Y轴,并将区域分成四个象限,右下角为I象限、左下角为2象限、左上角为3象限、右上角为4象限; 计算得到kO= (yO-y)/(xO_x),kl = (yl-y)/(xl_x); 根据kO和kl的比较结果,将图像在各个象限之间进行新的模型状态,然后等待新的交互消息或者退出。9.根据权利要求8所述的鱼眼图像的交互显示方法,其特征在于,所述控制点从(xO,yO)移动到(xl,yl),包括如下步骤: 111)如果xO等于X,即移动位置的起始点在Y轴上,执行步骤112;否则执行步骤121; 112)如果yO大于y,即起始点在Y轴下半轴上,执行步骤113;反之执行步骤114; 113)若xl大于xO,即得到旋转方向为逆时针,反之为顺时针,然后等待新的交互消息或者退出; 114)若xl大于xO,即得到旋转方向为顺时针,反之为逆时针,然后等待新的交互消息或者退出; 121)如果xl等于X,即移动位置的终止点在Y轴上,执行步骤122;否则以(x,y)作为坐标轴原点重新定义两个坐标轴X轴和Y轴步骤; 122)如果yl大于y,即终止点在Y轴下半轴上,执行步骤123,反之执行步骤124; 123)如果xl大于xO,即得到旋转方向为逆时针,反之为顺时针,然后等待新的交互消息或者退出; 124)如果xl大于xO,即得到旋转方向为顺时针,反之为逆时针,然后等待新的交互消息或者退出。10.根据权利要求9所述的鱼眼图像的交互显示方法,其特征在于,所述将图像在各个象限之间进行新的模型状态,包括如下步骤: 132)若kO小于O且kl大于0,即从2或4象限移动到I或3象限,执行步骤133;否则执行步骤 139.’ 133)若xO小于X且yO大于y,即从2象限开始移动,执行步骤134,否则执行136; 134)若xl大于X且yl大于y,即移动到I象限,为逆时针旋转,然后等待新的交互消息或者退出;否则执行135; 135)若xl小于X且yl小于y,即移动到3象限,为顺时针旋转,然后等待新的交互消息或者退出; 136)若xO大于X且yO小于y,即从4象限开始移动,执行步骤137; 137)若xl大于X且yl大于y,即移动到I象限,为顺时针旋转,然后等待新的交互消息或者退出;否则执行138; 138)若xl小于X且yl小于y,即移动到3象限,为逆时针旋转,然后等待新的交互消息或者退出; 139)若kO大于O且kl小于0,则从I或3象限移动到2或4象限,执行步骤1310;否则进入步骤三; 1310)若xO小于X且yO小于y,即从3象限开始移动,执行步骤1311,否则执行1313; 1311)若xl大于X且yl小于y,即移动到4象限,为顺时针旋转,然后等待新的交互消息或者退出;否则执行1312; 1312)若xl小于X且yl大于y,即移动到2象限,为逆时针旋转,然后等待新的交互消息或者退出; 1313)若xO大于X且yO大于y,即从I象限开始移动,执行步骤1314; 1314)若xl大于X且yl小于y,即移动到4象限,为逆时针旋转,否则执行1315; 1315)若xl小于X且yl大于y,即移动到2象限,为顺时针旋转,然后等待新的交互消息或者退出。11.根据权利要求7所述的鱼眼图像的交互显示方法,其特征在于,当图像的长度大于显示区域长度时左右平移,当图像的高度大于显示区域的高度时上下平移; 所述平面展开图像的平移方法,包括如下步骤: 记录当前状态的fovy与初始状态的fovy的比值,以及当前展开图像对应于原始鱼眼图像的弧度值,和当前显示区域宽度; 计算得到单位显示像素对应的宽高模型单位UX和uy; 计算水平方向位移得到移动幅度为(xl_x0)*ux,并累加到模型状态的dx变量; 计算垂直方向位移得到移动幅度为(yl_y0)*uy,并累加到模型状态的dy变量; 重新根据dx和dy生成平面展开图像。12.根据权利要求7所述的鱼眼图像的交互显示方法,其特征在于,当观察点在模型外的情况,设初始状态时,观察到的角度范围是完整模型,即180度,对应的显示像素宽度为W,高度为h; 则所述球环类立体图像的交互方法为计算X方向移动时旋转的角度: dx = dx+180*(xl_x0)/w dy = dy+180*(yl-y0)/h 然后可在X和Y方向上旋转dx和dy得到模型的最终状态。13.根据权利要求7所述的鱼眼图像的交互显示方法,其特征在于,当观察点在模型内的情况,设当前观察点的位置在模型中心; 则所述球环类立体图像的交互方法为计算公式: dx = dx+fovy氺 aspect氺(xl_xO)/w dy=dy+fovy*(yl-yO)/h 在模型旋转后,在根据0fTSetX、0fTSetY、0fTSetZ来进行模型位置的平移调整。14.一种鱼眼图像的3D交互显示系统,其特征在于,包括显示模块,交互模块; 其中: 所述显示模块,用于将鱼眼图像根据预先选择的3D显示模型进行3D显示; 所述交互模块,用于在鱼眼图像3D显示的同时,读取交互消息进行模型状态更新,根据所述交互消息的信息利用3D显示模型的方法进行计算,对3D显示的图像进行交互;然后继续等待或处理新的交互消息,直至退出。15.根据权利要求14所述的鱼眼图像的3D交互显示系统,其特征在于,所述交互模块,包括保存子t吴块; 所述保存子模块,用于在切换模型时,先保存记录原模型的状态,加载模型数据后再应用新的模型状态。
【文档编号】H04N13/02GK105915885SQ201610116572
【公开日】2016年8月31日
【申请日】2016年3月2日
【发明人】许为, 李伟, 范治江
【申请人】优势拓展(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1