[发明专利]一种基于GPU的集成成像微图像阵列快速生成方法有效
申请号: | 201310394195.8 | 申请日: | 2013-09-03 |
公开(公告)号: | CN103440660A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 王琼华;李述利;邓欢;熊召龙 | 申请(专利权)人: | 四川大学 |
主分类号: | G06T7/00 | 分类号: | G06T7/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 集成 成像 图像 阵列 快速 生成 方法 | ||
技术领域
本发明涉及集成成像3D(三维)显示技术,更具体地说,本发明涉及一种基于GPU(图形处理器)的集成成像微图像阵列快速生成方法。
背景技术
集成成像是一种重要的3D显示技术,观看者可在不佩戴助视眼镜时观看到立体图像。随着计算机技术的迅速发展,人们广泛地使用计算机模拟和处理各种光学过程,并衍生出计算机集成成像技术。该技术首先采用3D建模软件建立3D场景模型,然后用计算机程序建立相机阵列来模拟微透镜阵列的成像过程,从而获取集成成像的片源即微图像阵列。
多视点渲染计算机集成成像是一种用一个相机模拟一个透镜元来获取图像元的技术,如附图1所示。该技术通过OpenGL或Direct3D计算机图形库的3D渲染流水线来实现对3D场景的渲染以获取图像元,最终通过拼接所有的图像元得到微图像阵列。由于集成成像中透镜元的数量巨大,且对3D虚拟场景的渲染次数等于透镜元的数量,所以计算机渲染过程将耗费大量的时间,难以满足实时动态计算机集成成像的要求。
CUDA(统一计算设备架构)是NVIDIA公司的并行计算架构。该架构通过充分利用GPU的高性能并行运算能力,可大幅提升特定算法的计算效率。CUDA提供了与Direct3D和OpenGL这两种计算机图形库进行互操作的API(应用程序接口),充分利用显卡自身的高性能并行运算能力对Direct3D或OpenGL中的顶点资源、纹理资源、表面资源等进行后期处理,提高了程序的运行效率。
发明内容
本发明提出一种基于GPU的集成成像微图像阵列快速生成方法,该方法包括Direct3D程序中建立虚拟相机阵列而获取视差图像阵列和CUDA程序实现视差图像阵列转换为微图像阵列两个过程。
所述Direct3D程序中建立虚拟相机阵列而获取视差图像阵列过程,由Direct3D程序的渲染流水线建立虚拟相机阵列对3D虚拟场景进行渲染,获取的视差图像阵列的图像个数远远小于微图像阵列所需图像元的个数,且无需对获取的视差图像进行二次图像处理,即可获取具有正、负视差的视差图像。
所述虚拟相机阵列,如附图2所示,采用会聚式立体相机结构,包含M×N个相机,各相机在水平和垂直方向上等间距排列,相邻相机的间距为D,各相机中心位于同一平面上,且各相机有共同目标点O,各相机均采用正交投影几何模型对3D虚拟场景进行渲染,渲染的视差图像分辨率均为X×Y,确定各相机目标点O所在的参考平面与相机阵列所在平面的距离为L。确定所需微透镜阵列的参数,包含M′×N′个透镜元,透镜元焦距为f,透镜元节距为p;所需微图像阵列也包含M′×N′个图像元,图像元分辨率为r×r。
优选地,为了满足虚拟相机阵列渲染的视差图像阵列在转换为微图像阵列时不丢失信息,相机阵列包含的相机个数M×N、视差图像的分辨率X×Y以及相邻相机的间距D需满足下式:
(1)
(2)
(3)
(4)
(5)
所述CUDA程序实现视差图像阵列转换为微图像阵列的过程如附图3所示,该过程称为像素映射过程,它是基于CUDA并行计算架构来实现的。I(m, n)m′, n′表示第m行第n列视差图像上第m′行第n′列的像素,该像素映射到微图像阵列的第i行第j 列的像素位置上,由I′(i, j)表示。像素映射过程的数学关系为:
(6)
其中,
(7)
(8)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310394195.8/2.html,转载请声明来源钻瓜专利网。