基于gpu加速的异形屏幕多投影拼接融合视频播放的方法

文档序号:9238503阅读:1269来源:国知局
基于gpu加速的异形屏幕多投影拼接融合视频播放的方法
【技术领域】
[0001] 本发明属于投影控制领域,尤其涉及一种基于GPU加速的异形屏幕多投影拼接融 合视频播放的方法。
【背景技术】
[0002] 大型异形屏幕投影能够增强用户的沉浸感,带来更好的体验,在虚拟现实、教育、 娱乐、仿真训练等领域应用广泛。在实际应用中有各种各样的投影屏幕,即使对于一个特定 的应用场景,其各项参数如投影仪的位置、屏幕形状也会随着时间的推移发生变化,所以希 望投影系统要易于搭建和维护,而实际中的操作往往比较复杂。
[0003] 在用多个投影仪进行拼接时,使用硬边拼接,即让两个投影仪的画面简单的靠在 一起,存在的问题为:通常会有明显的分割线;使用重叠时,如果不对图像的亮度加以处 理,重叠区域的亮度会较高,影响视觉效果,所以要使用亮度融合。
[0004] 对于视频播放,基于投影屏幕的形状,需要对要投影视频中的每一帧进行校正后 再投出,由于图像处理比较费时,很多应用是将视频在线下预处理后再播放,如果场景转换 则需要重新对视频进行预处理,这样转换场景后就需要等待一段比较长的时间才能观看, 而且每个场景都要保存相应的一个视频文件。

【发明内容】

[0005] 为了解决现有技术的缺点,本发明提供一种基于GPU加速的异形屏幕多投影拼接 融合视频播放的方法,该方法实现了多投影仪在异形屏幕上投影拼接,在投影仪和屏幕位 置不变的情况下,实时对视频进行校正播放,省去对视频进行预处理的工序。
[0006] 为实现上述目的,本发明采用以下技术方案:
[0007] -种基于GPU加速的异形屏幕多投影拼接融合视频播放的方法,包括:
[0008] 步骤(1):设置至少两个投影仪,根据投影仪的个数生成控制网格,在异形屏幕上 调整控制网格,每一组控制网格对应一个投影仪;
[0009] 步骤(2):读取视频文件,获取视频文件属性;读取视频文件的一帧图像作为源图 像;调整控制网格对源图像进行几何校正,得到的校正后图像作为目标图像,并求取源图像 与目标图像中像素点的映射矩阵;
[0010] 步骤(3):读取视频文件的下一帧图像;根据相邻投影仪的重叠区域所占整个投 影仪帧缓冲区域大小的比例,生成一幅中间图像;
[0011] 步骤⑷:采用GPU加速的方法对中间图像进行亮度处理和图像拼接融合;根据源 图像与目标图像中像素点的映射矩阵和GPU加速的方法对拼接融合后的图像进行几何校 正,获得拼接融合后图像对应的目标图像;
[0012] 步骤(5):在异形屏幕上投影拼接融合后图像对应的目标图像;
[0013] 步骤(6):重复步骤(3)~步骤(5),直到视频播放完成。
[0014] 所述步骤⑴中的调整控制网格的具体过程为:
[0015] 将生成控制网格全屏显示在异形屏幕上,然后对控制网格进行增加或减少一组控 制网格、增减网格线的条数或移动控制点操作,使得投影在屏幕上的控制网格不变形,且不 同投影仪的网格线对齐。
[0016] 所述步骤(1)中的视频文件属性,包括:视频帧率、每一帧的大小和视频总时长。
[0017] 所述步骤⑵中求取源图像与目标图像中像素点的映射矩阵的具体过程为:
[0018] 步骤(2. 1):定义源图像与目标图像的映射矩阵为二维矩阵MdPMy,二维矩阵凡 和My均与目标图像的大小相同;
[0019] 步骤(2.2):源图像中的任一像素点(i,j),通过调整控制网格的方法获取目标图 像对应像素a',j'),并在mx中保存i',在My中保存j' ;其中,i和j表示整数变量。
[0020] 所述步骤⑶中生成中间图像的具体过程为:
[0021] 假设有N个投影仪,校正后相邻两个投影仪的重叠区域为单个投影区域的1, m 那么首先将源图像在水平方向等分为N(m-1)+1份,每一份的宽度为d,将它们编号为 0, 1,. . .,N(m-l);生成一幅高与源图像相同且宽为dXmXN的中间图像,将中间图像等分 为mXN份;
[0022] 将源图像中编号为k(m-l),k(m-l)+l,…(k+1) (m-1)的区域叠加到中间图像中编 号为km,km+l,…(k+l)m-l的区域,每个重叠区域分别由两个投影仪投出;其中,N表示大 于等于2的整数;m表示大于等于2的整数;d表示常数;k表示从0到N的任一整数。
[0023]所述步骤(4)中对拼接融合后的图像进行几何校正的具体过程,包括:
[0024] 步骤(4. 1):确定图像重叠区域的渐变因子;
[0025] 步骤(4. 2):采用GPU加速的方法获取图像重叠区域的每个像素,将获取图像重 叠区域的每个像素的RGB值都乘上其各自对应的渐变因子后,得到新的值替换原来的像素 值。
[0026] 所述步骤(4. 1)中,若图像重叠区域的亮度不变,则不存在重叠区域,渐变因子为 1 ;否则,存在重叠区域,图像重叠区域的渐变因子包括右图像重叠区域渐变因子和左图像 重叠区域渐变因子。
[0027] 所述右图像重叠区域渐变因子的表达式为:
[0028]
[0029] 所述左图像重叠区域渐变因子的表达式为:
[0030]
[0031] 其中,《= 0. 7,u= 2. 5,x表示左图像或右图像中当前列在重叠区域列号与单 个重叠区域的总列数之比。
[0032] 所述步骤(4. 2)中GPU加速的方法的具体过程为:
[0033] 在GPU核函数中,首先获取线程号,计算出该线程所对应的像素点(i,j)以及像素 点(i,j)所对应的渐变因子,将像素点(i,j)所对应的渐变因子与像素点(i,j)的RGB值 相乘,作为像素点(i,j)最终的像素值。
[0034] 所述步骤(1)和步骤(5)中的异形屏幕包括弧形屏幕、环形屏幕和球形屏幕。
[0035] 本发明的有益效果为:
[0036] (1)本发明在异型屏幕多个投影仪进行拼接时,采用GPU加速的方法对中间图像 进行亮度处理和图像拼接融合,降低了两个图像之间的分割线,而且对两个重叠图像进行 亮度融合,增强了视觉效果;
[0037] (2)本发明采用拼接融合和调整控制网格的方法改善了视频播放对图像校正的效 率以及场景转换的特殊需求,实现在异形屏幕上的视频实时校正播放;
[0038] (3)本发明的该方法成本低,操作简单,易于搭建和维护。
【附图说明】
[0039] 图1(a)是原始控制网格对应控制点示意图;
[0040] 图1 (b)是调整后的控制对应控制点不意图;
[0041] 图2(a)是原始控制网格对应像素点示意图;
[0042] 图2 (b)是调整后的控制对应像素点不意图;
[0043] 图3是控制网格调整流程图;
[0044] 图4(a)是原始控制网格图像;
[0045] 图4(b)是调整后的控制网格图像;
[0046] 图5 (a)是未校正的图像;
[0047] 图5 (b)是投影拼接校正结果;
[0048] 图6是视频播放流程图。
【具体实施方式】
[0049] 下面结合附图与实施例对本发明做进一步说明:
[0050] 本程序以Windows7中的VisualStudio2010为开发平台,其【具体实施方式】如 下:
[0051] 本发明通过显卡或分线器将多台投影仪连接到同一台计算机上,将投影仪随意摆 放,但是要使得相邻投影仪的投影区域有一定的重叠,将多个显示器设置为扩展模式,设置 好投影仪的投影区域。
[0052] 本发明的基于GPU加速的异形屏幕多投影拼接融合视频播放的方法,通过手动调 整控制网格,快速完成多投影仪拼接校正,通过使用GPU加速实现视频实时处理播放的系 统。
[0053] 本发明的系统包括:
[0054] 投影仪(2个及以上):投影图像;
[0055] 弧形幕布:显示投影仪所投图像;
[0056] 异型屏幕投影拼接系统:生成控制网格,接收人工调整,对图像进行处理并显示, 实时处理播放视频。
[0057] 本发明中的图像拼接为手动拼接,其原理是:
[0058] 通过投影仪把控制网格投影到屏幕上,网格线的交点称为控制点,对控制点进行 调整,在屏幕上确定一个理想的目标投影区域,对图像进行校正使其填充在这个区域中,也 就达到了我们想要的效果。有几个投影仪就有几组控制网格,一组控制网格只能由一个投 影仪投出,各组控制网格之间相互独立。在屏幕上,相邻投影仪重叠区域对应的网格线、控 制点要对齐。
[0059] 首先手动调整控制点,使网格投影图像在屏幕上达到理想的视觉效果,各个小网 格的大小和分布均匀,重叠区域的网格线和控制点对齐,可以将调整好的控制网格保存起 来。只要将一幅图像进行与控制网格同样的变形通过同一位置的同一投影仪投出,便可以 得到未变形的投影图像。
[0060] 以下是进行图像校正的过程:
[0061] 对于某个投影仪对应的源图像区域Is,假设其对应的控制网格有u行v列,我们把 校正后的图像称为目标图像,生成一幅大小与网格图像相同的全黑图像作为目标图像,这 个投影仪对应目标图像的区域为Id,将源图像区域Is均匀划分为(U-1)行,(V-1)列,图像 中的角点按照行列顺序与控制点是一一对应的,这样就得到了这些角点在目标图像中的位 置,即得到了源图像与目标图像中一部分点的对应关系。这些点处的像素可以很容易地找 到原始像素,而对于其他的像素点要通过插值计算出对应的原始像素:
[0062] 假设Is上有原始的控制网格(^,^上有调整后的控制网格C1:
[0063] 对于Id中的每一个像素Pi(Xl,yi),根据Q,判断其是否位于控制网格内部,如 果在外部则此像素置为黑色。如果在网格内部,则找到这个像素是在由哪四个控制点 八 1,81,(:1,01构成的四边形内,据此可以找到(: (|中对应的四个点4,8,(:,0,如图1(&)和图 1 (b)所示。
[0064] 进一步地,找到所在的三角形,为了求得颜色值,需要找到源图像13中的对应 点?。如图2( &)和图2〇3)所示,控制点八,8,(:,0及41,81,(: 1,01的坐标都可以得到,所以根 据狄洛尼三角插值:
[0065]
[0066] 用三个顶点的坐标表示三角形的面积,例如:[0067]
[0068]
[0069]
[0070]
[0071] 由此计算出P点的近似坐标,根据图像的属性,相邻像素点的颜色值有极大可能 性是相同的,用此近似坐标作为P的坐标。然后将点(x,y)的像素值赋给Pi,这样就完成了 目标图像的生成。
[0072] 图3是控制网格调整流程图。以下对图中各个步骤作详细说明:
[0073] 步骤1 :生成新的控制网格或加载之前保存的控制网格;
[0074] 步骤2 :将控制网格全屏显示;
[0075] 步骤3 :调整控
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1