立体视觉:基于opengl的立体图像对的软件实现方法

立体视觉:基于opengl的立体图像对的软件实现方法

ID:16357206

大小:110.50 KB

页数:8页

时间:2018-08-09

立体视觉:基于opengl的立体图像对的软件实现方法_第1页
立体视觉:基于opengl的立体图像对的软件实现方法_第2页
立体视觉:基于opengl的立体图像对的软件实现方法_第3页
立体视觉:基于opengl的立体图像对的软件实现方法_第4页
立体视觉:基于opengl的立体图像对的软件实现方法_第5页
资源描述:

《立体视觉:基于opengl的立体图像对的软件实现方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、立体视觉:基于OpenGL的立体图像对的软件实现方法1、3D驱动原理与GL_STEREO      如果要让3D显示卡提供立体显示,则必须有两方面的技术:一是立体驱动,二是3D液晶快门。其中,立体驱动为显示驱动部份,能将Direct3D(或OpenGL)相容的应用软件,由平面显示即时转化为立体显示,从表面上我们所看到的现象,就是普通显示变成了双影显示,这样双影显示就包含了左右眼各自的图象显示与显示器上;3D液晶快门则是一种高速的电子液晶快门,可根据显示立体驱动发出的信号同步调整开关,达到分离显示器上显示的左右眼图像,即时的送给左右眼睛,这样,我们所看到的显示器的双影显示

2、就会变成立体显示。当然,这双影图像必须有在一定的角度上的偏差,而角度通过预设值来调整。      通常,立体驱动将所产生的左右图像以交错格式、上下格式及换页格式三种方式储存在显示卡的内存中。交错格式是将左右图像各别抽取一半之后,再交错合成一张同样分辨率的影像。上下格式则将左右图像各别抽取一半压缩后,合成存入一张具有上下格式的图像。换页格式:则不作任何处理,将左右图像以原有的分辨率,分别独立存储在内存中。这三种格式以换页格式的图像质量最好。目前我们采用的是换页格式,也就是换页扫瞄模式,将左右图像交替扫瞄于显示器的屏幕,也就是先扫瞄左眼图像,再扫描右眼图像。如此不断地重复,

3、因其扫描速度够快(如100Hz),加上人眼的视觉暂留现象,会让人感觉是同时显示在屏幕上,此时,利用显示卡发生连续的同步信号给3D液晶快门眼镜,也就是说,当显示左眼图像时,3D液晶眼镜左镜片开通,右眼镜片关闭:当显示右眼图像时,3D液晶眼镜的右镜片开通,左眼镜片关闭,如此反复,左右眼就各自看到自己的图像,而在大脑中形成立体影像。      实时渲染三维数据,即把三维数据转换为屏幕上可显示的数据时,一般采用OpenGL或DirectX应用程序接口函数库。在OpenGL应用程序接口中,专门提供了渲染多视角的Quad-BufferedStereo(四方体立体缓存)函数,而专业的

4、OpenGL显卡对Quad-Buffered提供硬件上的支持。例如NVidiaQuadro、ATI-FireGL、3DlabsWildcat工作站显卡。如果需要立体显示,可以在显卡的驱动的高级选项设置中启用Stereo选项并根据相关硬件做适当调整或者交换左右眼等。      在OpenGL了中必须先使用GL_STEREO进行宏测试显卡是否支持stereo。2、Toe-inMethod(correct)      使用这种方法时,相机是一个固定并且是产生对称的平截体,每个相机指向单一的焦距。使用Toe-in创建的图像是一个具有垂直视差的立体感,并且会产生不合适的水平增量。

5、这种垂直视差增量会随着相机张角的增大而跳出偏移投影平面的中心。         Toe-in是一种不正确的方法,但它仍然用得很多,因为它采用移动相机法并且非常容易的使用平行相机产生两个图像对。      Toe-in在OpenGL中采用gluPerspective()函数进行透视投影,左右相机位于不同位置但都是指向同一个焦点的。部分代码如下:glMatrixMode(GL_PROJECTION);//设置投影模式glLoadIdentity();//设置透视投影,相机张角,投影纵横比,最近和最远处gluPerspective(camera.aperture,screen

6、width/(double)screenheight,0.1,10000.0);if(stereo){     CROSSPROD(camera.vd,camera.vu,right);     Normalise(&right);//获得单位矢量        //计算相机偏移量(包括方向)     right.x*=camera.eyesep/2.0;     right.y*=camera.eyesep/2.0;     right.z*=camera.eyesep/2.0;     glMatrixMode(GL_MODELVIEW);        //左右缓

7、冲模式     glDrawBuffer(GL_BACK_RIGHT);     glClear(GL_COLOR_BUFFER_BIT

8、GL_DEPTH_BUFFER_BIT);     glLoadIdentity();        //设置相机,右眼位置为vp+right,指向焦点,方向vu     gluLookAt(camera.vp.x+right.x,                 camera.vp.y+right.y,               camera.vp.z+right.z,               

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。