一種多視角紋理映射的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)與流程
1.本發(fā)明涉及彩三維建模領(lǐng)域,具體地,涉及一種多視角紋理映射的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
2.紋理映射是指在計(jì)算機(jī)對(duì)三維模型的渲染流程中,將紋理圖片上的相關(guān)貼片對(duì)應(yīng)添加到三維模型表面的過程。具體地,通過建立物體三維模型的三維與其紋理圖中像素之間的對(duì)應(yīng)關(guān)系,在構(gòu)建物體的三維模型后,在紋理圖中的對(duì)應(yīng)點(diǎn)到真實(shí)的彩信息以實(shí)現(xiàn)紋理映射。三維模型與紋理圖之間的對(duì)應(yīng)映射關(guān)系是三維世界坐標(biāo)系到二維圖像像素坐標(biāo)系的轉(zhuǎn)換關(guān)系,可用相機(jī)模型表示。例如,針孔相機(jī)模型能夠?qū)?shí)際的成像過程進(jìn)行近似表示,反映出三維空間坐標(biāo)與二維圖像像素坐標(biāo)之間的映射關(guān)系,具體的映射關(guān)系如式1所示:
[0003][0004]
式中,zc表示所述空間點(diǎn)在三維相機(jī)坐標(biāo)系下的深度,u,v為圖像的像素坐標(biāo),式中f為相機(jī)投影中心到像平面的距離,u0,v0為圖像中心到圖像左上角的距離,為三維世界坐標(biāo)系到三維相機(jī)的旋轉(zhuǎn)矩陣,為三維世界坐標(biāo)系到三維相機(jī)坐標(biāo)系的平移矩陣,k為包含了相機(jī)像素大小、相機(jī)焦距、像面尺寸等代表相機(jī)自身特性的參數(shù)矩陣,又稱為相機(jī)內(nèi)參矩陣,[r|t]表示由三維世界坐標(biāo)系到三維相機(jī)坐標(biāo)系的旋轉(zhuǎn)平移矩陣,代表著相機(jī)的姿態(tài),又被稱為相機(jī)的外參矩陣,(xw,yw,zw,1)
t
表示一空間點(diǎn)在三維世界坐標(biāo)系下的齊次坐標(biāo)。
[0005]
然而,單張紋理圖像所攜帶的信息很少,只能覆蓋被測(cè)物體的一個(gè)視角,即只能計(jì)算物體在某一個(gè)視角下的映射關(guān)系,通過選取不同視角下的紋理圖進(jìn)行紋理映射,又被稱作與視點(diǎn)相關(guān)的紋理映射方法。不同視角拍攝下的物體由于環(huán)境光照條件的變化,會(huì)發(fā)生物體表面的非完全漫反射,導(dǎo)致拍攝的紋理圖之間存在明顯的彩差異,使得紋理映射后的三維模型表面產(chǎn)生彩分塊以及紋理接縫現(xiàn)象(如圖1~圖3所示),極大地降低了模型的彩保真度。實(shí)際應(yīng)用中解決模型表面的彩分塊及紋理接縫問題一般通過在給三維物體拍攝紋理圖時(shí),將物體置于一個(gè)能夠提供均勻光照條件的光箱,通過在封閉條件下,額外補(bǔ)充均勻光照,使得各視角下的物體照明條件盡可能一致,從而獲得亮度、明暗度、對(duì)比度等
接近的紋理圖,或者通過提高硬件成本,設(shè)計(jì)一種機(jī)械結(jié)構(gòu),能同時(shí)支撐多個(gè)相機(jī)以及照明光源在不同角度,在同一時(shí)刻拍攝紋理圖,來(lái)盡可能保證相似的照明條件,上述方法對(duì)紋理圖的拍攝環(huán)境要求較高,導(dǎo)致硬件成本過高,且系統(tǒng)整體設(shè)備占用空間大,不利于設(shè)備小型化和操作簡(jiǎn)單化。
技術(shù)實(shí)現(xiàn)要素:
[0006]
基于上述現(xiàn)狀,本發(fā)明的主要目的在于降低對(duì)多視角紋理圖的采集光線照明的要求,提供一種消除將不同光照條件下拍攝的紋理圖映射至三維模型而產(chǎn)生的彩分塊和接縫現(xiàn)象影響的多視角紋理映射的方法。
[0007]
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0008]
一種多視角紋理映射的方法,包括步驟:
[0009]
s100,生成第一紋理三維模型;其中,所述第一紋理三維模型至少包括相鄰的第一三角面片和第二三角面片;所述第一三角面片中的紋理塊來(lái)自于第一紋理圖,所述第二三角面片中的紋理塊來(lái)自于第二紋理圖,所述第一紋理圖和所述第二紋理圖分別在不同的視角拍攝得到,所述第一三角面片中的紋理塊與所述第二三角面片中的紋理塊的分界處形成接縫;所述第一三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊,所述第二三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊;
[0010]
s200,分別計(jì)算所述第一三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以及所述第二三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;
[0011]
s300,針對(duì)所述第一紋理圖和所述第二紋理圖中的非頂點(diǎn)映射點(diǎn),通過如下方式計(jì)算其紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置非頂點(diǎn)紋理的顏差異;
[0012]
非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值等于第一頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第三系數(shù)的乘積之和,所述第一系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第二系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第三系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;
[0013]
s400,在所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異。
[0014]
優(yōu)選地,所述s400具體包括:
[0015]
將所述接縫位置上的點(diǎn)的紋理值替換為所述第一紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值與所述第二紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值的均值。
[0016]
優(yōu)選地,所述s400后還包括步驟s500,
[0017]
s500,根據(jù)所述接縫位置的紋理值和非接縫位置的紋理值,計(jì)算出所述非接縫位置的紋理值的更新值,以進(jìn)一步消除所述接縫處位置預(yù)設(shè)范圍內(nèi)的顏差異。
[0018]
優(yōu)選地,所述步驟s500具體包括:
[0019]
分別計(jì)算所述第一三角面片和所述第二三角面片中的紋理值的梯度場(chǎng);
[0020]
對(duì)所述梯度場(chǎng)求導(dǎo),得到對(duì)應(yīng)的散度矩陣b;
[0021]
根據(jù)所述散度矩陣b計(jì)算出所述非接縫位置的紋理值的更新值x,其中ax=b,a為稀疏矩陣,對(duì)應(yīng)所述非接縫位置的紋理值的更新值對(duì)應(yīng)的所述三角面片的位置。
[0022]
優(yōu)選地,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:
[0023]
所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。
[0024]
優(yōu)選地,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:
[0025]
所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,且所有同一三角面片上的相鄰所述頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值的差異之和最小,
[0026]
其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。
[0027]
本發(fā)明還提供了一種紋理映射的裝置,包括,第一紋理三維模型生成模塊,生成第一紋理三維模型;其中,所述第一紋理三維模型至少包括相鄰的第一三角面片和第二三角面片;所述第一三角面片中的紋理塊來(lái)自于第一紋理圖,所述第二三角面片中的紋理塊來(lái)自于第二紋理圖,所述第一紋理圖和所述第二紋理圖分別在不同的視角拍攝得到,所述第一三角面片中的紋理塊與所述第二三角面片中的紋理塊的分界處形成接縫;所述第一三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊,所述第二三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊;
[0028]
頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,分別計(jì)算所述第一三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以及所述第二三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;
[0029]
非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,針對(duì)所述第一紋理圖和所述第二紋理圖中的非頂點(diǎn)映射點(diǎn),通過如下方式計(jì)算其紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置非頂點(diǎn)紋理的顏差異;
[0030]
非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值等于第一頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第三系數(shù)的乘積之和,所述第一系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第二系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積
與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第三系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;
[0031]
接縫消除模塊,所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異。
[0032]
優(yōu)選地,所述接縫消除模塊包括:
[0033]
均值計(jì)算單元,用于將所述接縫位置上的點(diǎn)的紋理值替換為所述第一紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值與所述第二紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值的均值。
[0034]
優(yōu)選地,還包括非接縫位置的紋理值的更新值計(jì)算模塊,在所述均值計(jì)算單元之后工作,用于,
[0035]
根據(jù)所述接縫位置的紋理值和非接縫位置的紋理值,計(jì)算出所述非接縫位置的紋理值的更新值,以進(jìn)一步消除所述接縫處位置預(yù)設(shè)范圍內(nèi)的顏差異。
[0036]
優(yōu)選地,所述非接縫位置的紋理值的更新值計(jì)算模塊按照如下方式工作:
[0037]
分別計(jì)算所述第一三角面片和所述第二三角面片中的紋理值的梯度場(chǎng);
[0038]
對(duì)所述梯度場(chǎng)求導(dǎo),得到對(duì)應(yīng)的散度矩陣b;
[0039]
根據(jù)所述散度矩陣b計(jì)算出所述非接縫位置的紋理值的更新值x,其中ax=b,a為稀疏矩陣,對(duì)應(yīng)所述非接縫位置的紋理值的更新值對(duì)應(yīng)的所述三角面片的位置。
[0040]
優(yōu)選地,所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:
[0041]
所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。
[0042]
優(yōu)選地,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:
[0043]
所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,且所有同一三角面片上的相鄰所述頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值的差異之和最小,
[0044]
其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。
[0045]
本發(fā)明還提供了一種紋理映射的系統(tǒng),采用所述的方法進(jìn)行紋理映射,或者,包括所述的紋理映射裝置。
[0046]
本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被執(zhí)行時(shí)能夠?qū)崿F(xiàn)所述的方法。
[0047]
本發(fā)明實(shí)施例提供了一種多視角紋理映射的方法,通過計(jì)算第一紋理三維模型中第一三角面片和第二三角面片中頂點(diǎn)的紋理值的補(bǔ)償值并對(duì)其進(jìn)行補(bǔ)償,以消除第一三角面片和所述第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;通過頂點(diǎn)的補(bǔ)償值計(jì)算非頂點(diǎn)的補(bǔ)償值,以消除第一三角面片和第二三角面片接縫位置紋理的顏差異,同時(shí)通過頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值,計(jì)算量較小;并且通過進(jìn)一步減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理
的顏差異以達(dá)到較好的紋理映射效果,本實(shí)施例中的多視角紋理映射的方法,降低了對(duì)多視角紋理圖采集的硬件環(huán)境要求,并消除了紋理三維模型因?qū)?yīng)不同視角的紋理圖,不同紋理圖之間具有顏差異,而產(chǎn)生的紋理三維模型表面的彩分塊和紋理接縫現(xiàn)象。
[0048]
本發(fā)明的其他有益效果,將在具體實(shí)施方式中通過具體技術(shù)特征和技術(shù)方案的介紹來(lái)闡述,本領(lǐng)域技術(shù)人員通過這些技術(shù)特征和技術(shù)方案的介紹,應(yīng)能理解所述技術(shù)特征和技術(shù)方案帶來(lái)的有益技術(shù)效果。
附圖說明
[0049]
以下將參照附圖對(duì)本發(fā)明的一種多視角紋理映射的方法的優(yōu)選實(shí)施方式進(jìn)行描述。圖中:
[0050]
圖1~圖3為使用傳統(tǒng)方法進(jìn)行紋理映射的效果示意圖;
[0051]
圖4為本發(fā)明的一種優(yōu)選實(shí)施方式中一種多視角紋理映射的方法流程圖;
[0052]
圖5為本發(fā)明的一種優(yōu)選實(shí)施方式中第一紋理三維模型示意圖;
[0053]
圖6為本發(fā)明的一種優(yōu)選實(shí)施方式中第一紋理圖示意圖;
[0054]
圖7為本發(fā)明的一種優(yōu)選實(shí)施方式中第二紋理圖示意圖;
[0055]
圖8為本發(fā)明的一種優(yōu)選實(shí)施方式中非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算示意圖;
[0056]
圖9為本發(fā)明的另一種優(yōu)選實(shí)施方式中非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算示意圖;
[0057]
圖10~圖11為使用傳統(tǒng)方法進(jìn)行紋理映射的效果示意圖;
[0058]
圖12~圖13為使用本發(fā)明的一種多視角紋理映射的方法的效果示意圖;
[0059]
圖14為使用傳統(tǒng)方法進(jìn)行紋理映射的效果示意圖;
[0060]
圖15為僅執(zhí)行本發(fā)明的一種多視角紋理映射的方法的步驟s100~s200后的效果示意圖;
[0061]
圖16為執(zhí)行本發(fā)明的一種多視角紋理映射的方法的步驟s100~s400后的效果示意圖;
[0062]
圖17為圖14對(duì)應(yīng)的局部放大圖;
[0063]
圖18為圖15對(duì)應(yīng)的局部放大圖;
[0064]
圖19為圖16對(duì)應(yīng)的局部放大圖;
[0065]
圖20~圖22為基于泊松方程的圖像編輯方法的原理示意圖;
[0066]
圖23為使用傳統(tǒng)方法進(jìn)行紋理映射的效果示意圖;
[0067]
圖24為僅執(zhí)行本發(fā)明的一種多視角紋理映射的方法的步驟s300~s400后的效果示意圖;
[0068]
圖25為執(zhí)行本發(fā)明的一種多視角紋理映射的方法的步驟s100~s400后的效果示意圖。
具體實(shí)施方式
[0069]
以下基于實(shí)施例對(duì)本發(fā)明進(jìn)行描述,但是本發(fā)明并不僅僅限于這些實(shí)施例。在下文對(duì)本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分,為了避免混淆本發(fā)明的實(shí)質(zhì),
公知的方法、過程、流程、元件并沒有詳細(xì)敘述。
[0070]
此外,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,在此提供的附圖都是為了說明的目的,并且附圖不一定是按比例繪制的。
[0071]
除非上下文明確要求,否則整個(gè)說明書和權(quán)利要求書中的“包括”、“包含”等類似詞語(yǔ)應(yīng)當(dāng)解釋為包含的含義而不是排他或窮舉的含義;也就是說,是“包括但不限于”的含義。
[0072]
在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本發(fā)明的描述中,除非另有說明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。
[0073]
如圖4所示,本實(shí)施例中公開了一種多視角紋理映射的方法,包括步驟s100至s400。
[0074]
s100,生成第一紋理三維模型。如圖5~圖7所示,圖5為第一紋理三維模型的示意圖,包括第一三角面片abc、第二三角面片bcd,圖6為第一紋理圖示意圖,圖7為第二紋理圖示意圖,第一紋理圖和第二紋理圖分別在不同的視角拍攝得到。第一三角面片abc在第一紋理圖中的頂點(diǎn)映射點(diǎn)為a1b1c1,在第二紋理圖中的頂點(diǎn)映射點(diǎn)為a2b2c2,第二三角面片bcd在第一紋理圖中的頂點(diǎn)映射點(diǎn)為b1c1d1,在第二紋理圖中的頂點(diǎn)映射點(diǎn)為b2c2d2,第一三角面片abc中的紋理塊來(lái)自于第一紋理圖a1b1c1,第二三角面片bcd中的紋理塊來(lái)自于第二紋理圖b2c2d2,紋理值可以是rgb(紅綠藍(lán))分量信息或rgba(紅綠藍(lán)和alpha的彩空間)信息,還有很多類型的信息都可以儲(chǔ)存在紋理值中,在此不做限定。實(shí)際中由于第一紋理圖和第二紋理圖拍攝的角度不同,因此第一紋理三維模型中來(lái)自不同紋理圖的紋理塊存在彩分塊及接縫現(xiàn)象(如圖5中的bc所示)。
[0075]
s200,分別計(jì)算第一三角面片abc的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值并對(duì)其進(jìn)行補(bǔ)償,以及第二三角面片bcd的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值并對(duì)其進(jìn)行補(bǔ)償,以減小第一紋理三維模型中所述第一三角面片和第二三角面片接縫位置中頂點(diǎn)紋理的顏差異。
[0076]
若對(duì)非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值也采集和頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值類似的方法,則計(jì)算量太大,數(shù)據(jù)處理效率太低,由于像素值是均勻分布的,因此可以根據(jù)兩點(diǎn)間的距離大小定義頂點(diǎn)映射點(diǎn)對(duì)于非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值的影響。本實(shí)施例中,對(duì)于非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值使用步驟s300中的方法進(jìn)行計(jì)算。
[0077]
s300,針對(duì)第一紋理圖和第二紋理圖中的非頂點(diǎn)映射點(diǎn),分別通過如下方式計(jì)算其補(bǔ)償值并進(jìn)行補(bǔ)償,以減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置紋理的顏差異。如圖8所示,在一個(gè)實(shí)施例中非頂點(diǎn)映射點(diǎn)p1位于頂點(diǎn)映射點(diǎn)三角形a1b1c1的內(nèi)部,其補(bǔ)償值g
p1
等于第一頂點(diǎn)映射點(diǎn)a1的補(bǔ)償值g1與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)b1的補(bǔ)償值g2與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)c1的補(bǔ)償值g3與第三系數(shù)的乘積之和,第一系數(shù)等于所述非頂點(diǎn)映射點(diǎn)p1、所述第二頂點(diǎn)映射點(diǎn)b1、所述第三頂點(diǎn)映射點(diǎn)c1組成的三角形的面積s1與所述頂點(diǎn)映射點(diǎn)組成的三角形a1b1c的面積s的比值;第二系數(shù)等于所述非頂點(diǎn)映射點(diǎn)p1、所述第一頂點(diǎn)映射點(diǎn)a1、所述第三頂點(diǎn)映射點(diǎn)c1組成的三角形的面積s2與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積s的比值;所述第三系數(shù)等于所述非頂點(diǎn)映射點(diǎn)p1、所述第一頂點(diǎn)映射點(diǎn)a1、所述第二頂點(diǎn)映射點(diǎn)b1組成的三角形的面積s3與
所述頂點(diǎn)映射點(diǎn)組成的三角形的面積s的比值,即
[0078][0079]
如圖9所示,若非頂點(diǎn)映射點(diǎn)p2位于頂點(diǎn)映射點(diǎn)三角形a1b1c1的邊緣,如b1c1上,則其值為
[0080][0081]
通過上述方法對(duì)非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算并對(duì)其進(jìn)行補(bǔ)償,計(jì)算量較低,數(shù)據(jù)處理速度更快,且達(dá)到了較好地消除了紋理塊之間和接縫之間的顏差異。
[0082]
本實(shí)施例中還包括步驟s400,在第一三角面片和第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置紋理的顏差異。
[0083]
本發(fā)明實(shí)施例的技術(shù)效果如圖10~圖13所示,圖10~圖11為采用傳統(tǒng)的方法進(jìn)行紋理映射的效果示意圖,可以看出存在明顯的顏分塊和接縫現(xiàn)象,圖12~圖13為采用本發(fā)明實(shí)施例中的方法進(jìn)行多視角紋理映射的效果示意圖,可以看出映射后的模型真實(shí)感強(qiáng),且沒有顏分塊和接縫現(xiàn)象。
[0084]
本發(fā)明實(shí)施例提供了一種多視角紋理映射的方法,通過計(jì)算第一紋理三維模型中第一三角面片和第二三角面片中頂點(diǎn)的紋理值的補(bǔ)償值并對(duì)其進(jìn)行補(bǔ)償,以消除第一三角面片和所述第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;通過頂點(diǎn)的補(bǔ)償值計(jì)算非頂點(diǎn)的補(bǔ)償值,以消除第一三角面片和第二三角面片接縫位置紋理的顏差異,同時(shí)通過頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值,計(jì)算量較小;并且通過進(jìn)一步減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異以達(dá)到較好的紋理映射效果。本實(shí)施例中的多視角紋理映射的方法,降低了對(duì)多視角紋理圖采集的硬件環(huán)境要求,無(wú)需光箱、補(bǔ)充光源等額外的照明設(shè)備,即使僅使用手機(jī)對(duì)被測(cè)物體進(jìn)行多視角的紋理圖采集,也能達(dá)到良好的紋理映射的效果。
[0085]
需要做出說明的是,本實(shí)施例僅為基于原理做出的一種示例性說明,實(shí)際三維模型中包括多個(gè)第一三角面片和第二三角面片,以及多條接縫,以一個(gè)實(shí)際的紋理映射三維模型為例,如圖14~19所示,圖14~圖16對(duì)應(yīng)的三維結(jié)構(gòu)模型中共有251342個(gè)頂點(diǎn),404931個(gè)三角面片,實(shí)驗(yàn)中拍攝了13個(gè)不同視角下的紋理圖,第一紋理三維模型中,兩兩相鄰的紋理塊之間若其紋理值分別來(lái)自第一紋理圖和第二紋理圖,對(duì)應(yīng)第一紋理圖的三角面片為第一三角面片,對(duì)應(yīng)第二紋理圖的三角面片為第二三角面片,由于第一紋理圖和第二紋理圖拍攝環(huán)境、光照條件等不盡相同,則會(huì)產(chǎn)生明顯的顏分塊和接縫現(xiàn)象,如圖14所示,圖17為圖14標(biāo)號(hào)10部分的局部放大圖,可以看出明顯的接縫和分塊,執(zhí)行步驟s200和s300后,效果圖如圖15和圖18所示,圖18為圖15中標(biāo)號(hào)11部分的局部放大圖,可以看出顏分塊現(xiàn)象基本消除,接縫處的顏差異明顯降低,但是在細(xì)微處由于顏的不完全一致,仍舊可能會(huì)產(chǎn)生看的見的接縫。圖16和圖19為繼續(xù)執(zhí)行本實(shí)施例s400后的效果圖,圖19為圖16中12部分的局部放大圖,可以看出已經(jīng)基本消除了接縫和顏分塊現(xiàn)象的影響,更加具有真實(shí)感。
[0086]
在一些實(shí)施例中,s400具體包括:將所述接縫位置上的點(diǎn)的紋理值替換為所述第一紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值與所述第二紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值的均值,以進(jìn)一步消除接縫位置紋理的顏差異。具體地,分別在第一紋理圖和第二紋理圖中出接
縫位置對(duì)應(yīng)的映射點(diǎn)的紋理值f1和f2,其中f1和f2為經(jīng)過補(bǔ)償值補(bǔ)償之后的紋理值,并將紋理值f1和f2的均值作為接縫位置紋理值。
[0087]
在一些實(shí)施例中,所述s400后還包括步驟s500,根據(jù)所述接縫位置的紋理值和非接縫位置的紋理值,計(jì)算出所述非接縫位置的紋理值的更新值,以進(jìn)一步消除所述接縫處位置預(yù)設(shè)范圍內(nèi)的顏差異。
[0088]
本實(shí)施例中利用圖像融合的原理,以進(jìn)一步消除接縫現(xiàn)象。在圖像融合算法中,要用一個(gè)目標(biāo)區(qū)域的圖像內(nèi)容去覆蓋到原始圖像中的特定區(qū)域并通過算法處理,最終形成平滑銜接。本實(shí)施例中采用基于泊松方程的圖像編輯方法進(jìn)行接縫消除,總體原理如下:如圖20所示,s代表原始的圖像區(qū)域,ω代表著原始圖像中被覆蓋的區(qū)域,為覆蓋區(qū)域的邊界,f為覆蓋區(qū)域內(nèi)的圖像數(shù)據(jù)值,f*為原始圖像中其他區(qū)域內(nèi)的圖像數(shù)據(jù)值。為了保證平滑過渡,需要保證區(qū)域內(nèi)有覆蓋區(qū)域的邊界數(shù)據(jù)值和非覆蓋區(qū)域邊界對(duì)應(yīng)的數(shù)據(jù)值相同,即:
[0089][0090]
其中,p代表邊界處的點(diǎn)。同時(shí)為了使圖像能夠自然過渡,需要保證覆蓋區(qū)域內(nèi)的變化具有平滑性,即需要使得覆蓋區(qū)域內(nèi)的梯度場(chǎng)變化最為平緩,即覆蓋區(qū)域內(nèi)梯度和最小。本方法通過引入指導(dǎo)梯度場(chǎng)該指導(dǎo)梯度場(chǎng)是由要填充至目標(biāo)區(qū)域的圖像(圖22)所決定的,圖22為要填充至目標(biāo)區(qū)域的圖像,圖21為要填充至目標(biāo)區(qū)域的圖像的梯度場(chǎng)。同時(shí)為了保證填充圖像與原始圖像的無(wú)縫銜接并且與原始圖像有相同的輪廓,需要使得融合后的圖像與原始圖像有著最相似的梯度信息,即滿足以下條件:
[0091][0092]
其中
△
f代表融合后的散度值,代表對(duì)指導(dǎo)梯度場(chǎng)求導(dǎo)。由此,便可以通過求解泊松方程,重新計(jì)算融合區(qū)域的每一點(diǎn)的像素值,得到無(wú)縫融合后的圖像,從而實(shí)現(xiàn)邊界處的自然過渡,最終獲得更具真實(shí)感的紋理模型。
[0093]
具體地,s600包括:通過差分的方式計(jì)算接縫處三維坐標(biāo)(即三維模型上的點(diǎn))紋理值的梯度場(chǎng)計(jì)算非接縫處的三維坐標(biāo)(即三維模型上的點(diǎn))的紋理值的梯度場(chǎng)梯度場(chǎng)與梯度場(chǎng)組成梯度場(chǎng)對(duì)所述梯度場(chǎng)求導(dǎo),得到對(duì)應(yīng)的散度矩陣b;根據(jù)所述散度矩陣b計(jì)算出所述非接縫位置的紋理值的更新值x,其中ax=b,a為稀疏矩陣對(duì)應(yīng)所述非接縫位置的紋理值的更新值對(duì)應(yīng)的所述三角面片中的位置。基于泊松圖像融合的紋理接縫消除方法是通過在局部區(qū)域進(jìn)行紋理優(yōu)化,能夠有效消除紋理接縫現(xiàn)象,實(shí)現(xiàn)不同區(qū)域邊界處的彩自然過渡,卻無(wú)法在整體上消除彩分塊現(xiàn)象,因此本實(shí)施例中先通過步驟s200和步驟s300進(jìn)行整體上的彩分塊消除,再利用泊松圖像融合的方法對(duì)接縫位置的顏差異進(jìn)行進(jìn)一步消除,獲得了顏均勻且沒有明顯接縫的具有真實(shí)感的紋理彩三維模型。
[0094]
在一些實(shí)施例中,計(jì)算頂點(diǎn)紋理值的補(bǔ)償值的具體方法如下:使得所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與所述三角面片頂點(diǎn)在第二紋理圖中利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。具體地,可以用第一損失函數(shù)進(jìn)行計(jì)算,第一損失
函數(shù)為:
[0095][0096]
其中,argmin表示使目標(biāo)函數(shù)取最小值時(shí)的變量值,具體地,v是三角面片頂點(diǎn)的集合;v1和v2頂點(diǎn)分別在第一紋理圖和第二紋理圖上的映射點(diǎn);vi和vj對(duì)應(yīng)同一紋理圖的三角面片的相鄰頂點(diǎn);是所述頂點(diǎn)映射到第二紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值;是所述頂點(diǎn)映射到第一紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值;是第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值;是第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值。
[0097]
在另一些實(shí)施例中,計(jì)算頂點(diǎn)紋理值的補(bǔ)償值的具體方法如下:所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和,及對(duì)應(yīng)同一三角面片上的相鄰所述頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值的差異之和最小,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與所述三角面片頂點(diǎn)在第二紋理圖中利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差,具體地,可以用第二損失函數(shù)進(jìn)行計(jì)算,第二損失函數(shù)為:
[0098][0099]
其中,argmin表示使目標(biāo)函數(shù)取最小值時(shí)的變量值,因?yàn)閷?duì)應(yīng)同一紋理圖的紋理塊由同一張圖片映射而來(lái),拍攝條件一致,彩也一致,故其相鄰頂點(diǎn)的顏補(bǔ)償值不會(huì)差別很大。具體地,v是三角面片頂點(diǎn)的集合;v1和v2分別為頂點(diǎn)在第一紋理圖和第二紋理圖上的映射點(diǎn);vi和vj對(duì)應(yīng)同一紋理圖的三角面片相鄰頂點(diǎn);是所述頂點(diǎn)映射到第二紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值;是所述頂點(diǎn)映射到第一紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值;是第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值;是第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值;是對(duì)應(yīng)同一紋理圖的三角面片的相鄰頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值;λ是顏一致性調(diào)整量和邊界彩值調(diào)整量的比例系數(shù),λ可以根據(jù)紋理圖中紋理的特點(diǎn)和三維模型的結(jié)構(gòu)特點(diǎn)等相關(guān)參數(shù)進(jìn)行調(diào)整,以保證第一紋理模型中對(duì)應(yīng)的不同紋理圖的三角面片之間的顏值盡可能相似,本實(shí)施例中λ取值為1。其中,用于使頂點(diǎn)映射點(diǎn)補(bǔ)償后的紋理值與原始的第一紋理圖和第二紋理圖對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值盡可能相似,用于使得對(duì)應(yīng)同一紋理圖的三角面片的相鄰頂點(diǎn)映射點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值也近似。
[0100]
根據(jù)第二損失函數(shù),計(jì)算頂點(diǎn)補(bǔ)償值的方法如下:將上述損失函數(shù)改寫為矩陣的形式:
[0101][0102]
式中,g代表補(bǔ)償值,f等于(f
v2-f
v1
),是所述頂點(diǎn)映射到第二紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值,是所述頂點(diǎn)映射到第一紋理圖的對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值,a、c是稀疏矩陣,其值是
±
1,用于從g中提取對(duì)應(yīng)的補(bǔ)償值,若其值為1代表g對(duì)應(yīng)的為第一紋理
圖中的頂點(diǎn)補(bǔ)償值,若其值為-1對(duì)應(yīng)的為第二紋理圖中的頂點(diǎn)補(bǔ)償值。a
t
a+c
t
c是稀疏對(duì)稱半正定矩陣,故式1大于0,對(duì)式1求導(dǎo),并求解導(dǎo)數(shù)的零值點(diǎn)得到的g就是最終所要求解的補(bǔ)償值。
[0103]
求導(dǎo)結(jié)果如下:
[0104]
(a
t
a+c
t
c)g=a
tf???????????
(式3);
[0105]
可知以上式3為ax=b的形式,因此用eigen庫(kù)求解式3,得到頂點(diǎn)補(bǔ)償值g,即得到了第一紋理圖和第二紋理圖中頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值。
[0106]
圖23~圖25為另一組實(shí)施例中的效果對(duì)比示意圖,人臉三維結(jié)構(gòu)模型中共有219901個(gè)頂點(diǎn),387244個(gè)三角面片,實(shí)驗(yàn)中拍攝了12個(gè)不同視角下的紋理圖,圖23為未使用本實(shí)施中的方法進(jìn)行紋理映射的效果示意圖,可以看出存在明顯的顏分塊和紋理接縫。圖24為未執(zhí)行步驟s200和s300對(duì)紋理值進(jìn)行補(bǔ)償,而直接執(zhí)行步驟s400的效果示意圖,可以看出雖然接縫處的差異降低,但仍存在彩分塊現(xiàn)象。圖25為使用本實(shí)施例中的方法進(jìn)行多視角紋理映射的效果示意圖,可以看出不僅邊界處的紋理接縫得到了很好的消除,并且沒有彩分塊現(xiàn)象,整體彩過渡自然,具有較強(qiáng)的真實(shí)感。
[0107]
本發(fā)明還提供了一種紋理映射的裝置,包括,第一紋理三維模型生成模塊,生成第一紋理三維模型;其中,第一紋理三維模型至少包括相鄰的第一三角面片和第二三角面片;第一三角面片中的紋理塊來(lái)自于第一紋理圖,第二三角面片中的紋理塊來(lái)自于第二紋理圖,第一紋理圖和第二紋理圖分別在不同的視角拍攝得到,第一三角面片中的紋理塊與第二三角面片中的紋理塊的分界處形成接縫;第一三角面片在第一紋理圖和第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊,第二三角面片在第一紋理圖和第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊;
[0108]
頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,分別計(jì)算第一三角面片的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以及第二三角面片的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;
[0109]
非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,針對(duì)第一紋理圖和第二紋理圖中的非頂點(diǎn)映射點(diǎn),通過如下方式計(jì)算其紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置非頂點(diǎn)紋理的顏差異;
[0110]
非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值等于第一頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第三系數(shù)的乘積之和,第一系數(shù)等于非頂點(diǎn)映射點(diǎn)、第二頂點(diǎn)映射點(diǎn)、第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;第二系數(shù)等于非頂點(diǎn)映射點(diǎn)、第一頂點(diǎn)映射點(diǎn)、第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;第三系數(shù)等于非頂點(diǎn)映射點(diǎn)、第一頂點(diǎn)映射點(diǎn)、第二頂點(diǎn)映射點(diǎn)組成的三角形的面積與頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;
[0111]
接縫消除模塊,第一三角面片和第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置紋理的顏差異。
[0112]
本發(fā)明還提供了一種紋理映射的系統(tǒng),采用上述的方法進(jìn)行紋理映射,或者,包括
上述的紋理映射裝置。
[0113]
此外,本發(fā)明還提供了一種用于多視角紋理映射的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如芯片、光盤等,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有執(zhí)行程序,該執(zhí)行程序被執(zhí)行時(shí)實(shí)現(xiàn)如上述任一項(xiàng)所述的控制方法。
[0114]
需要說明的是,本公開的實(shí)施例所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并不限定于上述所給實(shí)施例,例如還可以為電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子可以包括但不限于:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本公開的實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0115]
本領(lǐng)域的技術(shù)人員能夠理解的是,在不沖突的前提下,上述各優(yōu)選方案可以自由地組合、疊加。其中,附圖中的流程圖和框圖,圖示了按照本公開各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生,例如,兩個(gè)接連表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。本文中對(duì)于各步驟的編號(hào)僅為了方便說明和引用,并不用于限定前后順序,具體的執(zhí)行順序是由技術(shù)本身確定的,本領(lǐng)域技術(shù)人員可以根據(jù)技術(shù)本身確定各種允許的、合理的順序。
[0116]
需要說明的是,本發(fā)明中采用步驟編號(hào)(字母或數(shù)字編號(hào))來(lái)指代某些具體的方法步驟,僅僅是出于描述方便和簡(jiǎn)潔的目的,而絕不是用字母或數(shù)字來(lái)限制這些方法步驟的順序。本領(lǐng)域的技術(shù)人員能夠明了,相關(guān)方法步驟的順序,應(yīng)由技術(shù)本身決定,不應(yīng)因步驟編號(hào)的存在而被不適當(dāng)?shù)叵拗疲绢I(lǐng)域技術(shù)人員可以根據(jù)技術(shù)本身確定各種允許的、合理的步驟順序。
[0117]
本領(lǐng)域的技術(shù)人員能夠理解的是,在不沖突的前提下,上述各優(yōu)選方案可以自由地組合、疊加。
[0118]
應(yīng)當(dāng)理解,上述的實(shí)施方式僅是示例性的,而非限制性的,在不偏離本發(fā)明的基本原理的情況下,本領(lǐng)域的技術(shù)人員可以針對(duì)上述細(xì)節(jié)做出的各種明顯的或等同的修改或替換,都將包含于本發(fā)明的權(quán)利要求范圍內(nèi)。
技術(shù)特征:
1.一種多視角紋理映射的方法,其特征在于,包括步驟:s100,生成第一紋理三維模型;其中,所述第一紋理三維模型至少包括相鄰的第一三角面片和第二三角面片;所述第一三角面片中的紋理塊來(lái)自于第一紋理圖,所述第二三角面片中的紋理塊來(lái)自于第二紋理圖,所述第一紋理圖和所述第二紋理圖分別在不同的視角拍攝得到,所述第一三角面片中的紋理塊與所述第二三角面片中的紋理塊的分界處形成接縫;所述第一三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊,所述第二三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊;s200,分別計(jì)算第一三角面片的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以及第二三角面片的頂點(diǎn)在第一紋理圖和第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小第一紋理三維模型中第一三角面片和第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;s300,針對(duì)所述第一紋理圖和所述第二紋理圖中的非頂點(diǎn)映射點(diǎn),通過如下方式計(jì)算其紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置非頂點(diǎn)紋理的顏差異;非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值等于第一頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第三系數(shù)的乘積之和,所述第一系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第二系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第三系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;s400,在所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異。2.如權(quán)利要求1所述的紋理映射的方法,其特征在于,所述s400具體包括:將所述接縫位置上的點(diǎn)的紋理值替換為所述第一紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值與所述第二紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值的均值。3.如權(quán)利要求2所述的紋理映射的方法,其特征在于,所述s400后還包括步驟s500,s500,根據(jù)所述接縫位置的紋理值和非接縫位置的紋理值,計(jì)算出所述非接縫位置的紋理值的更新值,以進(jìn)一步消除所述接縫處位置預(yù)設(shè)范圍內(nèi)的顏差異。4.如權(quán)利要求3所述的紋理映射的方法,其特征在于,所述步驟s500具體包括:分別計(jì)算所述第一三角面片和所述第二三角面片中的紋理值的梯度場(chǎng);對(duì)所述梯度場(chǎng)求導(dǎo),得到對(duì)應(yīng)的散度矩陣b;根據(jù)所述散度矩陣b計(jì)算出所述非接縫位置的紋理值的更新值x,其中ax=b,a為稀疏矩陣,對(duì)應(yīng)所述非接縫位置的紋理值的更新值對(duì)應(yīng)的所述三角面片的位置。5.如權(quán)利要求1所述的紋理映射的方法,其特征在于,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:
所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。6.如權(quán)利要求1所述的紋理映射的方法,其特征在于,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,且所有同一三角面片上的相鄰所述頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值的差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。7.一種多視角紋理映射的裝置,其特征在于,包括,第一紋理三維模型生成模塊,生成第一紋理三維模型;其中,所述第一紋理三維模型至少包括相鄰的第一三角面片和第二三角面片;所述第一三角面片中的紋理塊來(lái)自于第一紋理圖,所述第二三角面片中的紋理塊來(lái)自于第二紋理圖,所述第一紋理圖和所述第二紋理圖分別在不同的視角拍攝得到,所述第一三角面片中的紋理塊與所述第二三角面片中的紋理塊的分界處形成接縫;所述第一三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊,所述第二三角面片在所述第一紋理圖和所述第二紋理圖中均能映射到對(duì)應(yīng)的紋理塊;頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,分別計(jì)算所述第一三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以及所述第二三角面片的頂點(diǎn)在所述第一紋理圖和所述第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置中頂點(diǎn)紋理的顏差異;非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,針對(duì)所述第一紋理圖和所述第二紋理圖中的非頂點(diǎn)映射點(diǎn),通過如下方式計(jì)算其紋理值的補(bǔ)償值、并分別對(duì)相應(yīng)的紋理值進(jìn)行補(bǔ)償,以減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置非頂點(diǎn)紋理的顏差異;非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值等于第一頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第一系數(shù)的乘積、第二頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第二系數(shù)的乘積、以及第三頂點(diǎn)映射點(diǎn)的補(bǔ)償值與第三系數(shù)的乘積之和,所述第一系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第二系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第三頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;所述第三系數(shù)等于所述非頂點(diǎn)映射點(diǎn)、所述第一頂點(diǎn)映射點(diǎn)、所述第二頂點(diǎn)映射點(diǎn)組成的三角形的面積與所述頂點(diǎn)映射點(diǎn)組成的三角形的面積的比值;接縫消除模塊,所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異的基礎(chǔ)上減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異。8.如權(quán)利要求7所述的紋理映射的裝置,其特征在于,所述接縫消除模塊包括:
均值計(jì)算單元,用于將所述接縫位置上的點(diǎn)的紋理值替換為所述第一紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值與所述第二紋理圖中對(duì)應(yīng)的映射點(diǎn)的紋理值的均值。9.如權(quán)利要求8所述的紋理映射的裝置,其特征在于,還包括非接縫位置的紋理值的更新值計(jì)算模塊,在所述均值計(jì)算單元之后工作,用于,根據(jù)所述接縫位置的紋理值和非接縫位置的紋理值,計(jì)算出所述非接縫位置的紋理值的更新值,以進(jìn)一步消除所述接縫處位置預(yù)設(shè)范圍內(nèi)的顏差異。10.如權(quán)利要求9所述的紋理映射的裝置,其特征在于,所述非接縫位置的紋理值的更新值計(jì)算模塊按照如下方式工作:分別計(jì)算所述第一三角面片和所述第二三角面片中的紋理值的梯度場(chǎng);對(duì)所述梯度場(chǎng)求導(dǎo),得到對(duì)應(yīng)的散度矩陣b;根據(jù)所述散度矩陣b計(jì)算出所述非接縫位置的紋理值的更新值x,其中ax=b,a為稀疏矩陣,對(duì)應(yīng)所述非接縫位置的紋理值的更新值對(duì)應(yīng)的所述三角面片的位置。11.如權(quán)利要求7所述的紋理映射的裝置,其特征在于,所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算模塊,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。12.如權(quán)利要求7所述的紋理映射的裝置,其特征在于,所述步驟s200中,通過如下方式確定所述頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值:所有三角面片頂點(diǎn)對(duì)應(yīng)的顏差異之和最小,且所有同一三角面片上的相鄰所述頂點(diǎn)之間對(duì)應(yīng)的補(bǔ)償值的差異之和最小,其中,所述三角面片頂點(diǎn)對(duì)應(yīng)的顏差異為所述第一紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果,與第二紋理圖中對(duì)應(yīng)的頂點(diǎn)映射點(diǎn)的紋理值利用對(duì)應(yīng)補(bǔ)償值補(bǔ)償之后的結(jié)果之差。13.一種紋理映射的系統(tǒng),其特征在于,采用如權(quán)利要求1-7任一項(xiàng)所述的方法進(jìn)行紋理映射,或者,包括如權(quán)利要求8-12任一項(xiàng)所述的紋理映射裝置。14.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被執(zhí)行時(shí)能夠?qū)崿F(xiàn)如權(quán)利要求1-7任意一項(xiàng)所述的方法。
技術(shù)總結(jié)
本發(fā)明提供了一種多視角紋理映射的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),通過計(jì)算第一紋理三維模型中第一三角面片和第二三角面片中頂點(diǎn)的紋理值的補(bǔ)償值并對(duì)其進(jìn)行補(bǔ)償;通過頂點(diǎn)的補(bǔ)償值計(jì)算非頂點(diǎn)的補(bǔ)償值,以消除第一三角面片和第二三角面片接縫位置紋理的顏差異,同時(shí)通過頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值計(jì)算非頂點(diǎn)映射點(diǎn)的紋理值的補(bǔ)償值,計(jì)算量較小;并且通過進(jìn)一步減小所述第一紋理三維模型中所述第一三角面片和所述第二三角面片接縫位置紋理的顏差異以達(dá)到較好的紋理映射效果,本實(shí)施例中的方法消除了紋理三維模型因?qū)?yīng)不同視角的紋理圖,不同紋理圖之間具有顏差異,而產(chǎn)生的紋理三維模型表面的彩分塊和紋理接縫現(xiàn)象。縫現(xiàn)象。縫現(xiàn)象。
