欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2015103430311
申请人: 长春理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于单幅摄影球图像的真实点光源方向的计算及虚拟化方法,其特征在于:其设备由摄影球、随机点云标记纸、彩色数码相机、三角架、计算机组成,其中彩色数码相机与三角架通过快装板相连,彩色数码相机与计算机通过电缆相连,计算机中存有随机点云标记图,随机点云标记图为62个半径为10mm的正圆,正圆的编号用变量dt表示,dt=1,2,

3,...,62,随机点云标记图中的正圆随机分布,将随机点云标记图打印在A4纸上构成随机点云标记纸,摄影球置于随机点云标记纸的几何中心处,摄影球的直径为25cm;

其具体的实现步骤如下:

步骤1、调整三角架的脚架部分和云台部分,使得通过彩色数码相机的取景器目镜能够看到摄影球的全部以及随机点云标记纸的全部,用彩色数码相机拍摄,得到一幅摄影球图片;

步骤2、在随机点云标记纸上建立世界坐标系,其中世界坐标系的原点O选为随机点云标记纸的几何中心,Z轴正方向选为沿纸面向里,X轴正方向选为由七点边指向五点边并垂直于A4点云标记纸的短边,Y轴正方向选为由十一点边指向四点边并垂直于A4点云标记纸的长边;

步骤3、在摄影球图片中建立摄影球图片坐标系,摄影球图片坐标系的原点选为摄影球图片中摄影球的球心,摄影球图片坐标系的Z轴正方向选为摄影球图片内过原点O垂直向上,摄影球图片坐标系的Y轴正方向选为摄影球图片内过原点O水平向右,摄影球图片坐标系的X轴正方向选为过原点O垂直于摄影球图片向外;

步骤4、由摄影球图片上所有像素点按照从左到右,从上到下的顺序构成矩阵P;设矩阵P有m行,n列;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=1,2,…,m,j=1,2,…,n;在摄影球图片中摄影球的轮廓上选取三个点point1、point2、point3,并记其于摄影球图片坐标系中的像素坐标分别为 ,同时,获取在摄影球图片中摄影球区域内每个点光源在摄影球图片坐标系中的坐标 ;即求得圆心于摄影球图片坐标系下的像素坐标,以及以像素为单位的圆半径值,方法如下:由方程组

联立求得 ,

再由

解得 ,

由方程组

联立求得 ,并设 ,

解得 ,

由方程组

得到圆心在摄影球图片坐标系下的像素坐标,用 表示,则以像素为单位的圆半径为

步骤5、经过计算:

得点光源于摄影球1表面所呈光斑的于摄影球图片坐标系中的坐标 ;

步骤6、经过计算:

即可计算得到点光源于摄影球图片坐标系下的坐标 ;

步骤7、使用OpenCV1.0中的cvThreshold函数,对随机点云标记图进行二值化;

使用OpenCV1.0中的cvFindContours函数,在随机点云标记图中找出正圆的轮廓的点集;使用OpenCV1.0中的cvCvtSeqToArray函数,依次将每个正圆的轮廓的点集转换为一维数组,一维数组中元素的类型都为CvPoint;最后,使用OpenCV1.0中的cvFitEllipse函数,对每个一维数组进行圆拟合,得到每个拟合圆的圆心坐标,并记为 ,设cvFitEllipse函数的返回值用Box表示,x0=Box.center.x,y0=Box.center.y,a=Box .siz e .height ,b=Box .si ze .width , ,则令,并将

归一化并记为 ,dt=1,2,…PN;

步骤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,1)=表示编号为dt圆与其他所有正圆中编号为di圆构成了第u小的迹,di=1,2,3,...,PN,PN表示随机点云标记图中圆点的总数,在本方法中u=1,2,3,4;

步骤9、构建一个PN*4的矩阵中,记为XYJ1(PN)(4),其中步骤10、将摄影球图片存储于计算机中,使用OpenCV1.0中的cvThreshold函数,对摄影球图片进行二值化;使用OpenCV1.0中的cvFindContours函数,在二值化后的摄影球图片中找出除边界处外的每一个可见椭圆的轮廓点集;使用OpenCV1.0中的cvCvtSeqToArray函数,依次将每一个可见椭圆的轮廓的点集转换为一维数组,椭圆一维数组中元素的类型都为CvPoint;最后,使用OpenCV1.0中的cvFitEllipse函数,对每个椭圆一维数组进行椭圆拟合,并对每个椭圆编号为dt’,得到每个椭圆的圆心坐,将cvFitEllipse函数中的参数centerpoint.x记为xx0,centerpoint.y记为yy0,ellsize.height记为aa,ellsize.width记为bb,angle记为 ,则令,并将

归一化记为 ,其中 表示摄影球图片中可见椭圆的编号;

步骤11、计算摄影球图片中除边界处外的每一个可见的椭圆的 与其他所有椭圆计算的 的迹,并将编号为dt’椭圆与其他所有可见椭圆的迹值按快速排序法非降次排序后的前4个迹值以及后者的编号存入矩阵T_R’(PN)(4)(2)中,其中矩阵T_R’中的元素T_R’(dt’)(u)=  表示编号为dt’椭圆与其他所有椭圆中编号为di’椭圆构成了第u小的迹 ,di’=1,2,3,...,TN,TN表示在摄影球图片中除边界处外观察到的椭圆点的总数,在本方法中u=1,2,3,4;

步骤12、构建一个TN*4的矩阵中,记为XYJ2(TN)(4),其中dt’=

1,2,3,...,TN,

创建两个一维向量XYJ3和XYJ4,如果存在dt使得XYJ2(dt’)与XYJ1(dt)相匹配,则将赋值给XYJ3(pn), 赋值给XYJ4(pn),XYJ2(dt’)与XYJ1(dt)相匹配需满足 为根据需要所设定的阈值,dt=1,2,3,...,PN,dt =1,2,3,...,TN;

步骤13、将XYJ3(pn)和XYJ4(pn)传递给OpenCV1.0中的摄像机标定函数CalibrateCamera2,便得彩色数码相机3的3*3旋转矩阵R和3*1平移矩阵T,从而计算得到点光源在世界坐标系中的空间相对位置 ,计算方法如下:;

步骤14、点光源在世界坐标系中的空间相对位置 ,转换成MAYA中光源参数的角度值(Rotate XN,Rotate YN,Rotate ZN)方法如下,其中于MAYA中建立MAYA世界坐标系,并创建虚拟摄像机使其光轴与Y轴重合,沿Y轴负方向;已知MAYA中创建虚拟点光源时的初始位置为虚拟点光源光轴与Z轴重合并沿Z轴负方向,则 ;步骤15、在MAYA世界坐标系中虚拟点光源的参数,即为:通过步骤1到步骤15便可快速、高精度地估计实际空间中点光源的方向并且在MAYA三维建模软件中直接生成其虚拟点光源的参数。