本發(fā)明屬于三維模型相關(guān)技術(shù)領(lǐng)域,涉及一種二維圖像對應(yīng)三維模型的映射方法。本發(fā)明可將對二維圖像的操作直接映射至相應(yīng)的三維模型本身。
背景技術(shù):
三維幾何模型從幾何角度再現(xiàn)了真實世界中物體的形狀信息。隨著3d模型建模、數(shù)字化、可視化技術(shù)的進步,三維幾何模型的研究得到了越來越多的關(guān)注,在工業(yè)產(chǎn)品設(shè)計、影視娛樂、電子商務(wù)、文物保護、城市規(guī)劃等各方面應(yīng)用需求的驅(qū)動下,得到前所未有的關(guān)注。數(shù)字幾何信息被認為是繼數(shù)字音頻、圖像與視頻之后的第四類數(shù)字媒體。隨著數(shù)字化生產(chǎn)與消費的發(fā)展,生成了越來越多的數(shù)字幾何信息,迫切需要對這些信息加以處理、分析和識別,以便有效地理解、利用,甚至再利用這些信息,進一步提高生產(chǎn)力。
二維投影方法常見于三維模型的檢索、比對等應(yīng)用領(lǐng)域中。在三維模型檢索中,常用不同角度的二維投影圖像來描述一個三維模型的特征。在三維模型檢索中,人們通常認為如果兩個三維模型在多尺度,多角度的二維投影擁有相同或者相似的特征向量,那么就可以認為這兩個三維模型是相同,或者相似的。該方法和思想如今已經(jīng)非常成熟。當(dāng)三維模型發(fā)生變化時,其相應(yīng)的二維投影也會發(fā)生變化,但對于投影所得到的二維圖像的改變,卻很少有相關(guān)的研究。
三維模型的包圍盒技術(shù)常用于碰撞檢測。包圍盒法的基本思想是使用簡單的幾何體來代替復(fù)雜的千奇百怪的幾何體,先對物體的包圍盒進行粗略檢測,當(dāng)包圍盒相交時其包圍的幾何體才有可能相交;當(dāng)包圍盒不相交時,其包圍的幾何體一定不相交;這樣可以排除大量不可能相交的幾何體和幾何部位,從而快速找到相交的幾何部位。
本發(fā)明主要利用了包圍盒技術(shù)和二維投影方法解決了二維投影圖像至三維模型的映射問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種二維投影圖像至三維模型的映射方法,解決了現(xiàn)有技術(shù)中二維投影和三維模型之間缺少聯(lián)系的問題。
現(xiàn)有的成熟的三維模型投影技術(shù),都是利用各種方法對三維模型進行簡單的投影,而對投影所得到的二維圖像與原三維模型之間的聯(lián)系則缺乏關(guān)注。
本方法提出一種在三維模型的二維投影圖像上進行相關(guān)的圖像操作,通過一些列矩陣變換,進而將相應(yīng)的圖像操作投影至三維模型的方法,有效建立了二維圖像和三維模型之間的聯(lián)系,為進一步簡化三維模型的相關(guān)操作建立了基礎(chǔ)。
本發(fā)明所采用的技術(shù)方案是,二維投影圖像至三維模型的映射方法,其特征在于,包括以下步驟:
步驟1,通過三維掃描儀獲取三維模型;
步驟2,對三維模型進行預(yù)處理,得到預(yù)處理后的三維模型;
步驟3,對預(yù)處理后的三維模型進行歸一化處理,得到三維模型的包圍盒;
步驟4,以三維模型的包圍盒的中心為原點o,三維模型的包圍盒的縱軸向為x軸,橫軸向為y軸,垂直于xoy平面的方向為z軸,建立全局坐標(biāo)系;
將xoy平面分別向z軸正、負方向移動,直至xoy平面與三維模型的包圍盒相切,得到包圍盒在z軸正、負方向上的兩個面;
將xoz平面分別向y軸正、負方向移動,直至xoz平面與三維模型的包圍盒相切,得到包圍盒在y軸正、負方向上的兩個面;
將yoz平面分別向x軸正、負方向移動,直至yoz平面與三維模型的包圍盒相切,得到包圍盒在x軸正、負方向上的兩個面;
所述包圍盒在z軸正、負方向上的兩個面、包圍盒在y軸正、負方向上的兩個面、包圍盒在x軸正、負方向上的兩個面組成obb包圍盒的六個面;
步驟5,通過obb包圍盒的六個面的投影圖像,得到投影圖像與三維模型之間的比例坐標(biāo);
包括:
步驟51,以obb包圍盒的任一頂點作為新的坐標(biāo)原點o′,將全局坐標(biāo)系的原點平移至新的坐標(biāo)原點o′,得到包圍盒坐標(biāo)系;
步驟52,任選obb包圍盒的一面作為當(dāng)前包圍盒面,將該當(dāng)前包圍盒面投影至包圍盒坐標(biāo)系的xo′y平面,得到投影圖像;
步驟53,在投影圖像上任選一點m(xm,ym),通過式(2)得到比例坐標(biāo)(xk,yk):
式(2)中,w表示投影圖像的x方向上的像素數(shù)量,l表示圖像y方向上的像素數(shù)量;
步驟54,在投影圖像上任選一點作為標(biāo)記點,通過式(3)將投影圖像上的標(biāo)記點映射至三維模型;
pi(xp,yp,zi)|xp=lx*xk,yp=ly*yk,0≤zi≤lz(3)
式(3)中,pi(xp,yp,zi)為滿足投影圖像上標(biāo)記點的比例坐標(biāo)的所有點;
lx為三維模型在全局坐標(biāo)系下x軸上的長度,ly為三維模型在全局坐標(biāo)系下y軸上的長度,lz為三維模型在全局坐標(biāo)系下z軸上的長度。
進一步地,通過式(1)得到歸一化后的三維模型的包圍盒的中心點:
式(1)中,n為歸一化后的三維模型上三角形的數(shù)量,xi,yi,zi為第i個三角形的頂點坐標(biāo),i=1,2,…,n。
進一步地,步驟2中所述的對三維模型進行預(yù)處理包括去噪處理。
本發(fā)明的有益效果是
(1)本發(fā)明所采用的映射方法,克服了現(xiàn)有技術(shù)中三維模型和其投影圖像兩者之間相對獨立的缺點,有效的建立了兩者之間的聯(lián)系;
(2)本發(fā)明所采取的映射方法,克服了三維模型與二維投影圖像同時具有縮放性的問題,解決了圖形縮放和三維模型縮放的問題。
附圖說明
圖1為本發(fā)明的流程圖;
圖2(a)為未去噪模型;(b)為已去噪模型;
圖3為歸一化后的三維模型;
圖4為obb包圍盒示意圖;
圖5為包圍盒坐標(biāo)系示意圖;
圖6(a)為投影圖像;(b)為標(biāo)記后的圖像;
圖7(a)為實驗結(jié)果整體圖;(b)為實驗結(jié)果局部放大圖。
具體實施方式
下面通過附圖和實施例對本發(fā)明作進一步說明。
本發(fā)明提出一種在三維模型的二維投影圖像上進行相關(guān)的圖像操作,通過一些列矩陣變換,進而將相應(yīng)的圖像操作投影至三維模型的方法,有效建立了二維圖像和三維模型之間的聯(lián)系,為進一步簡化三維模型的相關(guān)操作建立了基礎(chǔ)。
實施例1
本實施例提供了二維投影圖像至三維模型的映射方法,如圖1所示,包括以下步驟:
步驟1,通過三維掃描儀獲取三維模型;
本實施例采用手持式三維激光掃描儀handyscan3d掃描物體,獲取三維模型信息;
步驟2,對三維模型進行預(yù)處理,得到預(yù)處理后的三維模型;
對獲取的三維模型進行去噪,如圖2(a)和圖2(b)。
步驟3,對預(yù)處理后的三維模型進行歸一化處理,得到三維模型的包圍盒;如圖3所示。
假設(shè)頂點集為v,法向量集為n
步驟31,求得三維模型質(zhì)心
質(zhì)心的計算就通過模型頂點集的統(tǒng)計,得到三個方向上頂點的均值即為質(zhì)心。
步驟32,平移不變性的實現(xiàn)
平移不變性的實現(xiàn)即將模型的質(zhì)心向坐標(biāo)原點處移動至重合即可實現(xiàn)。
此時可得到移動后的模型為:
v1=v-c,n1=n
步驟33,旋轉(zhuǎn)不變性的實現(xiàn)
旋轉(zhuǎn)不變性的實現(xiàn)主要通過統(tǒng)計模型的頂點,進而得到旋轉(zhuǎn)矩陣,然后對模型施加矩陣旋轉(zhuǎn)即可。
首先計算影響矩陣m:
其中的a為模型網(wǎng)格的總面積,m為模型頂點的數(shù)量,然后求得m的三個特征值以及特征向量,然后根據(jù)其特征值的大小,依遞減的順序組合特征向量即可得到旋轉(zhuǎn)矩陣rm,得到此旋轉(zhuǎn)矩陣后即可對模型進行旋轉(zhuǎn),得到頂點及向量集為:
v2=rm*v1,n2=rm*n1
步驟34,實現(xiàn)縮放不變性
縮放不變性的實現(xiàn)是通過統(tǒng)計施加上述操作模型的頂點與質(zhì)心之間的距離分布關(guān)系:
其中:
sy,sz與此類似。得到縮放矩陣后即可對模型施加縮放操作:
v3=s*v2,n3=n2
經(jīng)過歸一化處理后,坐標(biāo)原點即為包圍盒的中心;
步驟4,以三維模型的包圍盒的中心為原點o,三維模型的包圍盒的縱軸向為x軸,橫軸向為y軸,垂直于xoy平面的方向為z軸,建立全局坐標(biāo)系;
通過式(1)得到歸一化后的三維模型的包圍盒的中心點:
式(1)中,n為歸一化后的三維模型上三角形的數(shù)量,xi,yi,zi為第i個三角形的頂點坐標(biāo),i=1,2,…,n。
將xoy平面分別向z軸正、負方向移動,直至xoy平面與三維模型的包圍盒相切,得到包圍盒在z軸正、負方向上的兩個面;
將xoz平面分別向y軸正、負方向移動,直至xoz平面與三維模型的包圍盒相切,得到包圍盒在y軸正、負方向上的兩個面;
將yoz平面分別向x軸正、負方向移動,直至yoz平面與三維模型的包圍盒相切,得到包圍盒在x軸正、負方向上的兩個面;
所述包圍盒在z軸正、負方向上的兩個面、包圍盒在y軸正、負方向上的兩個面、包圍盒在x軸正、負方向上的兩個面組成obb包圍盒的六個面,如圖4所示;
步驟5,通過obb包圍盒的六個面的投影圖像,得到投影圖像與三維模型之間的比例坐標(biāo);
包括:
步驟51,以obb包圍盒的任一頂點作為新的坐標(biāo)原點o′,將全局坐標(biāo)系的原點平移至新的坐標(biāo)原點o′,得到包圍盒坐標(biāo)系,如圖5;
步驟52,任選obb包圍盒的一面作為當(dāng)前包圍盒面,將該當(dāng)前包圍盒面投影至包圍盒坐標(biāo)系的xo′y平面,得到投影圖像,如圖6(a);
步驟53,在投影圖像上任選一點m(xm,ym),通過式(2)得到比例坐標(biāo)(xk,yk):
式(2)中,w表示投影圖像的x方向上的像素數(shù)量,l表示圖像y方向上的像素數(shù)量。
步驟54,在投影圖像上任選一點作為標(biāo)記點,通過式(3)將投影圖像上的標(biāo)記點映射至三維模型;
pi(xp,yp,zi)|xp=lx*xk,yp=ly*yk,0≤zi≤lz(3)
式(3)中,pi(xp,yp,zi)為滿足投影圖像上標(biāo)記點的比例坐標(biāo)的所有點;
lx為三維模型在全局坐標(biāo)系下x軸上的長度,ly為三維模型在全局坐標(biāo)系下y軸上的長度,lz為三維模型在全局坐標(biāo)系下z軸上的長度。