基于单幅摄影球图像的真实点光源方向的计算及虚拟化方法

文档序号:9327829阅读:230来源:国知局
基于单幅摄影球图像的真实点光源方向的计算及虚拟化方法
【技术领域】
[0001] 本发明涉及一种基于单幅摄影球图像的真实点光源方向的计算及虚拟化方法,属 于增强现实技术领域。
【背景技术】
[0002] 目前,大多数基于摄影球的光源测量方法都是使用方形标识物进行相机位置的测 量,但在一些遮挡面积大、遮挡物多的复杂场景中,方形标识物往往有很大的局限性,甚至 无法估计出结果。如在一片浓密的丛林中融入一株虚拟的植被,因为缺乏适用于方形标识 物的理想角度,从而需要一种鲁棒性更强的标记方法。
[0003] 基于增强现实的立体电影制作过程中,决定真实场景、角色同虚拟场景、角色合成 效果真实感的一个关键技术是光照一致性技术,包括明暗、反射、阴影等方面。早期基于增 强现实的立体电影制作过程中,光照效果的解决方案多是虚拟布光和后期调整,这种方法 只能提供一种近似的逼真感,并且这种方法需要花费大量的后期制作时间和精力,如果更 换了环境,则需要对场景进行重新布光和调整。而现今生成虚拟对象的技术往往是基于 MAYA、3DMAX等软件,在某一角度生成照射虚拟对象的虚拟光源之后,即可以将其与虚拟对 象绑定,从而可以减少后期制作的时间和精力。
[0004] 基于图像的光照,其核心技术是记录真实场景光照信息载体的获取。经典的球镜 模型是在2002年Kanbara等人将一个二维方形板和一个球镜组合在一起,形成一个三维标 志物,能够同时完成几何注册和光照注册;美国特拉华大学的Wei Zhou等人,针对于以往 光照估计中要求单一特定类型光源的局限,提出了一种场景光照模型的统一化框架,对不 同类型的光源建立了更普遍适用的光源模型;Willianms提出的阴影映射算法,首先提取 从光源到场景物体所有轮廓边,然后得到由光源点及每个轮廓边生成的半无限四边形,这 些四边形构成物体的阴影体。
[0005] 目前真实光照恢复方法主要有三种:第一种是在已知物体几何形状以及物体表面 为Lambert漫反射的前提下,从单幅图像中根据物体表面明暗信息恢复出光源的数目和 方向;第二种是通过已知几何形状的物体在场景中投射出的阴影区域,计算区域内的光能 辐射分布来恢复出场景中的光照分布;第三种是为了模拟真实世界中的复杂光照,利用纯 镜面反光球计算场景中某一点处的环境映照图,然后通过高动态范围的恢复算法计算场景 的辐射度图。当获得了光照信息之后,其中虚拟光生成方法分为:一种是先用经验光照明模 型和场景几何来恢复物体材料的光照属性,再根据这些属性生成新光照条件或新视点下的 同一场景的图像。该方法可以实现漫游和交互,但比较复杂;另一种是基于不同视点、光照 方向的采样图像,采用合适的基函数对采样图像进行插值、拟合等处理,从而获得以视点和 光照方向为变量的重光照函数,包含了间接光照和环境光照,具有全局性,但全局光照计算 复杂度较高。本发明提出了一种基于单幅摄影球图像的真实点光源方向的计算及虚拟化方 法,具有高效、精准等优点,更适合在实际中使用。

【发明内容】

[0006] 本发明提出了一种基于单幅摄影球图像的真实点光源方向的计算及虚拟化方法, 其能够快速、高精度地计算真实点光源的方向并且在三维建模软件中将其虚拟化。
[0007] 本发明的技术方案是这样实现的:一种基于单幅摄影球图像的真实点光源方向的 计算及虚拟化方法,其特征在于:其设备由摄影球、随机点云标记纸、彩色数码相机、三角 架、计算机组成,其中彩色数码相机与三角架通过快装板相连,彩色数码相机与计算机通过 电缆相连,计算机中存有随机点云标记图,随机点云标记图为62个半径为IOmm的正圆,并 将其分别编号dt记为1,2, 3, ...,62并随机分布构成,并打印于A4纸上构成随机点云标记 纸,摄影球置于随机点云标记纸的几何中心处,摄影球的直径为25cm ; 其具体的实现步骤如下: 步骤1、调整三角架的脚架部分和云台部分,使得通过彩色数码相机3的取景器目镜能 够看到摄影球的全部以及随机点云标记纸的全部,用彩色数码相机3拍摄,得到一幅摄影 球图片。
[0008] 步骤2、在随机点云标记纸上建立世界坐标系,其中世界坐标系的原点0选为随机 点云标记纸的几何中心,Z轴正方向选为沿纸面向里,X轴正方向选为由七点边指向五点边 并垂直于A4点云标记纸的短边,Y轴正方向选为由十一点边指向四点边并垂直于A4点云 标记纸的长边。
[0009] 步骤3、在摄影球图片中建立摄影球图片坐标系,摄影球图片坐标系的原点选为摄 影球图片中摄影球的球心,摄影球图片坐标系的Z轴正方向选为摄影球图片内过原点0垂 直向上,摄影球图片坐标系的Y轴正方向选为摄影球图片内过原点〇水平向右,摄影球图片 坐标系的X轴正方向选为过原点〇垂直于摄影球图片向外。
[0010] 步骤4、由摄影球图片上所有像素点按照从左到右,从上到下的顺序构成矩阵P ; 设矩阵P有m行,η列;P(i,j) =(R (i,j),G (i,j),B (i,j))为矩阵P的第i行第j列元 素,其中R (i,j)、G (i,j)、B (i,j)分别为P (i,j)的RGB值。构造矩阵I,设元素 I (i,j) 是矩阵 I 的第 i 行第 j 列元素 ,I (i,j) = (R (i,j)+G (i,j)+B (i,j))/3/255,i=l,2,..· ,m,j=l, 2,…,η ;在摄影球图片中摄影球的轮廓上选取三个点pointl、point2、point3, 并记其于摄影球图片坐标系中的像素坐标分别为、I「W m,同 时,易在摄影球图片中摄影球区域内读取到每个点光源于摄影球图片坐标系中的坐标 I每即可求得圆心于摄影球图片坐标系下的像素坐标,以及以像素 为单位的圆半径值,方法如下:
解得%,
得到圆心在摄影球图片坐标系下的像素坐标,用|jy__表示,则以像素为单位的圆 半径为
得点光源于摄影球1表面所呈光斑的于摄影球图 片坐标系中的坐标 '萃赫,:。
[0012] 步骤6、如图5所示,经过计算:
即可计算得到点光源于摄影球图片坐标系下的坐較
[0013] 步骤7、使用OpenCVL 0中的cvThreshold函数,对随机点云标记图进行 二值化;使用OpenCVL 0中的cvFindContours函数,在其中找出各图形的轮廓的 点集;使用OpenCVL 0中的CvCvtSeqToArray函数,依次将每一个图形的轮廓的点 集转换为一维数组,一维数组中元素的类型都为CvPoint ;最后,使用OpenCVL 0中 的cvFitEllipse函数,对每个一维数组进行圆拟合,得到每个圆的圆心坐标,并记 为J),设 cvFitEllipse 函数的返回值用 Box 表示,Xq=Box. center. X, y〇=Box. center, y, a=Box. size, height, b=Box. size, width,
, 则 令
并将 Psfe归一化并记为^-穿麵,dt=1,2,…PN。
[0014] 步骤 8、构造矩阵 T_R,T_R(i,j,k)为矩阵 T_R 的,T_R(i,j,1)
计算随机点云标记图中每个圆的与其他所有圆的的迹,并将 编号为dt圆与其他所有圆计算的迹值按快速排序法非降次排序后的前4个迹值 以及后者的编号存入矩阵T_R(PN) (4) (2)中,其中矩阵T_R中的元素 T_R(dt,u,l)
丨::表示编号为dt圆与其他所有圆中编号为di圆构成了第u小的 迹:觀di=l, 2, 3,. . .,PN,PN表示随机点云标记图中圆点的总数,在本方 法中 u=l,2, 3, 4。
[0015] 步骤9、如图6所示,构建一个PN*4的矩阵中,记为XYJl (PN) (4),其中
步骤10、将摄影球图片存储于计算机中,使用OpenCVL 0中的cvThreshold函数, 对摄影球图片进行二值化;使用OpenCVL 0中的cvFindContours函数,在二值化后 的摄影球图片中找出除边界处外的每一个可见椭圆的轮廓点集;使用OpenCVLO中 的CvCvtSeqToArray函数,依次将每一个可见椭圆的轮廓的点集转换为一维数组, 一维数组中元素的类型都为CvPoint ;最后,使用OpenCVL 0中的cvFitEllipse函 数,对每个一维数组进行椭圆拟合,并对每个椭圆编号为dt',得到每个椭圆的圆心坐 dj t c ',将 cvFitEllipse 函数中的参数 centerpoint. X 记为 XX。,centerpoint. y 记为 yy〇,ellsize.height 记为 aa,ellsize.width 记为 bb,angle 记为遂,则 令
,并将 酵4#_归一化记为户_,其中绩示摄影球图片中可见椭圆的编号。
[0016] 步骤11、计算摄影球图片中除边界处外的每一个可见的椭圆的与其他 所有椭圆计算的.的迹,并将编号为dt'椭圆与其他所有可见椭圆的迹值按快速排 序法非降次排序后的前4个
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1