一种三维纹理模型文件的生成方法和装置与流程

文档序号:17690139发布日期:2019-05-17 20:58阅读:143来源:国知局
一种三维纹理模型文件的生成方法和装置与流程

本发明涉及图像处理技术领域,特别是指一种三维纹理模型文件的生成方法和装置。



背景技术:

近年来,三维扫描仪的普及使得在较短时间内获取物体表面精密点云成为可能。基于精密的点云模型,首先可利用表面重构技术可以获得表达物体表面形状的格网数据,接着可以将照片携带的颜色信息通过自动或人工手段映射到格网数据上,生成生动鲜明的点云颜色模型或更高级的纹理模型。

点云颜色模型只是将顶点的颜色进行渲染,其真实性更多的取决于几何格网模型的精度。而更高级别的三维纹理模型是将真实的照片映射到几何格网模型中,其真实性取决于照片与模型的映射精度,三维纹理模型可以大大提高三维模型的视觉精度,并弥补几何格网模型精度的不足,因此在虚拟现实应用中具有重要的作用。目前常见的三维造型软件支持的模型格式有3ds,wrl,ply,obj等。这些模型格式都能支持几何格网模型,即可以记录顶点坐标、格网索引和顶点颜色等。而对于纹理模型,这些格式需要将照片信息附在模型文件夹中,并将照片名称写入模型文件中。如果照片缺失或损坏,将只能显示几何模型。



技术实现要素:

有鉴于此,本发明的目的在于提出一种三维纹理模型文件的生成方法和装置,生成的三维纹理模型文件无需担心照片缺失或损坏问题。

基于上述目的本发明提供的一种三维纹理模型文件的生成方法,应用于预设的几何格网模型和照片,包括步骤:

检测并获取所述几何格网模型的顶点数据,生成几何点模型数据块;

根据所述几何格网模型和照片,对所述几何格网模型逐顶点地计算纹理坐标,生成纹理坐标模型数据块;

检测并获取所述照片的顶点、高度、宽度信息,并逐行提取所述照片的像素数据,生成照片数据块;

根据所述几何点模型数据块,建立所述几何格网模型的顶点索引;根据所述照片数据块,建立所述几何格网模型的照片索引;根据所述纹理坐标模型数据块,建立所述几何格网模型的纹理坐标索引;将所述顶点索引、照片索引、纹理坐标索引生成几何格网模型数据块。

优选的,计算纹理坐标的步骤进一步包括:

将所述几何格网模型和照片进行对齐标定,得出所述照片相对于所述几何格网模型的焦距、主点、位置、指向;

在所述几何格网模型的一顶点与相机光心之间连接一直线;

记录所述直线与相片成像平面交点的坐标(i,j);

根据如下公式获得纹理坐标(u,v):

u=i/(W-1)

v=(H-1-j)/(H-1)

其中,W为所述相片的宽度,H为所述相片的高度。

优选的,进一步包括载入步骤:

载入所述几何点模型数据块和几何格网模型数据块,根据所述顶点数据和顶点索引,生成几何格网模型;

载入所述照片数据块,生成照片;

载入所述纹理坐标模型数据块和几何格网模型数据块,根据几何格网模型各的顶点纹理坐标、所述纹理坐标索引、所述照片索引和所述照片,将所述照片映射到所述几何格网模型中,生成三维纹理模型。

优选的,进一步包括动态载入步骤:

将所述照片进行n倍压缩,并进行重新采样,重新采样过程中采用如下公式重新计算照片像素:

GI,J=(1-dx)*(1-dy)*Gi,j+dx*(1-dy)*Gi+1,j+dx*dy*Gi+1,j+1+(1-dx)*dy*Gi,j+1

其中Gi,j为原始像素,GI,J为压缩后的像素,Gi+1,j,Gi+1,j+1,Gi,j+1为相邻的三个像素坐标,dx,dy为压缩后的行列式映射到原始照片上的行列式的小数部分;

将重新采样后的照片映射到所述几何格网模型中,生成三维纹理模型。

优选的,进一步包括自动测量步骤:

累加所述三维纹理模型上所有的格网面积作为所述三维纹理模型的表面积,并显示;

将所述三维纹理模型上的所有格网依次向Z=0的平面上投影生成一个多棱柱,累加所有多棱柱的体积作为所述三维纹理模型的体积,并显示。

优选的,进一步包括交互测量步骤:

获取用户通过在屏幕上输入的选取操作所确定的测量区域;

根据屏幕与所述纹理模型的转换关系,将所述测量区域反算到所述三维纹理模型中,得到测量点或测量格网;

根据所述测量点或测量格网,计算生成测量结果并显示。

优选的,当所述测量区域为一个点时,将所述三维纹理模型中离该点最近的顶点作为所述测量点,所述测量结果为所述测量点的坐标。

优选的,当所述测量区域为一条直线时,选取所述三维纹理模型中离该直线两端点最近的两个顶点作为所述测量点,计算所述测量点间的距离作为所述测量结果。

优选的,当所述测量区域为一多边形区域时,统计所述三维纹理模型中落入该多边形区域内的格网作为所述测量格网,累加所有所述测量格网的面积作为所述测量结果。

本发明还提供了一种三维纹理模型文件的生成装置,包括:

第一生成模块,用于检测并获取预设几何格网模型的顶点数据,生成几何点模型数据块;

第二生成模块,用于根据所述几何格网模型和照片,对所述几何格网模型逐顶点地计算纹理坐标,生成纹理坐标模型数据块;

第三生成模块,用于检测并获取预设照片的顶点、高度、宽度信息,并逐行提取所述照片的像素数据,生成照片数据块;

第四生成模块,用于根据所述几何点模型数据块,建立所述几何格网模型的顶点索引;根据所述照片数据块,建立所述几何格网模型的照片索引;根据所述纹理坐标模型数据块,建立所述几何格网模型的纹理坐标索引;将所述顶点索引、照片索引、纹理坐标索引生成几何格网模型数据块。

从上面所述可以看出,本发明提供的三维纹理模型文件的生成方法,通过将现有的物体的几何格网模型和照片生成单独的数据块,将其集成到同一个文件中,克服了现有技术中在文件载入时,因照片缺失或损坏而造成的无法完整显示纹理模型的问题;同时,支持动态分辨率压缩,适应不同配置的浏览设备,渲染帧率高、无延迟,并能够进行自动或互动的纹理模型测量,测量结果能够方便的显示和导出。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的三维纹理模型文件的生成方法流程图;

图2为本发明实施例中纹理坐标的映射计算示意图;

图3为本发明实施例中不同分辨率照片与几何格网模型的对应示意图;

图4为本发明实施例中不同分辨率的纹理模型显示效果和在计算机上的渲染帧率示意图;

图5(a)为本发明实施例中自动表面积的测量的显示效果图;

图5(b)为本发明实施例中自动体积的测量的显示效果图;

图6(a)为本发明实施例中点坐标交互量测的显示效果图;

图6(b)为本发明实施例中直线距离交互量测的显示效果图;

图6(c)为本发明实施例中矩形区域面积交互测量的显示效果图;

图6(d)为本发明实施例中多边形区域面积交互测量的显示效果图;

图7为本发明实施例的三维纹理模型文件生成装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

本发明实施例提供了一种三维纹理模型文件的生成方法,应用于预设的几何格网模型和照片,该几何格网模型和照片为两个单独的文件,本实施例的方法通过将所述几何格网模型和照片数据提取并生成不同的数据块以将其集成为一个文件;参考图1,为本发明实施例的三维纹理模型文件的生成方法流程图。

所述三维纹理模型文件的生成方法,包括以下步骤:

S101:检测并获取所述几何格网模型的顶点数据,生成几何点模型数据块。

本步骤中,检测并获取几何格网模型的顶点数据,顶点数据一般包括几何格网模型各个顶点的坐标、法向和颜色信息。几何点模型数据块格式如下所示:

vvv x y z nx ny nz r g b

首先输出点标记,接着在同一行输出单个点坐标的相关信息,若有多个点,则换行进行输出。其中,vvv表示点标记,用于标示该行是用于几何模型的点的输出。x,y,z表示空间点的三维坐标,单位由三维模型扫描设备决定一般为毫米或米,nx,ny,nz表示空间点的法向,r,g,b表示空间点的颜色。

S102:根据所述几何格网模型和照片,对所述几何格网模型逐顶点地计算纹理坐标,生成纹理坐标模型数据块。

纹理坐标模型数据块包括顶点的纹理坐标(范围为0~1之间),其格式如下所示:

vtt u v

首先输出纹理坐标标记,接着在同一行输出单个纹理坐标的数据,若有多个坐标,则换行进行输出。其中vvt表示纹理坐标标记,用于标示该行是用于纹理坐标的输出。u,v表示顶点的纹理坐标。参考图2,为纹理坐标的映射计算示意图。

作为优选的,计算纹理坐标的步骤包括:

将所述几何格网模型和照片进行对齐标定,得出所述照片相对于所述几何格网模型的焦距、主点、位置、指向;

具体的,焦距是指在拍摄瞬间相机光心与照片成像平面之间的距离,其中相机光心是指相机的成像中心,是相机固有的一种物理特征;主点是指由相机光心出发垂直于照片成像平面并相交的一个点坐标;位置是指拍摄瞬间相机相对于几何格网模型的位置;指向是指拍摄瞬间相机关心与主点的连线相对于几何格网模型的方向信息。

在所述几何格网模型中的某一顶点与相机光心之间连接成一直线;

记录所述直线与相片成像平面交点的坐标(i,j);

根据如下公式获得纹理坐标(u,v):

u=i/(W-1)

v=(H-1-j)/(H-1)

其中,W为所述相片的宽度,H为所述相片的高度。

对于几何格网模型的每个顶点,均通过上述过程获得纹理坐标。

S103:检测并获取所述照片的顶点、高度、宽度信息,并逐行提取所述照片的像素数据,生成照片数据块。

照片数据块记录了照片信息和像素信息。其格式如下:

imgno

Left Top Right Bottom Cx Cy

G0,0G0,1G0,2...G0,cx-3G0,cx-2G0,cx-1

G1,0G1,1G1,2...G1,cx-3G1,cx-2G1,cx-1

Gcy-1,0Gcy-1,1Gcy-1,2...Gcy-1,cx-3Gcy-1,cx-2Gcy-1,cx-1

其中,首先输出照片的数目,接着输出单个照片的信息头和像素数据。其中,imgno表示照片的数目。换行后的用矩形框里的数据为每幅照片的信息投和像素数据:Left,Top,Right,Bottom,Cx,Cy分别表示照片的左上角X,Y坐标,右下角X,Y坐标,宽度,高度;G0,0G0,1G0,2...G0,cx-3G0,cx-2G0,cx-1:表示每一行的像素数据。多张照片将按照上述的矩阵形式依次排列。

S104:根据所述几何点模型数据块,建立所述几何格网模型的顶点索引;根据所述照片数据块,建立所述几何格网模型的照片索引;根据所述纹理坐标模型数据块,建立所述几何格网模型的纹理坐标索引;将所述顶点索引、照片索引、纹理坐标索引生成几何格网模型数据块。

几何格网模型数据块包括点索引,纹理坐标索引和照片索引。其中,点索引是指格网的三个顶点来自于顶点数据块中的哪三个点,如123表示格网的三个顶点来自于第1,第2和第3个顶点数据,这三个点连成三角形作为一个格网。纹理索引是指格网的三个顶点的纹理坐标来自于纹理坐标数据块中的哪三个点,如123表示格网的三个顶点的纹理坐标分别来自于第1,第2和第3个纹理坐标数据。照片索引是指格网的三个顶点的纹理坐标在哪一张照片,如123分别表示格网的三个顶点的纹理坐标分别在第1,第2和第3张照片上。

几何点模型数据块的格式为:

fff v1_idx v2_idx v3_idx vt1_idx vt2_idx vt3_idx img_idx

首先输出几何格网模型标记,接着在同一行输出单个格网的点索引、纹理坐标索引和照片所以。若有多个格网,则换行进行输出。其中fff表示几何格网模型标记,用于标示该行适用于几何格网模型数据块的输出。v1_idx,v2_idx,v3_idx表示点的索引,其范围为1~n,n为顶点数目。vt1_idx,vt2_idx,vt3_idx表示纹理坐标的索引,其范围为1~n,n为纹理坐标数目。img_idx表示照片的索引,其范围为1~m,m为照片数目。

作为优选的,本发明中选取Delaunay三角网来表示格网模型,它是将空间点连接为三角形,使得所有三角形中最小的角最大的一种技术,三角形相互邻接且互不重叠,在一般情况下,它是最优的拓扑关系模型。

通过上述步骤,生成的几何点模型数据块、纹理坐标模型数据块、照片数据块和几何点模型数据块构成了三维纹理模型文件,可见原始预设的几何格网模型和照片的具体数据均记录在上述各数据块中,形成一集成化的单个文件。

对于通过本实施例的方法生成的三维纹理模型文件,还包括载入步骤:

载入所述几何点模型数据块和几何格网模型数据块,根据所述顶点数据和顶点索引,生成几何格网模型;

载入所述照片数据块,生成照片;

载入所述纹理坐标模型数据块和几何格网模型数据块,根据几何格网模型各的顶点纹理坐标、所述纹理坐标索引、所述照片索引和所述照片,将所述照片映射到所述几何格网模型中,生成三维纹理模型。

在载入过程中,首先根据三维纹理模型文件中各个数据块记载的数据,将几何格网模型和照片还原生成,再将其进行映射处理,以最终生成纹理模型。

进一步的,在本发明优选实施例中,还包括动态载入步骤,即由于在三维纹理模型文件中记录了原始的照片信息,在载入时可以动态进行采样以生成不同分辨率的三维纹理模型。具体的,在三维纹理模型文件载入过程中,设采样比率为n,即表示将照片进行n倍的压缩。纹理坐标保持不变,需要对照片的像素数据进行重采样,为了保证最小的损失率,采用双线性插值的方法重新计算照片像素,计算公式如下所示:

GI,J=(1-dx)*(1-dy)*Gi,j+dx*(1-dy)*Gi+1,j+dx*dy*Gi+1,j+1+(1-dx)*dy*Gi,j+1

其中Gi,j为原始像素,GI,J为压缩后的像素,Gi+1,j,Gi+1,j+1,Gi,j+1为相邻的三个像素坐标,dx,dy为压缩后的行列式映射到原始照片上的行列式的小数部分,即若原始照片上行列式坐标为(346.82,159.05),则dx,dy分别为0.82和0.05。

经过上述过程,将重新采样后的照片映射到所述几何格网模型中,生成三维纹理模型。参考图3和图4,图3为不同分辨率照片与几何格网模型的对应示意图,图4为不同分辨率的纹理模型显示效果和在计算机上的渲染帧率示意图。在图4中,由左至右的各三维格网模型,依次为:原始分辨率、帧率=20,降2倍分辨率、帧率=45,降3倍分辨率、帧率=62,降4倍分辨率、帧率=80,降4倍分辨率、帧率=104。

在优选实施例中,在基于本发明的方法生成的三维纹理模型上,还包括自动测量步骤,即对于生成的三维纹理模型,自动计算其一些常用的测量数据并向用户显示,包括自动表面积和体积的测量。

表面积的测量过程为:

累加三维纹理模型上所有的格网面积作为三维纹理模型的表面积,如下式:

其中,Stotal表示三维纹理模型的表面积,n为格网的总数目。

体积的测量过程为:

将所述三维纹理模型上的所有格网依次向Z=0的平面上投影生成一个多棱柱,累加所有多棱柱的体积作为所述三维纹理模型的体积,如下式:

其中,Vtotal表示三维纹理模型的体积,V为单个棱柱的体积,需要分正负。区分正负的原则为:如果格网的法向与Z=0平面相同为正,否则为负。

自动计算生成三维纹理模型的表面积和体积后,通过对话框向用户显示,具体示例参考图5(a)和图5(b)。

在优选实施例中,在基于本发明的方法生成的三维纹理模型上,还包括交互测量步骤,即通过获取用户在在屏幕上输入的选取操作,来确定一个测量区域;再根据屏幕与所述纹理模型的转换关系,将所述测量区域反算到所述三维纹理模型中,该转换关系的具体内容为:将屏幕选取的二维平面坐标,首先根据三维显示引擎提供的比例关系转换到三维纹理模型坐标系中,然后根据三维显示引擎提供的焦距信息将二维平面坐标进行缩放,最后将三维纹理模型中距离二维平面坐标最近的点作为选中的测量区域。

经过以上转换,得到测量点或测量格网;所述的测量点或测量格网是测量区域经过上述对应所得到的三维纹理模型上的一个或多个顶点或格网。具体包括:点测量、直线距离测量、区域面积测量。

点坐标交互量测:

点坐标交互量测是指用鼠标选取得到屏幕上的一个二维点,根据屏幕与三维纹理模型的转换关系,将屏幕上的一个二维点反算到三维纹理模型中,找到离选取点最近的一个三维纹理模型中的顶点作为选取得到的点,并将其三维坐标(形式为XYZ)输出到屏幕上,显示效果参考图6(a)。

直线距离交互量测:

直选距离交互量测是指用鼠标选取得到屏幕上的一对二维点,根据屏幕与三维纹理模型的转换关系,将这一对二维点反算到三维纹理模型中,找到离选取点最近的一对三维纹理模型中的顶点作为直线的端点,根据下式计算两点的直线距离,并显示在屏幕上,显示效果参考图6(b)。

其中,(X1 Y1 Z1),(X2 Y2 Z2)为直线两个端点的三维坐标。D为直线距离。

区域面积测量:

区域面积交互量测是指用鼠标在屏幕上绘制出一个测量区域框,该测量区域框可以是规则的图形,如矩形、圆形,也可以是不规则的多边形区域。根据屏幕与三维纹理模型的转换关系,将测量区域框的区域反算到三维纹理模型中,并统计落入到该测量区域内的格网,累加所有格网的面积作为测量区域的表面积,并显示在屏幕上,显示效果参考图6(c)和图6(d),分别为矩形区域面积交互测量的显示效果图和多边形区域面积交互测量的显示效果图。

本发明实施例还提供了一种三维纹理模型文件生成装置,参考图7,为本实施例的三维纹理模型文件生成装置的结构示意图。

所述三维纹理模型文件生成装置包括:

第一生成模块701,用于检测并获取预设几何格网模型的顶点数据,生成几何点模型数据块;

第二生成模块702,用于根据所述几何格网模型和照片,对所述几何格网模型逐顶点地计算纹理坐标,生成纹理坐标模型数据块;

第三生成模块703,用于检测并获取预设照片的顶点、高度、宽度信息,并逐行提取所述照片的像素数据,生成照片数据块;

第四生成模块704,用于根据所述几何点模型数据块,建立所述几何格网模型的顶点索引;根据所述照片数据块,建立所述几何格网模型的照片索引;根据所述纹理坐标模型数据块,建立所述几何格网模型的纹理坐标索引;将所述顶点索引、照片索引、纹理坐标索引生成几何格网模型数据块。

所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1