1.一种三维模型与监控视频的无缝融合方法,其特征在于,包括:
构建目标视频图像所对应的三维空间场景的深度图;
获取视频帧,生成视频帧纹理;
计算三维模型中的目标微面片在归一化设备坐标系的坐标和视频帧纹理中的纹理坐标;
根据目标微面片的归一化设备坐标系的坐标,判断目标微面片是否在视景体内;
若目标微面片在视景体内,利用目标微面片在视频帧纹理中的纹理坐标,从目标视频图像的深度图中读取目标微面片深度信息,再根据深度信息判断目标微面片是否被遮挡;若目标微面片不在视景体内,则根据三维模型原有纹理对目标微面片进行渲染;
若被遮挡,则使用三维模型原有纹理对目标微面片进行渲染。
2.根据权利要求1所述的方法,其特征在于,还包括:
若不被遮挡,则使用微面片在视频帧纹理中的纹理坐标获取纹理的颜色信息,对目标微面片进行渲染。
3.根据权利要求1所述的方法,其特征在于,步骤构建目标视频图像所对应的三维空间场景的深度图包括:
根据摄像头位置的三维坐标和摄像头的姿态角计算摄像头的视图矩阵;
依据摄像头的视场角和视频的宽高比计算摄像头的透视投影矩阵;
创建深度纹理对象;
设置帧缓冲区,用于控制渲染流水线把深度图保存在深度纹理对象中;
根据视图矩阵和透视投影矩阵对三维场景做渲染,以生成深度图。
4.根据权利要求1所述的方法,其特征在于,步骤获取视频帧,生成视频帧纹理包括:
读取视频帧,并根据视频的帧率更新视频帧,用于与三维模型融合,实现动态融合效果;
调用三维API将二维图像的视频帧保存在纹理,生成视频帧纹理。
5.根据权利要求1所述的方法,其特征在于,步骤计算三维模型中的目标微面片在归一化设备坐标系的坐标和视频帧纹理中的纹理坐标包括:
利用GPU顶点着色器,将三维模型顶点坐标从模型坐标系下转换到裁剪坐标系下;
通过硬件渲染流水线的光栅化插值裁剪坐标系下的三维模型顶点坐标,在像素着色器中得到裁剪坐标系下的三维模型微面片齐次坐标(x,y,z,w),其中,X表示点坐标在X轴的投影;Y表示点坐标在Y轴的投影;Z表示点坐标在Z轴的投影;X轴、Y轴、Z轴均是裁剪坐标系中的坐标轴,W用于对(x,y,z)做投影,从而转换到归一化设备坐标系;
将目标微面片齐次坐标转为普通三维坐标,得到目标微面片在归一化设备坐标系的坐标(x/w,y/w,z/w);
根据目标微面片在归一化设备坐标系的坐标,计算得到目标微面片在视频帧纹理中的纹理坐标((x/w+1)*0.5,(y/w+1)*0.5))。
6.根据权利要求1所述的方法,其特征在于,步骤根据目标微面片的归一化设备坐标系的坐标,判断目标微面片是否在视景体内包括:
判断目标微面片在归一化设备坐标系下的坐标的x/w和y/w是否在[-1,1]闭区间上;如果不在则判断目标微面片不在摄像头的视景体之内;
如果在,则计算目标微面片在归一化设备坐标系下的坐标z/w的数值,并根据z/w的数值判断目标微面片是否在视景体内。
7.根据权利要求6所述的方法,其特征在于,步骤计算目标微面片在归一化设备坐标系下的坐标z/w的数值,并根据z/w的数值判断目标微面片是否在视景体内包括:
如果三维API使用OpenGL,那么z/w的数值在[-1,1]闭区间上则说明目标微面片在视景体之内,如果z/w的数值不在[-1,1]闭区间上则说明目标微面片不在视景体之内。
8.根据权利要求6所述的方法,其特征在于,步骤计算目标微面片在归一化设备坐标系下的坐标z/w的数值,并根据z/w的数值判断目标微面片是否在视景体内包括:
如果三维API使用DirectX,那么z/w的数值在[0,1]闭区间上则说明目标微面片在视景体之内;如果z/w的数值不在[0,1]闭区间上则说明目标微面片不在视景体之内。
9.根据权利要求7所述的方法,其特征在于,步骤利用目标微面片在视频帧纹理中的纹理坐标,从目标视频图像的深度图中读取目标微面片深度信息zn,再根据深度信息zn判断目标微面片是否被遮挡包括:
如果三维API使用OpenGL,则使用目标微面片的(z/w+1)*0.5与zn做比较,如果(z/w+1)*0.5小于或等于zn,则说明目标微面片没有被遮挡;如果(z/w+1)*0.5大于zn,则说明目标微面片被遮挡;
如果三维API使用DirectX,则把目标微面片的z/w与zn进行比较,如果z/w小于或等于zn,则说明微面片没有被遮挡;如果z/w大于zn,则说明微面片被遮挡。
10.一种三维模型与监控视频的无缝融合装置,其特征在于,包括:
深度图生成模块,用于构建目标视频图像所对应的三维空间场景的深度图;
视频帧纹理生成模块,用于获取视频帧,生成视频帧纹理;
计算模块,用于计算三维模型中的目标微面片在归一化设备坐标系的坐标和视频帧纹理中的纹理坐标;
判断模块,用于根据目标微面片的归一化设备坐标系的坐标,判断目标微面片是否在视景体内;
第一处理模块,用于当目标微面片在视景体内时,利用目标微面片在视频帧纹理中的纹理坐标,从目标视频图像的深度图中读取目标微面片深度信息,再根据深度信息判断目标微面片是否被遮挡;当目标微面片不在视景体内时,则根据三维模型原有纹理对目标微面片进行渲染;
第一处理模块,用于在目标微面片被遮挡时,使用三维模型原有纹理对目标微面片进行渲染。