1 虚拟现实
虚拟现实中的“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的:而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰。
为实现虚拟现实系统而发展的技术称为虚拟现实技术。简单地说,就是人们利用计算机生成一个逼真的三维虚拟环境,通过自然技能使用传感设备与之相互作用的新技术。它与传统的模拟技术完全不同,是将模拟环境、视景系统和仿真系统合三为一,并利用头盔显示器、图形眼镜、数据服、立体声耳机、数据手套及脚踏板等传感装置,把操作者与计算机生成的三维虚拟环境连结在一起。利用这种虚拟现实技术可以进行建筑、机械、兵器等设计修改,可以较容易地实施技术操作训练和军事演习活动。
2 虚拟全景空间
本文根据渐入渐出的原理,基于图像无缝拼接技术,应用Java 语言实现对离散图像的拼接,各离散图像之间平滑过渡,消除图像叠加产生的模糊和明显的分界。
在基于全景图像的虚拟现实系统中,虚拟场景是按以下步骤生成的:首先利用采集的离散图像或连续的视频作为基础数据,经过处理形成全景图像;然后通过合适的空间模型把多幅全景图像组织为虚拟全景空间。用户在这个空间中可以进行前进、后退、3600 环视、仰视、俯视、近看、远看等操作。虚拟全景空间具有如下的优点:不需要硬件加速就能在PC 机上实时运行;不依赖于特殊的设备,如头盔显示器等;能显示高质量图像,且处理时间与场景复杂度无关。
2.1虚拟全景空间
单个视点空间反映的是一个三维点空间,而一个虚拟现实系统往往需要建立起一个N 维的虚拟空间。在视点空间中只限定了视点的位置,对观察方向未作任何限定,实际上视点空间应包含任意观察方向上用户所看到的全局场景,包括球面全景图像、多面体全景图像和柱面全景图像。球面全景和多面体全景均可反映空间中任意方向的场景,处理它们的难度比较大。柱面全景实际上是它们的简化形式。
柱面全景没有顶盖与底盖两部分场景,限制了用户在垂直方向的观察角度,但在水平方向是3 测视角,能满足大部分应用的需要;柱面全景处理起来比球面全景和多面体全景简单得多,因而应用面比较广。
2 .2 全景图像生成器
全景图像可以由照相机或摄像机采集的实景图像数据生成。将照相机或摄像机固定在可水平旋转的支架上,镜头需位于支架的中心。如果是照相机,转动相机一周并隔一定角度拍照,把得到的相互间有一定接缝的一圈局部图像用于全景图像生成器的输入。如果采用摄像机生成全景图像,则把摄像机缓慢地绕中心点旋转一周拍摄,得到的视频作为全景图像生成器的输入。由于局部图像是在不同方向上拍摄的,它们的投影平面存在一定的夹角。随着全景空间半径的增大,各局部图像之间的夹角误差所带来的影响也随之减低,甚至可以忽略。无缝拼接是基于两幅重叠图像的像素相关性,一般有基于”基金项目:广西省教育厅科研项目(桂教科研[2 ( X ) 4120 号)面积、基于特征等方法。基于面积的方法是把一幅图像中某一像素的像素值邻域作为模板,在另一幅图像中搜索具有相同(或近似)像素值分布的对应点邻域,从而确定两幅图像的拼接范围。在搜索过程中,通常是以相关函数作为两个搜索邻域间的相似性测度。
基于特征的方法不是直接利用图像像素值,而是通过像素值导出符号特征(如特征点、特征线段等)来实现匹配,所以它对于对比度和明显的光照变化等相对稳定。同时,基于特征的匹配可以通过对特征属性的简单比较来实现,因此,它比基于面积的方法要快得多。
2 .3 图像的无缝拼接算法
本文采用一种基于特征线段的图像匹配算法,利用一幅图像上间隔一定距离的两列所对应的部分像素与另一幅图像上的两列像素进行匹配。即在前一幅图像的重叠区域中分别在两列上取出部分像素,计算它们的差值作为特征模板,然后在第二幅图像中搜索最佳的匹配。即对于第二幅图像,在搜索范围内依次从间距相同的两列上取出部分像素,并逐一计算其对应的像素值差值;然后将这些差值依次与模板进行比较,其最小偏差值对应的列就是最佳匹配。这样在比较中只利用了一组数据,但是这组数据利用了两列像素及其所包含的区域信息。假设特征模板的维数是M ,即从每列中取出M 个像素,用base [ i ]来表示任一模板元素。对第二幅图像搜索范围中的任意两列元素,计算出对应像素的差值,可得到数组imagelk ]。因为图像不仅有水平方向上的重叠,还有垂直方向上的交错,所以K > M 。在进行匹配时,先进行垂直方向的比较,然后再进行水平方向的比较,从而得到最佳匹配。设垂直方向交错距离dis ,则对应的偏差值表示为s [ dis ]。
由此可确定图像的匹配值,具体算法如下:
l 、在第一幅图像的重叠范围内取出间隔距离为d 的两列中的部分像素,构造特征模板base 【 M ]。
2 、在第二幅图像的搜索范围中,假设最左边的一列像素位置等于0 。
3 、在第二幅图像的搜索范围中,取出P 和P ’的两列像素的部分像素,其中像素数为K ( K > M ) ,计算它们对应像素的差值,得到image [ K ]。
4 、设垂直交错距离为dis ,那么对每一个dis ,可以计算出而age [ K ]与模板base [ M ]的偏差值:
3.3 受控计算机
系统受控计算机端的程序功能是,其服务程序要不间断的读取网络传输数据,根据传来的命令分别执行捕捉屏幕、锁定、解除锁定等操作。侧民务程序中定义了变量m - - strRead ,用以保存收到的命令信息。当受控服务程序的套接字接收到信息时,触发相应的消息处理函数,该函数首先调用二v ( )函数接收传来的命令,保存在m - - strRead 中,然后根据m - - strRead 的值进行选择判断,从而分别执行对应的程序,整个流程如图4 所示。锁定、解锁键盘鼠标的功能实现是通过执行API 函数实现的,锁屏使用Enable ( GetDeskiopwindow ( ) , FALSE ) ;解锁使用Enable ( GetDeskiopwindow ( ) , TRUE )。
|