一种三维立体鼠标的制作方法

文档序号:6483174阅读:437来源:国知局
专利名称:一种三维立体鼠标的制作方法
技术领域
本发明属于信息技术领域,特别是一种三维立体鼠标。
背景技术
众所周知,现实世界是真正的三维立体世界,而现有的显示设备绝大多数都只能显示二维信息,并不能给人以深度感觉。为了使显示的场景和物体具有深度感觉(也就是3D),人们在各方面进行了尝试。基于人眼双目视差立体成像原理的三维立体显示系统就是其中的一种,它通过使左右视差图像分别进入人们的左右眼,这两幅视差图经视神经中枢的融合反射以及视觉心理反应从而使观看者产生了三维立体感觉。利用该原理研制的光栅式三维自由立体显示器,就是通过柱面或狭缝光栅的分光作用,将左右视差图分别呈现给人的双眼,从而使观看者获得三维立体视觉的。它不同于传统的佩戴偏光眼镜、液晶开关眼镜、互补色眼镜等辅助工具的立体显示器,且用户可直接获得十分逼真的三维立体效果,完全解放了人的双眼,降低了由于佩戴辅助工具带来的视疲劳,使用方便。
但是现在的光栅式自由立体显示器上采用的仍然是常规鼠标,显示出来的鼠标还是平面的。本发明所要解决的技术问题是克服传统鼠标只能在一个平面内运动的问题。根据自由立体显示器的原理可知,要想能够观察到立体效果,就必须存在视差图,即同一物体在不同图像中的同名点存在视差。由于传统鼠标的单一性,不存在所需要的视差图,所以不能够在自由立体显示器上看到立体效果,更不可能指向显示出来的立体空间中的指定位置。而本发明实现的系统不仅可以实现立体鼠标,而且可以达到三维交互的目的。

发明内容
本发明一种三维立体鼠标是在自由立体显示器上来实现立体鼠标,并且实现在三维空间中该立体鼠标具有指向某一任意深度位置的功能。
本发明采用了下列技术方案解决了其技术难题-
1、相机阵列视差图的获取。自由立体显示器是将多路视差图进行合成后来实现立体显示的,常采用多镜头平行式摆放,形成相机阵列来获取所需的视差图,这些相机可以是真实的,也可以是三维建模软件环境中提供的虚拟相机。如图l所示是n个镜头(1122)的相机阵列,各光轴的方向大致平行,各CCD大致在同一直线上且间距大致相等,这样采集得到的n(&2)路视差图能够保证相邻的两路视差图之间的视差Ax近似相等。图1所示拍摄系统获取的场景的视差图如图2所示,与镜头编号对应分别为第1路视差图、第2路视差图、……、第n路视差图。
2、立体鼠标的实现。本发明实现立体鼠标的过程由以下步骤组成。第一步建立n个模拟窗口。采用软件的方式建立n个模拟窗口,其中模拟窗口的大小与所采用的自由立体显示器窗口的大小相同;模拟窗口的分辨率与视差图的分辨率相同;而且每个模拟窗口的;c^坐标系也与自由立体显示器窗口的坐标系相同(以左上角为坐标系的原
点,向右水平方向为x轴,向下竖直方向为少轴,坐标系的单位长度也相同,如图3所示),自由立体显示器如果采用多路视差图就要建立多个上述的模拟窗口,与多路视差图一一对应。建立的n个模拟窗口如图4所示,与每一路视差图对应,模拟窗口的编号分别为l'、 2'、……、m'。
第二步在模拟窗口中全屏显示各视差图。在建立的每一个模拟窗口中用软件方式读入
所对应的那一路视差图,然后全屏显示,如图5的r、 2'、……、《'所示。
第三步生成鼠标。首先,利用软件获取模拟窗口I'中鼠标所在位置的实际坐标(x,力,然后在其它每个模拟窗口中找到相同的坐标点Oc,力,最后在每个模拟窗口中的坐标点(jc,力处调用系统鼠标图标从而在每个模拟窗口中都产生一个鼠标,当移动硬件鼠标的时候,每个
模拟窗口的鼠标都会同时移动。如图6的1'、 2'、……、"'所示,在每一个模拟窗口的左下
角相同坐标处产生了 一个相同的鼠标。
第四歩鼠标指向待测物体。挪动鼠标使模拟窗口l'中鼠标指向所要指示的物体,此时,其余模拟窗口中的鼠标并没有指向对应于该物体的同名点。这是因为,所有模拟窗口中的鼠
标的坐标相同且多路视差图之间是存在视差的,而是与所要指示的物体之间依次相差(n-l)Ax, Ax是该物体在相邻两幅视差图中的同名点之间所对应的视差。如图7的1'、 2'、……、"'所示,模拟窗口l'中鼠标指向物体A上的a点时,其余模拟窗口中鼠标并没有指向物体A上的a点,而是相邻两幅视差图的a点之间距离相差Ax。
第五步使鼠标产生视差。以模拟窗口l'中鼠标的坐标(x, y)为基准、视差图中的像素为单位,调整其余模拟窗口中鼠标的水平位置。设视差图中像素的单位长度为Am,此时让模拟窗口 2'中鼠标的坐标每次水平移动的长度为Am ,直到窗口 2'中鼠标水平位置平移量等于这两路视差图中同名点的视差Ax为止。再以模拟窗口2'中鼠标对应的坐标(x+A/n, y)为基准,调整模拟窗口 3'中鼠标的坐标,直到窗口 3'中鼠标水平位置平移量等于这两路视差图中同名点的视差Ax为止,以此类推,对所有模拟窗口中的鼠标位置进行调整。这样,所有模拟窗口中的鼠标都指向了所要指示的同一物体。如图8的1'、 2'、……、"'所示,此时相邻两个模拟窗口中鼠标所对应的视差为Ax 。
第六步记录鼠标视差。将第五步各模拟窗口的状态记录下来形成新的视差图,其中的鼠标包含有视差信息。如图9的1"、 2"、……、""所示,记录的每个模拟窗口中鼠标指针都指向了物体A上的a点的状态,形成了新的n路视差图。
第七步合成显示。将形成的新的n路视差图进行合成并在自由立体显示器上进行显示,如图IO所示。此时,观测者将看到鼠标指示到浮出自由立体显示的物体A上的a点,如图
11所示,其中D为显示屏,4、 A和4、 52位置分别代表图1中物体A、 B被相机q和&拍
摄得到的视差图经合成之后在显示屏上的位置。
要使鼠标指向物体B上的b点,则重复上述第四到第七个步骤就可实现,观测者可以看到鼠标指向浮出自由立体显示的物体B上的b点,而且位于浮出自由立体显示的物体A的后方。上述七个步骤是动态实时的,通过不断的调整鼠标的视差就可使常规鼠标指向自由立体显示器上不同空间位置的物体。立体鼠标的实现的过程中,步骤四、五、六极为重要,解决了鼠标指针视差的问题,通过第七步,就可以在自由立体显示器上看到立体鼠标的效果,而且可以指向观察者所观测到的空间位置。
本发明中所用的视差图的垂直视差、水平视差须在一定的范围,如果垂直视差、水平视差过大,则在自由立体显示器上合成显示就不能观察到立体效果,最佳的状态为垂直视差为0,水平视差在自由立体显示器能够合成观察到立体效果的范围内。如果拍摄得到的视差图垂直、水平视差过大,就要采用软件处理的方式对视差图进行像素级别的縮放和平移,直至符合要求。当图像进行縮放时(如将图像在不同大小显示器上进行显示),改变的仅仅是像素的单位长度并没有改变视差Ax对应的像素个数。
为了减少计算误差和不同观察者的立体感觉不同带来的判断失误,本发明中采用彩色立体图像匹配技术在合成显示之前在视差图中对待测的空间点进行标注,使合成显示后待测空间点的位置更加明显。四

图l阵列相机拍摄任意场景示意图
图2阵列相机拍摄得到的多路视差图
图3模拟窗口坐标示意图
图4建立的n个模拟窗口l'、 2'、……、"'的示意图
图5在模拟窗口中显示视差图的示意图
图6在模拟窗口中生成鼠标示意图
图7鼠标指向待测物体示意图
图8使鼠标产生视差示意图
图9记录具有视差的鼠标图形图10合成显示示意图
图11显示的立体效果示意图五具体实施例方式
第一步将8个CCD摄像机固定在平台上,摄像机拍摄的分辨率为630x350,保持各光轴的方向大致平行,并使各个CCD大致在同一直线上且间距大致相等;用数据线把各个CCD和PC机中的图像采集卡连接起来,将22寸光栅式立体显示器直接和PC机相连。
第二步:将拍摄获得的8路视差图进行预处理,调整视差使其适于在自由立体显示器上显示,然后利用立体图像匹配技术标示出所有同名点的视差。
第三步建立8个模拟窗口,大小尺寸与22寸光栅式立体显示器相同,分辨率为视差图的分辨率630x350,坐标系与光栅式立体显示器相同,其坐标系方向如图3所示。8个模拟窗口分别与8路处理过的视差图相对应,然后每个模拟窗口中全屏显示所对应的那一路视差图,如图5的1'、 2'、……、"'所示。
第四步生成立体鼠标。得到模拟窗口中当前鼠标的坐标",y),如(O, 1050),然
后找到每个模拟窗口中对应的坐标(O, 1050),在该坐标处调用系统鼠标图标。这样在
每个模拟窗口中产生了一个鼠标,如图6的1'、 2'、……、"'所示。
第五步:挪动鼠标使模拟窗口l'中鼠标指向物体A上的a点,如图7的1'所示。第六步通过键盘上的左右键调整鼠标视差,使其余每一个模拟窗口中的鼠标指针指向
物体A上的a点,如图8所示。
第七步记录鼠标视差,形成新的视差图,如图9的1"、 2"、……、""所示。第八步合成显示观察,判断鼠标是否已经指向了浮出于自由立体显示器前面的物
体A上的a点,如图ll所示;如果没有指向a点,则重复第五、六、七步,直到观察到鼠标
指针指向a点。
至此,三维立体鼠标及其摄影测量系统已经介绍完毕,但本发明并不仅局限于具体实施方式
中提到的八镜头数码相机以及光栅式自由立体显示器,其它两个镜头或任意多镜头配合自由立体显示终端实现的三维立体鼠标同样在本发明的保护范围之内。
权利要求
1、一种三维立体鼠标,它是在自由立体显示器的基础上,采用计算机软件编程从而使常规鼠标具有三维立体功能,其特征在于通过计算机编程首先建立多个模拟窗口,每个模拟窗口与自由立体显示器采用的多路视差图一一对应,并在模拟窗口中全屏显示各视差图;接着在每个模拟窗口中都产生一个常规鼠标;然后在第一个模拟窗口挪动鼠标使其指向所要指示的物体,并根据同名点间视差使其余模拟窗口中的鼠标指向该同一物体;最后记录下具有视差的模拟窗口,形成新的含有鼠标的视差图,将这些视差图合成并显示于自由立体显示器上,实现的三维立体鼠标就具有了指向任意空间位置的功能。
2、如权利要求1所述的一种三维立体鼠标,其特征还在于建立的多个模拟窗口与自由 立体显示器采用的视差图数量相同,并一一对应,其大小与所采用的自由立体显示器窗口的 大小相同,分辨率与视差图的分辨率一致,且每个模拟窗口的x炒坐标系也与自由立体显示 器窗口的坐标系相同。
3、 如权利要求l所述的一种三维立体鼠标,其特征还在于每个模拟窗口中都产生一个鼠 标,然后利用软件获取模拟窗口中鼠标所在位置的实际坐标(x,力,并在其它每个模拟窗口中 找到相同的坐标点(x,力,最后在每个模拟窗口中的坐标点(x,力处调用系统鼠标图标,从而 在每个模拟窗口中都产生一个鼠标。
4、 如权利要求1所述的一种三维立体鼠标,其特征还在于挪动鼠标使第一个模拟窗口中 鼠标指向所要指示的物体,并根据同名点间视差量使其余模拟窗口中的鼠标指向该同一物体。
5、 如权利要求1所述的一种三维立体鼠标,其特征还在于记录下具有视差的模拟窗口从 而形成新的含有鼠标的视差图,通过合成并在自由立体显示上显示时,鼠标具有立体功能。
全文摘要
一种三维立体鼠标,它是在自由立体显示器的基础上,采用计算机软件编程从而使常规鼠标具有三维立体功能。它首先通过计算机编程建立多个模拟窗口,每个模拟窗口与自由立体显示器采用的多路视差图一一对应,并在模拟窗口中全屏显示各视差图。接着在每个模拟窗口中都产生一个常规鼠标,然后在第一个模拟窗口挪动鼠标使其指向所要指示的物体,并根据同名点间视差使其余模拟窗口中的鼠标指向该同一物体。最后,记录下具有视差的模拟窗口,形成新的含有鼠标的视差图,将这些视差图合成并显示于自由立体显示器后,可实现三维立体鼠标。本发明通过产生并记录鼠标的视差信息从而克服了传统的鼠标只能在一个平面内运动的问题,而使其可在自由立体显示器上指向指定的空间位置。
文档编号G06F3/033GK101655747SQ20091006034
公开日2010年2月24日 申请日期2009年8月14日 优先权日2009年8月14日
发明者刘效勇, 方恩博, 李大海, 王琼华 申请人:四川大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1