具体实施方式
方法实施例1
本发明实施例提供了一种三维场景中的光标处理方法,如图2A所示包括:
步骤101,光标产生装置根据其位移产生三个维度的位移信息,所述三个维度包括平面两个维度及深度维度。
其中,光标产生装置是指如鼠标等用于控制光标的装置。具体地,平面两个维度的位移信息可以通过控制光标产生装置的上下左右移动获得,而深度维度的位移信息可以通过安装在光标产生装置上的深度控制单元产生。其中的深度控制单元是用于在深度方向上控制光标移动的单元,例如可以为滚轮、按键或MEMS装置。
步骤102,根据所述位移信息实时调整所述光标对应两眼视图的视差。
具体在本发明实施例中,所述光标采用的是平面二维图像,因此需要将平面二维图像转换成具有视差的三维立体图像,具体转换过程如图2B所示包括:
步骤102A,生成所述平面二维图像的深度图。具体地,可以先分割获取所述平面二维图像的前景图和背景图;再根据所述三维场景中的参考基准深度,为所述前景图和背景图分别设置不同的深度信息。
其中,深度信息的设置可以采用双目摄像机的原理进行。如图2C所示,相距B的焦距为f两台摄像机对场景中深度为Z的目标点M进行拍摄,则目标点M在左右摄像机的成像分别为ml和mr,则根据图像匹配获得成像点ml和mr,视差为d的情况下,可根据如下关系式得到目标点的深度信息。
xl和xr分别表示成像ml和mr在x轴上的坐标;Xl和Xr表示双目摄像机的两个镜头在x轴上的坐标。
其中,参考基准深度是指场景中深度Z=0的位置所表示的深度;前景图是 指整个光标图片,如箭头图案等;背景图是指处于参考基准深度的显示背景,如设为显示屏幕所在的平面的背景等。对于一个普通的平面二维图像,其前景图和背景图可以采用采用基于阈值的迭代算法分割获得。具体的迭代算法如图2D所示,主要包括如下步骤:
1)求得平面二维图像的最大灰度值和最小灰度值,分别记为ZMAX和ZMIN,
令初始阈值T0=(ZMAX+ZMIN)/2;
2)根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值Z0和ZB;
3)求出新阈值TK+1=(Z0+ZB)/2;
4)若TK=TK+1,则所得值即为阈值,结束迭代过程;否则转2),进行迭代计算。
通过上述迭代算法所得到的阈值分割的图像效果良好。基于迭代的阈值能区分出平面二维图像的前景图和背景图的主要区域所在,但在平面二维图像的细微处还没有很好的区分度。为了得到更加准确的平面二维图像的前景图和背景图,可以采用现有的一种基于图论的图像分割算法。
步骤102B,根据所述深度维度的位移信息调整所述深度图的视差。具体为调整所述深度图中的前景图和背景图的视差。
立体图像中的目标深度用于使用户获得三维显示场景下的深度感和层次感,深度设置的精度要求相比目标重构和目标识别所要求的精度低。因此可以采用粗粒度的深度设置场景的前景图和背景图的深度,为前景图设置较小的深度,而为背景图设置较大的深度。深度的设置以在重构时可以保证立体图像显示时观看者可以显著感受到场景中的前景图和背景图的关系为准。
步骤103,将视差调整后的光标所对应的两眼视图输出到三维场景显示设备中。
有视差的立体图像在显示时被分别显示给观看者的左眼和右眼,观看 者通过左右眼有差异的图像感受到图像内容的深度信息,从而使用户获得光标的深度感。
通过本发明实施例所述方法,实现了在三维立体显示场景中使采用平面二维图像的光标能够根据深度维度的位移信息进行相应变化,从而实时显示在三维立体场景中的不同深度层次中。方便了用户在三维立体显示场景中的操作,使三维立体显示场景具有更强的真实感。
方法实施例2
本发明实施例提供了另一种三维场景中的光标处理方法,该方法与方法实施例1的不同之处在于,在所述步骤102中,根据所述位移信息实时调整所述光标对应两眼视图的视差时,方法实施例1所述光标采用的是平面二维图像,而本发明实施例所述光标采用的是已经具有视差的立体图像,因此,可以直接根据在步骤101中得到的所述深度维度的位移信息对立体图像的视差进行调整。
以下详细介绍作为光标的立体图像的获取方法,如图3A所示包括:
步骤201,从第一位置拍摄得到第一图像。
其中,如图3B所示,照相装置的焦距为f,对距离为Z的M点进行拍摄。利用照相装置先在某一位置拍摄目标场景得到M的第一图像。
步骤202,移动到第二位置后拍摄得到M的第二图像,从而获得目标场景的两幅有视差的图像,即立体图像对,第一图像和第二图像的视差为d。具体地,照相装置移动的距离可以为人眼双目间距的距离B。
步骤203,对所述立体图像对进行图像扫描线对齐处理。
由于拍摄拍摄得到的第一图像和第二图像这一对图像在移动照相装置时的间距、角度和垂直方向的位置无法精确控制,因此需要以其中一幅图像为准,对另一幅图像进行扫描线对齐处理。
由于人的双眼水平位置高度相同,因此所观看的场景内容在双眼上成像时不存在垂直方向的差异。而在移动照相装置的移动过程中,可能会存在垂 直方向的不一致的问题。通过图像扫描线对齐处理可以实现左右立体图像对场景内容的垂直方向对齐。具体可以采用以下方式:
在立体图像对的场景重叠区,分别在第一图像和第二图像中创建两个或多个搜索栏;将图像的各搜索栏根据颜色分量分解成多个灰度子图像;采用匹配算法对每个子图像搜索栏中的每个点进行匹配并计算垂直偏移量,利用这些垂直偏移量外推到整个图像从而调整对齐两幅图像。
步骤204,对完成图像扫描线对齐处理后的立体图像对重新设置最大视差。
重新设置立体图像的最大视差是因为在移动照相装置到另一角度拍摄的移动过程中,由于移动的间距可能过小,使得两幅图像的视差较小,导致立体图显示时立体感不强;或者由于移动的间距过大,导致视差过大,容易引起观看疲劳。重新设置最大视差如图3C所示,过程如下:
首先对扫描线对齐后的两幅图像进行立体匹配,获得第一图像对应的视差图;统计视差图中的最大视差值;将预设的最佳视差值除以得到的最大视差值,从而得到视差的缩放系数;利用该缩放系数对视差图中每一点的视差进行缩放调整;利用缩放后的视差和第一图像重构第二图像,从而完成重新设置最大视差,使观看者在观看立体图像显示时,可以获得更加舒适的立体观看效果。
步骤205,将所述第一图像和第二图像形成为立体图,用作所述光标。
通过本发明实施例所述方法,采用双照相装置进行左右拍摄的方式获得的立体图像作为三维立体显示场景中的光标,并使光标能够根据深度维度的位移信息进行相应变化,从而实时显示在三维立体场景中的不同深度层次中。方便了用户在三维立体显示场景中的操作,使三维立体显示场景具有更强的真实感。
方法实施例3
本发明实施例提供了另一种三维场景中的光标处理方法,该方法与方法 实施例2类似,都采用立体图像作为光标,因此,可以直接根据在步骤101中得到的所述深度维度的位移信息对立体图像的视差进行调整。但本发明实施例中作为光标的立体图像的获取方法与方法实施例2不同。
以下详细介绍本发明实施例中作为光标的立体图像的获取方法,如图4A所示包括:
步骤301,对三维场景中使用的光标进行3D场景建模。
如图4B所示,显示了一个采用双照相装置的场景投影模型。其中A、B为场景中的两个点,OL和OR分别为互相平行的左右照相装置的光心。OL 和OR之间的距离为c;照相装置到成像平面的距离为D。AL′和AR′分别为点A对于左右照相装置在投影平面上的投影点;BL′和BR′分别为点B对于左右照相装置在投影平面上的投影点。假设照相装置位于OL和OR连线的中点上,则根据简单的几何关系可以得到空间中某一点(x,y,z)在投影平面上的投影坐标(u,v)为:
对于左右照相装置,可以将x轴的坐标进行相应的偏移,从而得到空间中某一点(x,y,z)在左右照相装置视点上的投影分别为:
其中,(uL,vL)表示空间中某一点在左照相装置视点上的投影坐标;(uR,vR)表示空间中某一点在右照相装置视点上的投影坐标。根据上述计算得到的投影关系,最终可以得到空间中某一物体在投影平面上的立体图像对。
从图4B中可以看出,视差为正时,一个物体看上去位于投影平面的后方;视差为零时,左右照相装置在投影平面上的成像点的坐标正好重合;视差为负时,则一个物体看上去位于投影平面的前方。
步骤302,在得到光标模型后对光标模型进行渲染。
具体地,可以采用如OpenGL或DirectX 3D等软件进行渲染。由于在真实世界中人是通过双眼观察物体的,因此在渲染时需设置左右两个视点得到左右眼的渲染图像。在具体实现时,用户可以采用图形应用程序接口Application Programming Interface,简称:API)提供的视点变换和投影变换功能来设置左右照相装置的位置和观察范围。例如对于OpenGL软件,可以使用gluLookAt方法设置观察视点,即设置照相装置的位置;并使用glFrustum方法计算透视投影变换。
通过本发明实施例所述方法,采用3D建模方法获得的立体图像作为三维立体显示场景中的光标,并使光标能够根据深度维度的位移信息进行相应变化,从而实时显示在三维立体场景中的不同深度层次中。方便了用户在三维立体显示场景中的操作,使三维立体显示场景具有更强的真实感。
系统实施例
本发明实施例提供了一种光标处理系统,如图5所示包括:光标产生装置10和光标调整装置20。其工作原理如下:
光标产生装置10可以为普通的鼠标等用于控制光标的装置。用户移动光标产生装置10时,光标产生装置10中的深度控制单元11在深度方向上控制光标移动。其中深度控制单元11可以为滚轮、按键或MEMS装置等。
光标产生装置10中的位移信息产生单元12根据所述深度控制单元11控制光标在深度方向上移动的结果,以及所述光标产生装置10的位移产生三个维度的位移信息,所述三个维度包括平面两个维度及深度维度。其中,深度维度的位移信息可以根据深度控制单元11对光标在深度方向上进行控制的信息得到。
光标调整装置20中的光标视差调整单元21根据由光标产生装置10得到的所述位移信息,实时调整所述光标对应两眼视图的视差,具体的调整过程可参见方法实施例1、2和3所述,此处不再赘述。
完成视差调整后,光标调整装置20中的光标输出单元22将视差调整后的 光标所对应的两眼视图输出到三维场景显示设备中。
通过本发明实施例所述系统,实现了使光标能够根据深度维度的位移信息进行相应变化,从而实时显示在三维立体场景中的不同深度层次中;方便了用户在三维立体显示场景中的操作,使三维立体显示场景具有更强的真实感。
本发明实施例还提供了一种光标处理装置,如图6所示包括:光标产生单元40和光标调整单元50。其工作原理如下:
光标产生单元40可以为普通的鼠标等用于控制光标的单元。用户移动光标产生单元40时,光标产生单元40中的深度控制模块41在深度方向上控制光标移动。
光标产生单元40中的位移信息产生模块42根据所述深度控制模块41控制光标在深度方向上移动的结果,以及所述光标产生单元40的位移产生三个维度的位移信息,所述三个维度包括平面两个维度及深度维度。其中,深度维度的位移信息可以根据深度控制模块41对光标在深度方向上进行控制的信息得到。
光标调整单元50中的光标视差调整模块51根据由光标产生单元40得到的所述位移信息,实时调整所述光标对应两眼视图的视差,具体的调整过程可参见方法实施例1、2和3所述,此处不再赘述。
完成视差调整后,光标调整单元50中的光标输出模块52将视差调整后的光标所对应的两眼视图输出到三维场景显示设备中。
通过本发明实施例所述装置,实现了使光标能够根据深度维度的位移信息进行相应变化,从而实时显示在三维立体场景中的不同深度层次中;方便了用户在三维立体显示场景中的操作,使三维立体显示场景具有更强的真实感。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。