CN109410302B - 纹理映射方法、装置、计算机设备和存储介质 - Google Patents
纹理映射方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109410302B CN109410302B CN201811158544.5A CN201811158544A CN109410302B CN 109410302 B CN109410302 B CN 109410302B CN 201811158544 A CN201811158544 A CN 201811158544A CN 109410302 B CN109410302 B CN 109410302B
- Authority
- CN
- China
- Prior art keywords
- energy
- texture
- calculating
- triangular
- scanning position
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种纹理映射方法、装置、计算机设备和存储介质。所述方法包括:获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图;计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量;为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案;根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。上述纹理映射方法能够避免多张扫描位置的纹理图存在位移误差时,存在双影以及模糊等缺陷。并且能够在纹理丰富的区域,能够更好的体现出纹理的映射效果。
Description
技术领域
本申请涉及三维扫描模型技术领域,特别是涉及一种纹理映射方法、装置、计算机设备和存储介质。
背景技术
三维扫描是指集光、机、电和计算机技术于一体的高新技术,主要用于采集并分析物体或环境的几何构造和外观数据,并将采集到的数据进行三维重建,得到被扫描物体的三维数字模型。在使用扫描仪进行三维重建的同时,会获取每个扫描位置的RGB图像。根据扫描仪扫描得到的点云数据通过三维重建得到三维网络模型。模型上的一个三角网格,可能会同时出现在多个扫描位置所生成的RGB图像中。由于在点云数据获取时会存在拍摄位置、设备误差、三维重建误差等因素,一个三角网格在多张图片中的颜色并不相同,这种不一致性需要纹理映射来解决。
目前的现有技术中,常用的纹理映射方案为将每一个三角网格在多张图片中的颜色进行加权平均,得到相应三角网格的颜色。这种方法存在一个严重的弊端:当多张图片存在位移误差时,贴图的结果会存在双影、模糊等缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种能够消除双影以及模糊的纹理映射方法、装置、计算机设备和存储介质。
一种纹理映射方法,所述方法包括:获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图;计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量;为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案;根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
在其中一个实施例中,所述计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量包括:获取所述扫描位置的纹理图中的感兴趣区域纹理图;获取所述感兴趣区域纹理图中所有像素点的通道值;根据所述像素点的通道值计算相应像素点的梯度能量。
在其中一个实施例中,所述通道值包括:第一通道值、第二通道值以及第三通道值;所述根据所述像素点的通道值计算相应像素点的梯度能量包括:根据像素点的第一通道值计算相应像素点的第一通道的梯度能量;根据像素点的第二通道值计算相应像素点的第二通道的梯度能量;根据像素点的第三通道值计算相应像素点的第三通道的梯度能量;对第一通道的梯度能量、第二通道的梯度能量以及第三通道的梯度能量求和,得到相应像素点的梯度能量。
在其中一个实施例中,所述根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量包括:根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量;根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量;根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量;将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
在其中一个实施例中,所述根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量包括:根据三角网格选取的扫描位置的纹理图的模糊程度,计算模糊约束能量;根据三角网格在三角网格模型和选取的扫描位置的纹理图中的法向,计算法向约束能量;将模糊约束能量与法向约束能量之和,作为相应三角网格的选图能量。
在其中一个实施例中,所述根据三角网格在三角网格模型中以及选取扫描位置的纹理图中的法向,计算得到法向约束能量包括:获取三角网格在三角网格模型中的法向量作为第一法向量;获取三角网格在选取的扫描位置的纹理图中的法向量作为第二法向量;将第一法向量与第二法向量的夹角余弦值作为法向约束能量。
在其中一个实施例中,所述根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量包括:判断相邻两三角网格是否选取同一扫描位置的纹理图;若不是,则在相邻两三角网格的公共边上进行等距离采样,得到多个采样点;将多个采样点分别映射至相应三角网格选取的扫描位置的纹理图中,并计算同一采样点在两个扫描位置的纹理图中的通道差值绝对值;将所有采样点的通道差值绝对值相加,得到相应相邻三角网格的边界能量。
在其中一个实施例中,所述根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量包括:判断相邻两三角网格是否选取同一扫描位置的纹理图;若不是,则将相邻两三角网格的公共边分别映射至相应三角网格选取的扫描位置的纹理图中,将公共边在两个扫描位置的纹理图中的所有像素点的梯度能量之和作为所有相邻三角网格的梯度能量。
在其中一个实施例中,所述选取总能量最小的纹理映射方案作为最佳纹理映射方案包括:根据解最小能量算法,计算总能量最小的纹理映射方案作为最佳纹理映射方案。
在其中一个实施例中,所述选取总能量最小的纹理映射方案作为最佳纹理映射方案之后包括:利用泊松方程消除最佳纹理映射方案中相邻两三角网格公共边上的颜色差异。
一种纹理映射装置,所述装置包括:获取模块,用于获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图;计算模块,用于计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量;纹理映射方案划分模块,用于为三角网格模型中的每一个三角网格选择一个扫描位置的纹理图,得到多种纹理映射方案;最佳纹理映射选取模块,用于根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一种所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述的方法的步骤。
上述纹理映射方法、装置、计算机设备和存储介质,首先获取三维扫描数据生成三角网格模型以及每个扫描位置的纹理图。再计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量。按照三角网格模型中的每一个三角网格所选择的扫描位置的纹理图,得到多种纹理映射方案。最后根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。上述纹理映射方法能够避免多张扫描位置的纹理图存在位移误差时,存在双影以及模糊等缺陷。并且能够在纹理丰富的区域,能够更好的体现出纹理的映射效果。
附图说明
图1为一个实施例中纹理映射方法的流程示意图;
图2为一个实施例中计算每个像素点的梯度能量的方法的流程示意图;
图3为一个实施例中计算每一种纹理映射方案的总能量方法的流程示意图;
图4为一个实施例中纹理映射装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
附图标记:获取模块100、计算模块200、纹理映射方案划分模块300、最佳纹理映射选取模块400。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
纹理映射技术是计算机图形学的重要组成部分,它能真实地反映图形的真实感。在现代生产中,纹理映射技术的使用范围越来越广,特别是在计算机制作、动画设计、三维游戏和广告设计领域上。纹理映射是通过将已经存在的纹理图像映射到物体表面,从而实现为物体表面则增加表面细节的过程。纹理映射可以分为一维、二维和三维纹理映射,其中一维纹理映射是最简单的纹理映射,即线的映射,二维纹理映射就是对一副二维图形的映射,三维纹理映射是将定义在二维空间的纹理映射到三维物体表面上。
目前解决纹理映射的方案主要有两种,第一种是将每一个三角网格在多张图片中的颜色进行加权平均。这种方法存在一个严重的弊端:当多张图片存在位移误差时,贴图的结果会存在双影、模糊等缺陷。第二种方案是为每一个三角网格选择一张图片作为其贴图,并满足一定约束使贴图质量尽可能好,之后再使用泊松方程进一步减小边界误差。这种方案目前的约束有:1)法向约束,拍摄角度与三角形法向尽可能平行;2)模糊约束,尽可能选择清晰的图片;3)边界约束,所有相邻三角网格交线上的颜色差异综合尽可能小。这些约束以能量的形式实现,亦即,不符合约束将获得较大的能量,符合约束的获得较小能量,这样贴图问题转换成了能量最小化问题。第二种方案目前存在一个弊端:在纹理丰富的区域,例如文字,边界约束无法抑制该区域的错层。这是因为这种断裂引入的边界误差很小,符合能量最小原则。
在一个实施例中,如图1所示,提供了一种纹理映射方法,包括以下步骤:
步骤S102,获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图。
具体地,利用三维扫描仪对待扫描物体分别从不同的角度进行扫描,得到待扫描物体的点云数据以及不同角度的扫描位置的纹理图。将点云数据网格化,形成三角网格模型。其中,三角网格模型就是全部由三角形组成的多边形网格。对于一个三角网格模型,其中的任意一个三角网格都可能在不同角度的扫描位置图像中可见。
步骤S104,计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量。
具体地,首先获取所述扫描位置的纹理图中的感兴趣区域纹理图,其中,感兴趣区域为滤除背景后的待扫描物体区域。再获取每个扫描位置的纹理图中感兴趣区域所有像素点的通道值。其中,RGB图像中每个像素点包括三个通道:红色通道、绿色通道以及蓝色通道。并且每个通道都存在有通道值。根据像素点的通道值计算相应像素点的梯度能量。也就是根据像素点的红色通道值、绿色通道值以及蓝色通道值,计算相应像素点的梯度能量。
步骤S106,为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案。
具体地,由于对于一个三角网格模型,其中的任意一个三角网格都可能在不同角度的扫描位置图像中可见。为每一个三角形选取一个扫描位置的纹理图,就可以有多种纹理映射的方案。更具体的,假设三角网格模型一个存在n个三角形网格,并且在利用三维扫描仪进行三维扫描时,共获取到k个角度的扫描位置的纹理图,也就是k张扫描位置的纹理图。如果每个三角形网格能够在m张扫描位置的纹理图中找到相应的三角形网格图像。那么为每一个三角形网格选取一个扫描位置的纹理图,对于三角网格模型来说总共有m^n种选择方法,也就是说当前三角网格模型共有m^n种纹理映射方案。
步骤S108,根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
具体地,由于三角网格模型存在多种纹理映射方案,为了选取最佳的纹理映射方案,需要分别计算每一种纹理映射方案的总能量,再选择其中总能量最小的方案作为最佳纹理映射方案。首先根据根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量,再根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量,最后根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量。将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。选取总能量最小的纹理映射方案作为最佳纹理映射方案。其中,根据解最小能量算法,计算总能量最小的纹理映射方案作为最佳纹理映射方案。在m^n种纹理映射方案中要选取一个总能量最小的方案作为最佳纹理映射方案。由于m^n是很大的一个数,因此通过计算所有纹理映射方案的总能量,在选取一个最小值是运算量非常大的。通常会通过解最小能量算法进行实现。其中解最小能量算法可以基于贪心算法选图,贪心算法选图将所有三角网格先任意选择一张图片,然后进行迭代。在一次迭代中,每次改变一个三角形的选图,使得总能量减小,每个三角形只改变一次,改变的顺序可以是乱序也可以是固定顺序。解最小能量算法也可以基于Alpha-expansion算法,其本质为贪心算法,但与传统贪心算法相比有更快的收敛速度。
在得到最佳纹理映射方案之后,一般情况下,最佳纹理映射方案在某些相邻三角网格的公共边上颜色还会存在明显差异。就需要对最佳纹理映射方案利用泊松方程消除最佳纹理映射方案中相邻两三角网格公共边上的颜色差异。选择一张扫描位置的纹理图,根据选择结果将选择它的三角网格投影到这张扫描位置的纹理图上,得到多个连通区域。可知,连通区域内的像素点要用来贴图,区域外的像素点不再使用。对于其中任意一个连通区域,这个连通区域的边界对应了相邻三角形使用不同贴图的公共边。泊松方程的原理是:改变连通区域内像素点的颜色,使得:1)消除相邻三角形网格使用不同扫描位置的纹理图的公共边上的颜色差异;2)连通区域像素点的梯度值与原图保持一致。三个通道可独立计算。将连通区域内像素点颜色视为未知值,并满足上述两个条件,那么这些方程组存在唯一解。对每张扫描位置的纹理图进行上述流程,可消除相邻三角网格使用不同扫描位置的纹理图的公共边颜色差异。泊松方程的优点是保证了内部连通区域的梯度,这样能很好的保留纹理、材质等信息。
上述纹理映射方法,首先获取三维扫描数据生成三角网格模型以及每个扫描位置的纹理图。再计算每个扫描位置的纹理图中每个像素点的梯度能量。按照三角网格模型中的每一个三角网格所选择的扫描位置的纹理图,得到多种纹理映射方案。最后根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。上述纹理映射方法能够避免多张扫描位置的纹理图存在位移误差时,存在双影以及模糊等缺陷。并且能够在纹理丰富的区域,能够更好的体现出纹理的映射效果。
在一个实施例中,如图2所示,提供了一种计算每个像素点的梯度能量的方法,包括以下步骤:
步骤S202,获取所述扫描位置的纹理图中的感兴趣区域纹理图。
具体地,感兴趣区域为滤除背景后的待扫描物体区域。感兴趣区域纹理图为待扫描物体区域的纹理图。在扫描位置的纹理图中,提取感兴趣区域纹理图。
步骤S204,获取所述感兴趣区域纹理图中所有像素点的通道值。
具体地,RGB图像中每个像素点包括三个通道:红色通道、绿色通道以及蓝色通道。分别获取所有像素点的的三个通道的通道值。也就是分别获取所述感兴趣区域纹理图中每个像素点的红色通道值、绿色通道值以及蓝色通道值。
步骤S206,根据像素点的通道值计算相应像素点的梯度能量。
具体地,首先根据像素点的第一通道值计算相应像素点的第一通道的梯度能量,其中第一通道为红色通道;根据像素点的第二通道值计算相应像素点的第二通道的梯度能量,其中第二通道为绿色通道;根据像素点的第三通道值计算相应像素点的第三通道的梯度能量,其中第三通道为蓝色通道。也可以第一通道为绿色通道,第二通道为红色通道,第三通道为蓝色通道。只需要三个通道分别为红色通道、绿色通道以及蓝色通道即可,本实施例不对三个通道做具体限定。最后对第一通道的梯度能量、第二通道的梯度能量以及第三通道的梯度能量求和,得到所述感兴趣区域纹理图中相应像素点的梯度能量。
在其中一个实施例中,每个通道的通道值计算公式为:通道值=|(相邻的四个像素的通道值的和)/2-2*(当前像素的通道值)|。由于图像的边缘没有相邻的四个像素,因此图像边缘的三个通道值为零。
上述计算每个像素点的梯度能量的方法,通过提取感兴趣区域纹理图,再获取感兴趣区域纹理图中每个像素点的三个通道值,同个通道值,计算所有像素点的梯度能量,能够精确的计算梯度能量,进一步的使之后得到的相邻三角网格的梯度能量更加准确,最终得到最佳纹理映射方案。
在一个实施例中,如图3所示,提供了计算每一种纹理映射方案的总能量方法,包括以下步骤:
步骤S302,根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量。
具体地,每一个三角网格都选择有一个扫描位置的纹理图,对于任意一个三角网格,计算相应图像的法向约束能量以及模糊约束能量作为其三角网格选图能量。根据三角网格选取的扫描位置的纹理图的模糊程度,计算模糊约束能量。其中,图像的模糊程度越大模糊约束能量越高,反之图像的模糊程度越小模糊约束能量越低。根据三角网格在三角网格模型和选取的扫描位置的纹理图中的法向,计算法向约束能量。其中计算法向约束能量时,首先获取三角网格在三角网格模型中的法向量作为第一法向量,获取三角网格在选取的扫描位置的纹理图中的法向量作为第二法向量,将第一法向量与第二法向量的夹角余弦值作为法向约束能量。最终将模糊约束能量与法向约束能量之和,作为相应三角网格的选图能量。
步骤S304,根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量。
具体地,三角网格模型中任意相邻的两个三角网格,首先判断相邻两三角网格是否选取同一扫描位置的纹理图。如果是同一扫描位置的纹理图,则相应两个三角网格的边界能量为零。如果不是同一扫描位置的纹理图,则在相邻两三角网格的公共边上进行等距离采样,得到多个采样点。优选的,最少需要四个采样点。将多个采样点分别映射至相应三角网格选取的扫描位置的纹理图中,并计算同一采样点在两个扫描位置的纹理图中的通道差值绝对值。也就是将采样点分别投影到两个三角网格选取的两个扫描位置的纹理图中,再使用双线性插值计算同一各采样点在两张扫描位置的纹理图中每个通道的差值。将所有采样点的通道差值绝对值相加,得到相应相邻三角网格的边界能量。也即是将三个通道值相加得到像素点的差值,再将所有像素点的差值相加,得到相应相邻三角网格的边界能量。
步骤S306,根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量。
具体地,三角网格模型中任意相邻的两个三角网格,首先判断相邻两三角网格是否选取同一扫描位置的纹理图。如果是同一扫描位置的纹理图,则相应两个三角网格的梯度能量为零。如果不是同一扫描位置的纹理图,则将相邻两三角网格的公共边分别映射至相应三角网格选取的扫描位置的纹理图中,将公共边在两个扫描位置的纹理图中的所有像素点的梯度能量之和作为所有相邻三角网格的梯度能量。也就是公共边分别投影到两个三角网格选取的两个扫描位置的纹理图中,分别计算两个扫描位置的纹理图中的所有像素点的梯度能量,再将两个图像中所有像素点的梯度能量相加,最终得到所有相邻三角网格的梯度能量。
步骤S308,将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
具体地,将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。假设三角网格模型一个存在n个三角形网格,并且在利用三维扫描仪进行三维扫描时,共获取到k个角度的扫描位置的纹理图,也就是k张扫描位置的纹理图。如果每个三角形网格能够在m张扫描位置的纹理图中找到相应的三角形网格图像。那么为每一个三角形网格选取一个扫描位置的纹理图,对于三角网格模型来说总共有m^n种选择方法,也就是说当前三角网格模型共有m^n种纹理映射方案。也就是总共能够得到m^n个总能量。在m^n个总能量中选取总能量最小的一个纹理映射方案作为最佳纹理映射方案。
上述计算每一种纹理映射方案的总能量方法,能够精确的计算得到每一种纹理映射方案的总能两,再通过选取最小值得到最佳纹理映射方案,进一步能够更好的体现出纹理的映射效果。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种纹理映射装置,包括:获取模块100、计算模块200、纹理映射方案划分模块300和最佳纹理映射选取模块400,其中:
获取模块100,用于获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图。
计算模块200,用于计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量。
纹理映射方案划分模块300,用于为三角网格模型中的每一个三角网格选择一个扫描位置的纹理图,得到多种纹理映射方案。
最佳纹理映射选取模块400,用于根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
计算模块包括:感兴趣区域获取单元、通道值获取单元以及梯度能量计算单元。
感兴趣区域获取单元,用于获取所述扫描位置的纹理图中的感兴趣区域纹理图。
通道值获取单元,用于获取所述感兴趣区域纹理图中所有像素点的通道值。
梯度能量计算单元,用于根据像素点的通道值计算相应像素点的梯度能量。
梯度能量计算单元包括:第一通道的梯度能量计算子单元、第二通道的梯度能量子计算单元、第三通道的梯度能量计算子单元以及像素点的梯度能量计算子单元。
第一通道的梯度能量计算子单元,用于根据像素点的第一通道值计算相应像素点的第一通道的梯度能量。
第二通道的梯度能量子计算单元,用于根据像素点的第二通道值计算相应像素点的第二通道的梯度能量。
第三通道的梯度能量计算子单元,用于根据像素点的第三通道值计算相应像素点的第三通道的梯度能量。
像素点的梯度能量计算子单元,用于对第一通道的梯度能量、第二通道的梯度能量以及第三通道的梯度能量求和,得到相应像素点的梯度能量。
最佳纹理映射选取模块包括:选图能量计算单元、边界能量计算单元、梯度能量计算单元以及总能量计算单元。
选图能量计算单元,用于根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量。
边界能量计算单元,用于根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量。
梯度能量计算单元,用于根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量。
总能量计算单元,用于将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
选图能量计算单元包括:糊约束能量计算子单元、法向约束能量计算子单元以及选图能量计算子单元。
糊约束能量计算子单元,用于根据三角网格选取的扫描位置的纹理图的模糊程度,计算模糊约束能量。
法向约束能量计算子单元,用于根据三角网格在三角网格模型和选取的扫描位置的纹理图中的法向,计算法向约束能量。
选图能量计算子单元,用于将模糊约束能量与法向约束能量之和,作为相应三角网格的选图能量。
法向约束能量计算子单元,还用于获取三角网格在三角网格模型中的法向量作为第一法向量;获取三角网格在选取的扫描位置的纹理图中的法向量作为第二法向量;将第一法向量与第二法向量的夹角余弦值作为法向约束能量。
边界能量计算单元包括:第一判断子单元、采样子单元、通道差值绝对值计算子单元以及边界能量计算子单元。
第一判断子单元,用于判断相邻两三角网格是否选取同一扫描位置的纹理图。
采样子单元,用于在相邻两三角网格的公共边上进行等距离采样,得到多个采样点。
通道差值绝对值计算子单元,用于将多个采样点分别映射至相应三角网格选取的扫描位置的纹理图中,并计算同一采样点在两个扫描位置的纹理图中的通道差值绝对值。
边界能量计算子单元,用于将所有采样点的通道差值绝对值相加,得到相应相邻三角网格的边界能量。
梯度能量计算单元包括:第二判断子单元以及梯度能量计算子单元。
第二判断子单元,用于判断相邻两三角网格是否选取同一扫描位置的纹理图。
梯度能量计算子单元,用于将相邻两三角网格的公共边分别映射至相应三角网格选取的扫描位置的纹理图中,将公共边在两个扫描位置的纹理图中的所有像素点的梯度能量之和作为所有相邻三角网格的梯度能量。
最佳纹理映射选取模块,还用于根据解最小能量算法,计算总能量最小的纹理映射方案作为最佳纹理映射方案。
纹理映射装置还包括:颜色差异消除模块。
颜色差异消除模块,用于利用泊松方程消除最佳纹理映射方案中相邻两三角网格公共边上的颜色差异。
关于纹理映射装置的具体限定可以参见上文中对于纹理映射方法的限定,在此不再赘述。上述纹理映射装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种纹理映射方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图。计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量。为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案。根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取所述扫描位置的纹理图中的感兴趣区域纹理图。获取所述感兴趣区域纹理图中所有像素点的通道值。根据像素点的通道值计算相应像素点的梯度能量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量。根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量。根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量。将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图。计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量。为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案。根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取所述扫描位置的纹理图中的感兴趣区域纹理图。获取所述感兴趣区域纹理图中所有像素点的通道值。根据像素点的通道值计算相应像素点的梯度能量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量。根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量。根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量。将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种纹理映射方法,其特征在于,所述方法包括:
获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图;
计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量;
为三角网格模型中的每一个三角网格选取一个扫描位置的纹理图,得到多种纹理映射方案;
根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
2.根据权利要求1所述的方法,其特征在于,所述计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量包括:
获取所述扫描位置的纹理图中的感兴趣区域纹理图;
获取所述感兴趣区域纹理图中所有像素点的通道值;
根据所述像素点的通道值计算相应像素点的梯度能量。
3.根据权利要求2所述的方法,其特征在于,所述通道值包括:第一通道值、第二通道值以及第三通道值;所述根据所述像素点的通道值计算相应像素点的梯度能量包括:
根据像素点的第一通道值计算相应像素点的第一通道的梯度能量;
根据像素点的第二通道值计算相应像素点的第二通道的梯度能量;
根据像素点的第三通道值计算相应像素点的第三通道的梯度能量;
对第一通道的梯度能量、第二通道的梯度能量以及第三通道的梯度能量求和,得到相应像素点的梯度能量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量包括:
根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量;
根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量;
根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量;
将所有三角网格的选图能量、所有相邻三角网格的边界能量以及所有相邻三角网格的梯度能量相加,得到相应纹理映射方案的总能量。
5.根据权利要求4所述的方法,其特征在于,所述根据三角网格模型以及每个扫描位置的纹理图,计算所有三角网格的选图能量包括:
根据三角网格选取的扫描位置的纹理图的模糊程度,计算模糊约束能量;
根据三角网格在三角网格模型和选取的扫描位置的纹理图中的法向,计算法向约束能量;
将模糊约束能量与法向约束能量之和,作为相应三角网格的选图能量。
6.根据权利要求5所述的方法,其特征在于,所述根据三角网格在三角网格模型中以及选取扫描位置的纹理图中的法向,计算得到法向约束能量包括:
获取三角网格在三角网格模型中的法向量作为第一法向量;
获取三角网格在选取的扫描位置的纹理图中的法向量作为第二法向量;
将第一法向量与第二法向量的夹角余弦值作为法向约束能量。
7.根据权利要求4所述的方法,其特征在于,所述根据三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的边界能量包括:
判断相邻两三角网格是否选取同一扫描位置的纹理图;
若不是,则在相邻两三角网格的公共边上进行等距离采样,得到多个采样点;
将多个采样点分别映射至相应三角网格选取的扫描位置的纹理图中,并计算同一采样点在两个扫描位置的纹理图中的通道差值绝对值;
将所有采样点的通道差值绝对值相加,得到相应相邻三角网格的边界能量。
8.根据权利要求4所述的方法,其特征在于,所述根据梯度能量、三角网格模型以及每个扫描位置的纹理图,计算所有相邻三角网格的梯度能量包括:
判断相邻两三角网格是否选取同一扫描位置的纹理图;
若不是,则将相邻两三角网格的公共边分别映射至相应三角网格选取的扫描位置的纹理图中,将公共边在两个扫描位置的纹理图中的所有像素点的梯度能量之和作为所有相邻三角网格的梯度能量。
9.根据权利要求1所述的方法,其特征在于,所述选取总能量最小的纹理映射方案作为最佳纹理映射方案包括:
根据解最小能量算法,计算总能量最小的纹理映射方案作为最佳纹理映射方案。
10.根据权利要求1所述的方法,其特征在于,所述选取总能量最小的纹理映射方案作为最佳纹理映射方案之后包括:
利用泊松方程消除最佳纹理映射方案中相邻两三角网格公共边上的颜色差异。
11.一种纹理映射装置,其特征在于,所述装置包括:
获取模块,用于获取三维扫描数据,并生成三角网格模型以及每个扫描位置的纹理图;
计算模块,用于计算每个扫描位置的纹理图中感兴趣区域每个像素点的梯度能量;
纹理映射方案划分模块,用于为三角网格模型中的每一个三角网格选择一个扫描位置的纹理图,得到多种纹理映射方案;
最佳纹理映射选取模块,用于根据所述梯度能量、三角网格模型以及每个扫描位置的纹理图,计算每一种纹理映射方案的总能量,并选取总能量最小的纹理映射方案作为最佳纹理映射方案。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811158544.5A CN109410302B (zh) | 2018-09-30 | 2018-09-30 | 纹理映射方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811158544.5A CN109410302B (zh) | 2018-09-30 | 2018-09-30 | 纹理映射方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109410302A CN109410302A (zh) | 2019-03-01 |
CN109410302B true CN109410302B (zh) | 2022-12-20 |
Family
ID=65466696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811158544.5A Active CN109410302B (zh) | 2018-09-30 | 2018-09-30 | 纹理映射方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109410302B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859870A (zh) * | 2020-07-17 | 2020-10-30 | 深圳创维-Rgb电子有限公司 | 广告文案添加方法、装置、终端设备和可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5719600A (en) * | 1995-12-12 | 1998-02-17 | Hewlett-Packard Company | Gradient calculation system and method |
US9495790B2 (en) * | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
CN104952075A (zh) * | 2015-06-16 | 2015-09-30 | 浙江大学 | 面向激光扫描三维模型的多图像自动纹理映射方法 |
CN105574922B (zh) * | 2015-12-16 | 2019-04-30 | 浙江大学 | 一种鲁棒的三维模型高质量纹理映射方法 |
US10460503B2 (en) * | 2017-03-01 | 2019-10-29 | Sony Corporation | Texturing of a three-dimensional (3D) model by UV map in-painting |
-
2018
- 2018-09-30 CN CN201811158544.5A patent/CN109410302B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109410302A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109859098B (zh) | 人脸图像融合方法、装置、计算机设备及可读存储介质 | |
CN109829930B (zh) | 人脸图像处理方法、装置、计算机设备及可读存储介质 | |
US8248410B2 (en) | Synthesizing detailed depth maps from images | |
Li et al. | Video super-resolution using an adaptive superpixel-guided auto-regressive model | |
CN114549731A (zh) | 视角图像的生成方法、装置、电子设备及存储介质 | |
CN116310076A (zh) | 基于神经辐射场的三维重建方法、装置、设备及存储介质 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN110580691A (zh) | 图像的动态处理方法、装置、设备及计算机可读存储介质 | |
CN109448088B (zh) | 渲染立体图形线框的方法、装置、计算机设备和存储介质 | |
CN112243518A (zh) | 获取深度图的方法、装置及计算机存储介质 | |
CN112907451A (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN113706583A (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN108510558B (zh) | 点云数据的压缩方法、装置及终端 | |
CN109410302B (zh) | 纹理映射方法、装置、计算机设备和存储介质 | |
CN116862813B (zh) | 一种用于扩展现实技术的颜色校准方法和系统 | |
WO2024002064A1 (zh) | 三维模型构建方法、装置、电子设备及存储介质 | |
CN106327449B (zh) | 一种图像修复方法、装置和计算设备 | |
CN112102169A (zh) | 一种红外图像拼接方法、装置和存储介质 | |
CN107146193A (zh) | 一种应用于图像处理的基于双显卡的gpu并行计算方法 | |
CN113012302B (zh) | 三维全景图生成方法、装置、计算机设备和存储介质 | |
JP2019207450A (ja) | ボリュームレンダリング装置 | |
CN111028323B (zh) | 地图中水波纹的模拟方法、装置、设备和可读存储介质 | |
JP6443574B1 (ja) | レイキャスティングプログラム、探索制御データ、探索制御データ生成方法、レイキャスティング装置 | |
CN117557710B (zh) | 一种纹理渲染方法、装置、终端设备及存储介质 | |
CN113223149B (zh) | 三维模型纹理生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |