專利名稱:3d建模系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域是計算機(jī)系統(tǒng)上的3D建模。更具體的是,本發(fā)明自身涉及在給定物體的若干2D圖像“片”的情況下,構(gòu)造立體物體的3D計算機(jī)表示的方法。
背景技術(shù):
有許多用于生成真實世界三維物體的圖像片的專門技術(shù)。例如,在醫(yī)學(xué)成像領(lǐng)域中,依靠超聲波、X射線及磁共振技術(shù)的掃描設(shè)備可隨著掃描探測器在身體結(jié)構(gòu)上緩慢的移動來捕捉各種身體結(jié)構(gòu)的一系列圖像片(image slices)。然而,將這些2D片組合成身體結(jié)構(gòu)的3D計算機(jī)模型卻存在一些問題。
現(xiàn)有技術(shù)中用于將一組2D圖像片構(gòu)造成立體物體的3D模型的常用技術(shù)是將每個2D圖像中的每個圖像元素(或像素)(x,y)迭代映射到3D空間中的體積元素(volume element)(或體素)(x’,y’,z’);如果已知每個2D圖像片相對于某個固定參照點(或用于構(gòu)造3D模型的其它圖像片)的方位,則將2D像素轉(zhuǎn)化成3D體素是相對簡單直接的數(shù)學(xué)練習(xí)。然而,這是計算上相對費時間的運算,因此用軟件來完成時將會是非常慢的運算(在硬件中完成此類映射的個人計算機(jī)的商用視頻加速卡通常沒有)。還有,因為體素典型地是用多個浮點值來表示,所以當(dāng)構(gòu)造任何有用的復(fù)雜性模型時,在任何比高端圖形工作站小型的計算機(jī)系統(tǒng)上以這種方法建立3D模型會給系統(tǒng)資源施加極大的負(fù)擔(dān)。
因此,在不將單個2D圖像片像素直接映射到3D體素的情況下,能夠從一組2D圖像片構(gòu)造立體3D模型是有用的。此外,希望的是能夠利用應(yīng)用廣泛的加速硬件電路來完成這個模型的構(gòu)建。
基于體素的典型3D顯示裝置,特別是在醫(yī)學(xué)成像領(lǐng)域中,在其快速操作旋轉(zhuǎn)、視點及3D模型外觀以幫助用戶辨別和/或診斷特定結(jié)構(gòu)或畸形的能力上受限。還希望能夠進(jìn)行此類操作,特別是在常用計算硬件上。
發(fā)明內(nèi)容
本發(fā)明涉及基于計算機(jī)的3D建模系統(tǒng),用于從多個具有相互空間關(guān)系的2D橫截面數(shù)據(jù)圖像構(gòu)造虛擬3D表示。通過從數(shù)據(jù)源模塊提取多個數(shù)據(jù)圖像及相關(guān)的定向和定位信息、用框架生成模塊為每個數(shù)據(jù)圖像生成平面框架、用紋理映射模塊將每個數(shù)據(jù)圖像映射到其相應(yīng)框架上以作為紋理、用旋轉(zhuǎn)變換模塊依據(jù)定向信息將每個平面框架進(jìn)行旋轉(zhuǎn)、并用平移變換模塊依據(jù)定位信息將每個平面框架進(jìn)行平移來構(gòu)造虛擬的3D表示。
一旦構(gòu)造完虛擬的3D表示,可對其進(jìn)行渲染以用來查看和/或操作。觀察虛擬3D表示可通過將其顯示在屏幕上并進(jìn)行一個或多個操作來實現(xiàn),包括旋轉(zhuǎn)表示、使用剪裁平面進(jìn)入到表示中、調(diào)整表示的半透明度、透明度、顏色、對比度或亮度、調(diào)整表示的大小、動態(tài)地將視點平移到表示中、或動態(tài)地相對于表示移動視點。
在附圖中相同的數(shù)字表示類似部件圖1為3D建模系統(tǒng)的結(jié)構(gòu)圖,展示了其每個部件模塊;圖2A描述了具有角度傳感器的探測器經(jīng)過一個物體,捕獲了該物體的一系列圖像片;圖2B描述了按獲取順序排列的一系列圖像片以及相關(guān)的定向和定位信息;圖2C描述了按最初獲取角度排列的一系列圖像片;圖3描述了當(dāng)掃描物體用于3D計算機(jī)建模時,圖像片在實際空間中的獲取方向(沿Z軸);圖4A描述了前和后矩形平面圖像框架;圖4B描述了被紋理映射到平面框架上的圖像;圖4C描述了在3D空間中被旋轉(zhuǎn)到某個方位的圖形平面框架圖4D描述了在3D空間中被平移到某個位置的圖形平面框架;
圖5描述了連接到超聲波掃描設(shè)備和角度傳感器的探測器,且超聲波掃描設(shè)備和角度傳感器與個人計算機(jī)連接;及圖6描述了用于平面框架“前側(cè)”和“后側(cè)”的典型的框架頂點坐標(biāo)。
具體實施例方式
如圖1所示,基于計算機(jī)的3D建模系統(tǒng)21包括由幾個模塊組成的軟件。聯(lián)合運用這些模塊以從多個2D橫截面數(shù)據(jù)圖像和與每個數(shù)據(jù)圖像相關(guān)的相互空間關(guān)系數(shù)據(jù)來生成虛擬的3D表示。如圖5所示,3D建模系統(tǒng)21的優(yōu)選實施例可以是醫(yī)學(xué)成像設(shè)備的子系統(tǒng),雖然此處公開的3D建模系統(tǒng)21可使用任何類型的表示任何物質(zhì)或結(jié)構(gòu)的一系列橫截面的虛擬數(shù)字圖像。連接到旋轉(zhuǎn)角度傳感器6的探測器4可緩慢和均勻地在被掃描細(xì)胞組織8上移動,且可由標(biāo)準(zhǔn)醫(yī)學(xué)超聲波掃描設(shè)備10捕獲連續(xù)的圖像片。掃描器和角度傳感器可連接到個人計算機(jī)2,這樣軟件可獲取圖像片及其在3D空間中的方位角。圖像片在計算機(jī)上的典型格式是位圖,但也可使用其它格式。因為探測器4的移動可由機(jī)械裝置(未示出)完成,且其移動速率和方向已知,所以每個圖像在3D空間中的偏移可由公知的位置確定設(shè)備很容易地確定。這種位置確定設(shè)備也可連接到個人計算機(jī)2上,以用來同時獲取每個圖像的位置。
可向計算機(jī)提供圖像片、方位角度和位置信息的超聲波掃描器的某些實施例已在美國09/687128號專利申請及PCT/US01/32392號PCT申請中公開,公開內(nèi)容并入此處以供參考。任意一組表示任意物體(不只是細(xì)胞組織8)的一系列橫截面片的數(shù)字圖像皆可被建模,并以這里描述的方式使用。此類圖像可包括但不限于,X射線、磁共振成像、計算機(jī)化軸向X射線斷層攝影(computerized axial tomography)、超聲波、正電子發(fā)射X射線斷層攝影、放射性核素成像(radionuclideimaging)等。只要有足夠的圖像來構(gòu)造模型,則此類圖像甚至可包括類似來自于地震或其它系統(tǒng)的地質(zhì)橫截面的圖像。
獲得圖像的方式對此處公開的3D建模系統(tǒng)21而言不是關(guān)鍵。然而,為使如何獲得圖像及接下來如何被3D建模系統(tǒng)21所用的討論變的容易,本申請將一般地討論在隨后提到的應(yīng)用中公開的超聲波實施例。
為便于討論,空間軸可隨意標(biāo)注。假設(shè)待掃描物體是患者的細(xì)胞組織,且受檢患者仰臥以進(jìn)行掃描,則X軸從一個肩延伸到另一個肩(X軸正方向自患者右肩指向外側(cè)),Y軸與患者身體垂直(Y軸正方向自患者胸部指向上側(cè)),且Z軸從頭延伸到腳(Z軸正方向自患者的腳底指向外側(cè))。在優(yōu)選實施例中,可通過在Z軸正向上移動掃描探測器來獲取連續(xù)的掃描圖像,如圖3所示,但探測器在被成像患者上沿任何方向的移動均能產(chǎn)生可建模的圖像。
如圖2A所示,探測器4可自由地在兩個方向上(繞X和Z軸)傾斜以跟隨患者組織12(例如胸部的皮膚)的輪廓,同時保持與組織或皮膚12垂直。探測器繞X和Z軸的旋轉(zhuǎn)角度可由角度傳感器6跟蹤,然后其可與圖像互相關(guān)聯(lián),這樣每個圖像均具有自己的定向(旋轉(zhuǎn)角度)信息。探測器橫向馬達(dá)(未示出)的速度可通過來自角度傳感器6的反饋來控制,這樣該馬達(dá)沿Z軸以可變的速率移動探測器,使在皮膚的輪廓角度改變的情況下保持探測器在皮膚12上的速度恒定。因此,因為圖像捕捉速率可由掃描硬件固定并保持恒定,所以在該實施例中,已捕捉圖像片14的頂部邊緣互相之間等距且關(guān)于Z軸互相平行。
然而,重要的是,本發(fā)明不要求已獲得圖像片14的任何邊緣沿任何軸等距和互相之間平行。只要為每個圖像搜集到充足的定向(旋轉(zhuǎn)角度)信息,再結(jié)合關(guān)于每個圖像的位置信息,則圖像可如此處所述的這樣被建模和使用。例如,旋轉(zhuǎn)角度傳感器6可收集三個軸上的角度信息,且可使用能確定探測器4在3D空間中或相對于其它圖像的位置的設(shè)備,來確定一個圖像與其它圖像之間的距離。此類位置確定設(shè)備可包括計數(shù)器,計數(shù)器連接到推進(jìn)探測器4的驅(qū)動馬達(dá)上并簡單地計數(shù)與距離相關(guān)的馬達(dá)的旋轉(zhuǎn),或與探測器4相連接的加速計,或用于探測器4的局部GPS或者激光跟蹤設(shè)備,或光學(xué)移動傳感器如用于連接到探測器4的光學(xué)鼠標(biāo)的光學(xué)移動傳感器,或許多跟蹤探測器4移動和/或位置的其它方法。來自角度和位置傳感器的信號可同時保存在和圖像相同的數(shù)據(jù)包中,或分別收集并隨后與圖像相關(guān)。典型的相關(guān)(correlation)方法是使用給圖像和角度/位置信息都分配時間值的定時機(jī)構(gòu),隨后匹配這些信息,但也可使用其它合適的相關(guān)方法。
如圖2B所示,典型的掃描操作的結(jié)果是一組2D圖像16,連同與每個2D圖像16匹配的定向(旋轉(zhuǎn)角度)信息18和定位信息20。從這些要素,通過僅僅將所有2D圖像16在3D空間中合并到一起,3D建模系統(tǒng)21構(gòu)造立體3D表示31,如圖2C所示(雖然被描述為在圖2C中顯示器上的圖像,但是“3D表示31”實際上是計算機(jī)存儲器中的一組數(shù)據(jù)結(jié)構(gòu),且只有在3D表示已經(jīng)被計算機(jī)“渲染”并隨后顯示出來之后才變?yōu)榭勺R別的圖像)。
如圖1所示,此處所公開的軟件包括5個模塊數(shù)據(jù)源模塊22、框架生成模塊24、紋理映射模塊26、旋轉(zhuǎn)變換模塊28及平移變換模塊30,這些模塊共同將單個2D圖像16及定向18和定位值20轉(zhuǎn)化成源解剖組織的3D表示31,該3D表示可在主計算機(jī)系統(tǒng)32(圖2C)上被渲染和操作。每個模塊將在下面詳細(xì)解釋。模塊的數(shù)目可任意選擇以進(jìn)行討論,且可在不限制此處所描述的概念的情況下被合并成較少或擴(kuò)展成較多的數(shù)目。
1.數(shù)據(jù)源模塊如圖1所示,數(shù)據(jù)源模塊22為主系統(tǒng)的掃描和角度傳感器部分提供了虛擬界面。數(shù)據(jù)源模塊負(fù)責(zé)從超聲波掃描設(shè)備10接收片圖像數(shù)據(jù)14,并且如果有必要的話,將圖像數(shù)據(jù)轉(zhuǎn)化成最適于紋理映射的格式。在優(yōu)選實施例中,可將圖像從掃描設(shè)備輸出的專有格式轉(zhuǎn)化為微軟Windows Direct3D系統(tǒng)可接收的標(biāo)準(zhǔn)Windows位圖格式,用于紋理映射。如果圖像片在其適合于紋理映射之前必須被調(diào)整大小、裁剪或修正顏色,則數(shù)據(jù)源模塊22還負(fù)責(zé)轉(zhuǎn)換圖像片并使其標(biāo)準(zhǔn)化。例如,數(shù)據(jù)源模塊可將圖像轉(zhuǎn)化為原來的灰度表示。最后,數(shù)據(jù)源模塊22負(fù)責(zé)接收和標(biāo)準(zhǔn)化(有時插值)由角度傳感器6發(fā)送的定向數(shù)據(jù)18,且負(fù)責(zé)分配旋轉(zhuǎn)角度給單個片圖像,及負(fù)責(zé)接收來自定位系統(tǒng)的定位信息20并使其標(biāo)準(zhǔn)化。數(shù)據(jù)源模塊還在必要的時候轉(zhuǎn)化與每個圖像的角度和位置相關(guān)的單位測量。
在優(yōu)選實施例中,數(shù)據(jù)源模塊22接收定向數(shù)據(jù)18、定位數(shù)據(jù)20以及超聲波2D圖像16數(shù)據(jù)。在這些數(shù)據(jù)到達(dá)數(shù)據(jù)源模塊22時,它們可能已被獲取并被用于數(shù)據(jù)處理軟件系統(tǒng)中的某處,本發(fā)明可把該系統(tǒng)作為子模塊連接。因此,在優(yōu)選實施例中,數(shù)據(jù)源模塊22不必親自直接參與通過主計算機(jī)32(圖2C)中的串聯(lián)(serial)和網(wǎng)絡(luò)連接從源硬件裝置獲取數(shù)據(jù)——雖然會毫無疑問地擴(kuò)展到使用已充分理解且記錄的現(xiàn)有技術(shù)來承擔(dān)這些任務(wù)。相反,在優(yōu)選實施例中,數(shù)據(jù)源模塊22只需親自參與和主軟件系統(tǒng)連接、從該主軟件系統(tǒng)獲取數(shù)據(jù)、將數(shù)據(jù)轉(zhuǎn)化為適于其它模塊使用的格式及按需將該數(shù)據(jù)分配到其它模塊。
連接到主軟件系統(tǒng)的接口——類似于到其它模塊的接口——可通過使用良好定義的公用方法(public methods)將所有組件實現(xiàn)為標(biāo)準(zhǔn)C++對象來實現(xiàn)。數(shù)據(jù)源模塊22通過調(diào)用主軟件系統(tǒng)的公用方法來從主軟件系統(tǒng)提取數(shù)據(jù),且其它對象隨后通過調(diào)用數(shù)據(jù)源模塊22上的公用方法,從數(shù)據(jù)源模塊22檢索該數(shù)據(jù)。在內(nèi)部,為消除主軟件系統(tǒng)和其它模塊之間的差異,數(shù)據(jù)源模塊22只需將從主軟件系統(tǒng)提取的角數(shù)據(jù)從以度數(shù)表示的角度轉(zhuǎn)化為以弧度表示的角度,并給每個2D圖像16添加標(biāo)準(zhǔn)的Windows位圖標(biāo)題。
關(guān)于實際如何獲取圖像及定向18和定位數(shù)據(jù)20的硬件特定的細(xì)節(jié)在數(shù)據(jù)源模塊22內(nèi)部,向其它模塊“隱瞞”了這些細(xì)節(jié)。因此,此處公開的3D建模系統(tǒng)21可僅僅通過改變這樣一個模塊來與實際上使用任何類型的數(shù)據(jù)獲取硬件的成像系統(tǒng)相兼容。雖然以上討論使用超聲波圖像作為實例,但是,在將數(shù)據(jù)轉(zhuǎn)化為可用于各種計算機(jī)系統(tǒng)和操作系統(tǒng)的格式的操作上作適當(dāng)?shù)奈⑿∽兓?,也可使用其它類型的圖像。
2.框架生成模塊在優(yōu)選實施例中,框架生成模塊24(圖5)可從數(shù)據(jù)源模塊22接收連續(xù)的位圖2D圖像16及其定向18和定位信息20。框架生成模塊24負(fù)責(zé)生成表面(平面框架),位圖2D圖像16將在構(gòu)造中在3D模型內(nèi)被映射到這些表面上。
在優(yōu)選實施例中,探測器4在受檢患者組織上的移動范圍被限制為繞X和Z軸旋轉(zhuǎn),因此平行于Z軸的矢量可經(jīng)過每個位像的一個頂角。如圖4A所示,該角成為框架生成模塊24構(gòu)造每個框架的參照點34。參照點34實際上可以是每個框架上的任意點;在優(yōu)選實施例中,在每個框架上選擇相同的角點,以簡化計算并使必須與每個2D圖像16相關(guān)的額外數(shù)據(jù)量最少。此外,也可實現(xiàn)在圖像獲取過程中繞X、Y和Z軸自由旋轉(zhuǎn)的實施例。這僅僅需要一個額外的軸角度傳感器,以及對與每個2D圖像16相關(guān)的定向18(旋轉(zhuǎn))及定位數(shù)據(jù)20包進(jìn)行微小修正,以傳送額外信息。
圖4A進(jìn)一步展示了矩形平面框架36的每個面所需的四個共面的頂點。參照點34頂點可被分配給在其中構(gòu)造模型的三維坐標(biāo)系統(tǒng)的原點。其它三個頂點可相對于參照點34頂點定位,以使平面框架36的相對尺寸與源圖像的相對尺寸匹配。
在優(yōu)選實施例中,3D建模系統(tǒng)21可在微軟Windows個人計算機(jī)上運行且可使用微軟Direct3D 3D子系統(tǒng)所提供的服務(wù)程序(雖然3D建模系統(tǒng)21在使用不同操作系統(tǒng)和3D子系統(tǒng)的其它類型的計算機(jī)系統(tǒng)上也可工作——例如,在使用OpenGL的UNIX系統(tǒng)上)。Direct3D不提供對矩形圖元(primitives)的支持。因此,在優(yōu)選實施例中,框架生成模塊24可通過從四個成組的頂點生成兩個鄰接的三角形圖元36a、36b來為每個位像生成矩形平面框架36。
為使平面框架從“兩面”均可視,典型地,必須使兩面均具有紋理。為方便這樣做,可在相同物理位置的四個頂點(以顛倒的順序)上映射兩個額外的三角形,以生成平面框架36的“后側(cè)”38。當(dāng)然,如果不需要從“后側(cè)”觀看,或者如果使用的3D系統(tǒng)本身就支持從前或后觀看紋理映射表面,則只需生成(且隨后生成紋理)一個平面框架,“前側(cè)”36。
生成平面框架的方法取決于使用的3D子系統(tǒng)。如果使用Direct3D,可生成合并有紋理映射坐標(biāo)的自定義頂點格式。典型的紋理坐標(biāo)在從左到右及從上到下的
范圍內(nèi)。如圖6所示,坐標(biāo)可被附到組成前平面框架36“矩形”的四個頂點上。然后,為生成平面框架38矩形的“后側(cè)”,位于相同物理位置的四個頂點坐標(biāo)可如圖6所示以“顛倒的順序”被映射。
在3D建模中的這個類型的平面框架生成是在3D計算機(jī)建模技術(shù)中好的常用技巧。在很多參考文獻(xiàn)中都討論了有代表性的建模技術(shù),包括Peter Walsh、Adrian Perez的Advanced 3-D Game Programmingusing DirectX8.0(Wordware Publishing,Inc.2001),其公開內(nèi)容并入此處以供參考。以上討論僅僅是如何實現(xiàn)這種平面框架生成的實例,還有無數(shù)生成此類平面框架36、38的其它方法。如上所述,其它操作系統(tǒng)和3D子系統(tǒng)也可用于產(chǎn)生同等結(jié)果。
每次位像被傳輸?shù)娇蚣苌赡K24,最終結(jié)果均為圖4A和6所描述的雙面矩形平面框架36、38(構(gòu)造自四個三角形圖元36a、36b)。
3.紋理映射模塊紋理映射模塊26接收連續(xù)的位圖2D圖像16及由框架生成模塊24為其構(gòu)造的平面框架36、38。紋理映射模塊26負(fù)責(zé)將每個位圖2D圖像16貼到其平面框架36上。
紋理映射是2D圖形圖像被粘貼到3D多邊形表面作為“紋理”的過程。用于紋理映射的有效技術(shù)已在現(xiàn)有技術(shù)中充分記載,例如上述Walsh/Perez參考文獻(xiàn)。典型地,紋理映射被用于3D應(yīng)用中,以向渲染的物體提供更好的視覺真實感——例如,石雕圖案的位像可被貼到3D場景內(nèi)的表面以使該表面看起來像石墻。紋理映射是復(fù)雜的過程,包括坐標(biāo)映射及矩陣從動拉伸(matrix-driven stretch)及剪切變換,以確保圖形在其貼附的3D表面上看起來恰當(dāng),假設(shè)已確定該表面的形狀和其觀看角度。這種紋理映射在3D圖形中很常用,以致于在實踐中通常出售的用于個人計算機(jī)的3D視頻加速卡以能夠直接高速完成紋理映射的硬件電路(circuitry)為特征。這種視頻加速卡的典型實例包括NVIDIA GeForce4 Ti4600和ATI Radeon Rage 128-bit GL,但如下面所述,此類卡的使用不是必不可少的。
3D建模系統(tǒng)21的優(yōu)選實施例可在具有Direct3D服務(wù)程序的微軟Windows上運行,該服務(wù)程序可直接與計算機(jī)視頻加速卡上的紋理映射電路對接。如果必要的話,高度優(yōu)化的Direct3D系統(tǒng)軟件可在沒有這種視頻加速卡電路的情況下進(jìn)行紋理映射。因此,此處所述軟件必須作非常少的紋理映射工作。紋理映射模塊的軟件可僅僅將合適的紋理坐標(biāo)分配給限定每個平面框架36的前側(cè)的每個頂點,這樣,每個位像可從左邊緣到右邊緣、從頂邊緣到底邊緣被映射到該平面框架36,從而可在沒有裁剪、遮蔽或留下任何未覆蓋的框架部分的情況下精確且完整地覆蓋框架前側(cè)。類似地,紋理坐標(biāo)可被分配給限定每個平面框架36的后側(cè)的每個頂點,這樣,同一位像的鏡像可被映射以完全覆蓋平面框架38的后側(cè)。
如圖4B所示,每次位圖(或其他合適的格式)圖像及在框架生成模塊中生成的平面框架36、38被傳輸?shù)郊y理映射模塊,最終結(jié)果均為3D空間上的雙面2D圖形平面框架40。
4.旋轉(zhuǎn)變換模塊旋轉(zhuǎn)變換模塊28接收由紋理映射模塊26構(gòu)造的連續(xù)的雙面2D圖形平面框架40及圖形平面框架40的定向(旋轉(zhuǎn))信息18。旋轉(zhuǎn)變換模塊使用定向信息18以在3D空間上相對于三個分軸旋轉(zhuǎn)和合適地定向每個圖形平面框架40。
如前所述,構(gòu)造每個平面框架36時可使用位于坐標(biāo)軸原點的其固定參照點34。該參照點34可作為圖形平面框架40旋轉(zhuǎn)時所繞的“支點”。又如前所述,在優(yōu)選實施例中,每個平面框架36可能只有兩個自由度且可繞X和Z軸旋轉(zhuǎn),但不繞Y軸旋轉(zhuǎn)。因此,在虛擬3D空間中確定每個圖形平面框架40的方向是簡單的,即構(gòu)造適當(dāng)?shù)?×4矩陣以將點繞Z軸旋轉(zhuǎn)到特定的Z軸旋轉(zhuǎn)角度(圖4C中的θ),然后將每個框架頂點乘以該矩陣,然后構(gòu)造新4×4矩陣以將點繞X軸旋轉(zhuǎn)到特定的X軸旋轉(zhuǎn)角度(未示出),并將每個框架頂點乘以該矩陣。構(gòu)造此類旋轉(zhuǎn)矩陣所用的數(shù)學(xué)方法已在現(xiàn)有技術(shù)中完好記載并為本領(lǐng)域技術(shù)人員所公知,故不在此處贅述。
在另一種實施例中,每個平面框架可有三個自由度,且模型構(gòu)造機(jī)理仍大體相同。普通參照點選在每個平面框架的相同位置上,雖然可選擇任意的點,但通常選角點。該參照點34可被用作旋轉(zhuǎn)的支點,及用于所有偏移位置值的偏移點(在下面的平移變換模塊中實現(xiàn))。然后,數(shù)據(jù)源模塊22可把每個圖形平面框架40的定向信息18(X軸旋轉(zhuǎn)、Y軸旋轉(zhuǎn)、Z軸旋轉(zhuǎn))和定位信息20(X軸偏移、Y軸偏移、Z軸偏移)適當(dāng)結(jié)合到一起。全部其它圖像操作可如上所述那樣完成。矩陣深度(matrix depths)沒有改變。雖然人們可使用每個平面框架上不同位置的參照點,或不同的參照點作為支點和偏移點,但是這將增加程序的復(fù)雜性。
每次圖形平面框架40從紋理映射模塊26傳輸?shù)叫D(zhuǎn)變換模塊28,最終結(jié)果為圖4C中描述的正確定向的圖形平面框架40。
5.平移變換模塊平移變換模塊30一般從旋轉(zhuǎn)變換模塊28接收連續(xù)的、正確定向的2D圖形平面框架40及框架的定位信息20。平移變換模塊30使用定位信息20以在虛擬3D空間中從參照點34適當(dāng)?shù)仄苹蚱揭泼總€圖形平面框架40。
如前所述,在優(yōu)選實施例中,可在其支點角(參照點34)位于坐標(biāo)軸原點處的情況下構(gòu)造每個圖形平面框架40;該支點角(參照點34)可在圖形平面框架40經(jīng)過旋轉(zhuǎn)變換模塊28后在原點處保持固定。在優(yōu)選實施例中,定位(偏移)信息20相對于這個角來確定。雖然可使用不同于支點角(參照點34)的點作為支點和偏移點,但是選擇這個角比較方便且可簡化計算。
可用[X,Y,Z]向量的形式向平移變換模塊30提供定位(偏移)信息20。在某些實施例中,可以固定速率獲取超聲波圖像片14,且探測器4相對于患者皮膚表面12的輪廓的移動可保持恒定,從而每個偏移向量的長度保持一樣,這樣就簡化了計算。然而,在其它實施例中,每個向量的每個分量可獨立變化,這只稍微增加了計算復(fù)雜性。為在3D空間中將圖形平面框架40偏移到正確位置,平移變換模塊30可從特定的偏移向量構(gòu)造4×4平移矩陣。然后,每個框架頂點均可乘以平移矩陣。在由偏移向量構(gòu)造平移矩陣中包括的數(shù)學(xué)方法和編程方法是已在現(xiàn)有技術(shù)中完好記載的,并為本領(lǐng)域技術(shù)人員所公知,故不在此處贅述。
假設(shè)沿X軸收集到單行的一系列圖像,如果行是直的,那么X軸偏移量將為0.0(或其它一些定值)。如果行不直,那么則需要收集每個圖形平面框架40相對于每個平面框架上的共同參照點34的X軸偏移信息,且框架平移模塊30可為每個圖形平面框架40構(gòu)造X軸偏移向量。假設(shè)細(xì)胞組織寬闊區(qū)域的圖像以兩行或多行圖像的方式收集,則框架平移模塊可取每個圖形平面框架40的X軸偏移信息,并從該兩行或多行圖像“編織”3D模型。只要為每個2D圖像16獲取了充分的定向18和定位信息20,這些行就沒有必要大體平行。然而,為實現(xiàn)模型的大體上完全覆蓋,多行2D圖像16的邊緣應(yīng)該接觸或重疊。將在下面討論的渲染引擎在構(gòu)造模型時應(yīng)該能夠處理任何重疊。
每次圖形平面框架40經(jīng)過旋轉(zhuǎn)變換模塊達(dá)到平移變換模塊,最終結(jié)果均為圖4D中描述的正確定位的圖形平面框架40。雖然Z軸未在圖4D中示出,但可使用合適的偏移向量在Z軸上平移圖形平面框架40。
6.模型渲染在使用上述技術(shù)構(gòu)造模型之后,可使用由3D子系統(tǒng)和/或3D硬件處理的標(biāo)準(zhǔn)渲染技術(shù)渲染它。這些渲染技術(shù)及設(shè)備在本技術(shù)領(lǐng)域中是公知的,且實際上是當(dāng)今所出售的每個個人計算機(jī)的一部分,所以就不需要在這里對其進(jìn)行詳細(xì)描述了。一般地描述典型渲染技術(shù)的參考文獻(xiàn)是James D.Foley等人的Computer GraphicPrinciples and Practice(Addison-Wesley Pub.Co.2nd ed.1995),其公開內(nèi)容并入此處以供參考,但還有許多其它參考文獻(xiàn)。雖然3D建模系統(tǒng)的優(yōu)選實施例被設(shè)計成在個人計算機(jī)上運行,但實際上可以使用任何類型的具有足夠容量和渲染軟件/硬件的數(shù)據(jù)處理裝置。
通過使用構(gòu)建在易于獲得的3D加速卡中的功能部件,此處公開的3D建模系統(tǒng)解決用于從2D圖像片組構(gòu)造立體3D表示的現(xiàn)有技術(shù)的實際操作缺點。幾乎當(dāng)前所有構(gòu)建在個人計算機(jī)和工作站中的3D加速卡以用于“紋理映射”的特定硬件電路為特色——“紋理映射”是一種技術(shù),藉此技術(shù)2D位像可被映射到多邊形網(wǎng)格上并由多邊形網(wǎng)格圍繞,以增加視覺上逼真的紋理到照片般逼真的3D場景的透視圖。此處公開的3D建模系統(tǒng)影響該高性能硬件,以將3D體積建模成一組雙面2D矩形框架——每個框架皆有源2D圖像的紋理,而不是將3D體積建模成一組3D體素。嚴(yán)格來講,該技術(shù)的結(jié)果不等同于將像素映射成體素,因為每個紋理元素(“紋素”)在3D模型中保持二維狀態(tài)。然而,如果源圖像片相對緊湊且互相之間相對于三個軸皆不平行,則顯像通常是質(zhì)量非常高的。此外,使用該建模技術(shù),個人計算機(jī)上的建模和渲染性能通常特別突出。
3D建模系統(tǒng)的另一個優(yōu)點是在使用已紋理映射的矩形表面的地方,“后面選擇(back-face culling)”(從不朝向觀察者的渲染處理映射表面除去)可在渲染和實時模型旋轉(zhuǎn)過程中被很快的完成(典型地,這個選擇可在加速電路中的高速專用硬件上完成),有助于更好的模型顯示性能。相反,這種電路典型地不能在用體素構(gòu)造的3D模型中使用的“點”上執(zhí)行后面選擇,因為該電路典型地被限于在如三角形一樣的原始表面構(gòu)造上的后面選擇。
7.觀察方法優(yōu)選實施例的一個應(yīng)用是醫(yī)學(xué)診斷領(lǐng)域。一旦使用上述技術(shù)構(gòu)造完模型,其可被渲染及隨后被觀察和操作以鑒別結(jié)構(gòu)及診斷醫(yī)學(xué)狀況,比如癌癥。例如,可獲得胸部的圖像并用上述技術(shù)構(gòu)造模型,并隨后渲染及查看圖像以鑒別或診斷癌癥或其它狀況。可使用任何類型的橫截面的系列圖像,及任何類型的組織或物質(zhì)。雖然討論了超聲波胸部組織圖像作為實例,但是3D建模系統(tǒng)21并不局限于人類組織或醫(yī)學(xué)診斷,且下面的觀察方法可被用于任何構(gòu)造自2D橫截面圖像的3D模型。
超聲波圖像可被獲取和轉(zhuǎn)化成待成像胸部的正確可靠的3D模型。模型的結(jié)構(gòu)使普遍使用的基于個人計算機(jī)的3D圖形卡上的快速渲染變的容易。繞軸的任何組合的任意旋轉(zhuǎn)可由鼠標(biāo)實現(xiàn)(或使用鍵盤控制,或使用構(gòu)建在觀察器界面內(nèi)的按鈕),這樣,可從任意角度觀察模型??烧{(diào)整模型(或模型視點)的大小,這樣可在屏幕上觀察其較大或較小的尺寸。這些能力可使沿胸部模型邊緣的異常能被輕易看到,而如果每次只能看到一個及只能“正面”看到單個的超聲波框架,則異??赡芊浅ky以被發(fā)現(xiàn)。
此外,由本發(fā)明構(gòu)造的模型具有許多便于檢測已建模細(xì)胞組織深處的異常的操作。一個此類操作依靠“剪裁平面”。模型首先被旋轉(zhuǎn)至屏幕上期望的方位。然后,隨著模型每秒被渲染多次,剪裁平面截面正視圖進(jìn)入(保持與屏幕平行)通過模型。因為剪裁平面進(jìn)入到模型中,所以位于剪裁平面和觀察器之間的所有模型部分被除去,這使得可以顯示模型中漸進(jìn)深度的橫截面。這樣,可從任意角度和在任意深度觀察已建模組織的內(nèi)側(cè)。這使得可清楚看到其它可能漏檢的(當(dāng)只從一個特定方向觀察時)異?;蚪Y(jié)構(gòu)。使用剪裁平面時也可旋轉(zhuǎn)模型以“雕刻(sculpt)”模型。
其它操作依然依靠透明度。既然此處公開的3D建模技術(shù)依靠2D紋理映射,那么可使用α通道(alpha channeling)使構(gòu)成模型的圖像框架具有透明度和部分透明度(另外被稱為“半透明度”)?;旧?,在渲染模型過程中,紋理被操作,這樣可顯示某些像素,或使其完全消失,或使其與模型中其“后面”的像素部分混合。此外,可操作混合像素的顏色以增強(qiáng)深度的表現(xiàn),并提供其它可視信號。透明度和半透明度允許從“外側(cè)”觀察模型——人們?nèi)钥煽吹侥P汀皟?nèi)側(cè)”的結(jié)構(gòu)。利用部分透明度甚至可將視點動態(tài)地移動到模型中,且可實現(xiàn)模型的“飛過(fly through)”。在“飛過”過程中,視點的角度也可動態(tài)改變,這樣,用戶可在觀察過程中“飛到”感興趣的觀測區(qū)域。這還提供了被建模結(jié)構(gòu)的另一組“視圖”,且進(jìn)一步增強(qiáng)了醫(yī)生檢測異常的能力,這些異常使用查看超聲波數(shù)據(jù)的標(biāo)準(zhǔn)技術(shù)可能難以看到的。
重要的是,為優(yōu)化利用結(jié)合了半透明度的視圖,優(yōu)選實施例使用了顯著不同于申請人已知的多種現(xiàn)有技術(shù)的一種技術(shù)。通過為每個顏色元素將數(shù)據(jù)存貯區(qū)域擴(kuò)展一位或多位,在3D圖形子系統(tǒng)內(nèi)實現(xiàn)α通道,以將α通道信息與顏色數(shù)據(jù)聯(lián)系到一起。當(dāng)顏色元素由3D圖形子系統(tǒng)渲染時,其顏色可與已存在于3D子系統(tǒng)的深度緩沖器(由于空間上“較深”的顏色元素先前處理)中的顏色值進(jìn)行附加“混合”(到達(dá)由其α值控制的程度),且結(jié)果將最終顯示在屏幕上并導(dǎo)致在該點出現(xiàn)部分的元素透明度,如下面將要更全面解釋的。
在優(yōu)選實施例中,位于每個模型框架上的每個紋素(紋理元素,與紋理映射圖像上的像素本質(zhì)上相同)的實際顏色數(shù)據(jù)是256個可能灰度值中的一個。雖然下面的討論適用于紋素,但是相同技術(shù)除了可被用于3D紋理映射之外,還可被用于其他環(huán)境中使用的位像,且在這種情況下像素等同于紋素。因此,模型可通過使α字節(jié)(8位或256個不同的可能值)與模型的每個框架上的每個紋素相關(guān)來生成。當(dāng)啟用半透明度時,用戶通過標(biāo)準(zhǔn)用戶界面機(jī)構(gòu)(就是,例如Windows標(biāo)準(zhǔn)軌跡桿控件)選擇“閾值”(在包含的
范圍內(nèi)),或可使用預(yù)置的閾值。然后,每個紋素的α值按如下方法運算將每個紋素的特定色值從最大色值(255)中減去以得到運算值。運算值是這樣的255的色值產(chǎn)生0,且后續(xù)遞減的色值與遞增的運算值相關(guān)。然后,每個運算值與閾值相比較。如果運算值大于(或等于)閾值,那么該紋素的α值被設(shè)為255(這將使得紋素被底層3D子系統(tǒng)渲染成完全不透明的)。如果運算值小于閾值,那么其除以某個用戶可選擇的或預(yù)置的值(例如8、16和32,它們是適當(dāng)?shù)某龜?shù),2的冪,也可以稍微地加速處理)。所得的數(shù)成為紋素的計算α值。以該方法計算紋素α值可使逐漸更亮的已著色紋素被渲染得越來越透明(以非線性方式),直到具有超過某個值的獨特亮色的紋素不再被渲染(雖然有時可渲染成視覺上更舒適的效果,如果α值以某個小值“做最小值”——例如1或2——僅僅使紋素不從渲染完全消失)。以該方式實現(xiàn)半透明度可在結(jié)果顯示中更好地保持可視深度信號,同時從框架除去許多較亮的著色“噪音”且允許干凈的視圖“進(jìn)入”渲染的模型。
當(dāng)運算α值時,為增強(qiáng)對比度,可修改紋素顏色數(shù)據(jù)的一個或多個顏色分量(如果灰度數(shù)據(jù)實際上已經(jīng)為每個紋素被編碼為幾個顏色分量)。例如,具有小于255的運算α值的紋素使其綠和紅顏色分量乘以某個用戶可選擇的值或預(yù)置值(可達(dá)255的最大結(jié)果分量值),使越來越透明的像素越來越“黃”。這趨向于增強(qiáng)在渲染中未修改的、不透明的灰度像素的外觀對比度,且也可進(jìn)一步增強(qiáng)深度信號。為操作對比度或其它觀察參數(shù),例如亮度或灰度系數(shù),當(dāng)特定紋素的色值下降到閾值以下,可對任何顏色分量進(jìn)行許多其它數(shù)學(xué)操作。
雖然優(yōu)選實施例使用256個灰度值,但是也可使用其它數(shù)目的灰度以構(gòu)造和/或渲染模型,且上述操作技術(shù)同樣可以很好地處理顏色數(shù)據(jù)。
權(quán)利要求
1.一種基于計算機(jī)的3D建模系統(tǒng),用于從多個具有相互的空間關(guān)系的2D橫截面的數(shù)據(jù)圖像構(gòu)造虛擬的3D表示,其包括一個數(shù)據(jù)源模塊,依據(jù)所述相互的空間關(guān)系,可通過其提取所述多個2D橫截面的數(shù)據(jù)圖像,所述數(shù)據(jù)圖像具有所述多個數(shù)據(jù)圖像中的每個的定向和定位信息;一個框架生成模塊,其能夠為來自所述數(shù)據(jù)源模塊的所述多個數(shù)據(jù)圖像中的每個生成平面框架;一個紋理映射模塊,其能夠?qū)碜运鰯?shù)據(jù)源模塊的所述多個數(shù)據(jù)圖像中的每個映射到其相應(yīng)的來自所述框架生成模塊的平面框架上作為紋理;一個旋轉(zhuǎn)變換模塊,其能夠使用所述定向信息,依據(jù)所述定向信息繞虛擬3D空間中的一個或多個軸旋轉(zhuǎn)來自所述紋理映射模塊的每個平面框架;一個平移變換模塊,其能夠使用所述定位信息,依據(jù)所述定位信息在虛擬3D空間中平移來自所述紋理映射模塊的每個平面框架。
2.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述平移變換模塊通過所述旋轉(zhuǎn)變換模塊接收來自所述紋理映射模塊的每個平面框架。
3.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述數(shù)據(jù)源模塊能夠?qū)⑺龆鄠€2D橫截面的數(shù)據(jù)圖像轉(zhuǎn)化為一種灰度表示。
4.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述數(shù)據(jù)源模塊能夠?qū)⑴c每個2D橫截面的數(shù)據(jù)圖像相關(guān)的所述定向信息從其自然的角度單位轉(zhuǎn)化成弧度。
5.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述數(shù)據(jù)源模塊能夠?qū)⑴c每個2D橫截面的數(shù)據(jù)圖像相關(guān)的所述定位信息從其自然的測量單位轉(zhuǎn)化成毫米的小數(shù)。
6.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述框架生成模塊能夠從兩個鄰接的三角形圖元生成每個平面框架。
7.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述平面框架是雙面平面框架。
8.如權(quán)利要求7所述的計算機(jī)建模系統(tǒng),所述紋理映射模塊能夠?qū)⒚總€2D橫截面的數(shù)據(jù)圖像映射到所述相應(yīng)的平面框架的每一面上以作為紋理。
9.如權(quán)利要求8所述的基于計算機(jī)的3D建模系統(tǒng),所述紋理映射模塊能夠設(shè)置與每個所述平面框架的每面相關(guān)的所述紋理,以在沒有裁剪、遮蔽或留下任何未覆蓋的框架部分的情況下精確且完整地覆蓋所述框架的每一面。
10.如權(quán)利要求7所述的基于計算機(jī)的3D建模系統(tǒng),所述框架生成模塊能夠從四個三角形圖元生成每個平面框架,兩個圖元構(gòu)成所述框架的一面,兩個圖元構(gòu)成所述框架的另一面。
11.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),進(jìn)一步包括一個數(shù)據(jù)源,其包括一個與所述數(shù)據(jù)源模塊進(jìn)行數(shù)據(jù)交換的超聲波掃描設(shè)備。
12.如權(quán)利要求11所述的基于計算機(jī)的3D建模系統(tǒng),所述數(shù)據(jù)源進(jìn)一步包括與所述超聲波掃描設(shè)備連接的一個位置確定設(shè)備和一個旋轉(zhuǎn)角度傳感器。
13.如權(quán)利要求1所述的基于計算機(jī)的3D建模系統(tǒng),所述數(shù)據(jù)源界面將所述多個2D橫截面的數(shù)據(jù)圖像轉(zhuǎn)化為一個標(biāo)準(zhǔn)化的位圖格式。
14.一種生成基于計算機(jī)的虛擬3D表示的方法,其包括獲得多個2D橫截面的數(shù)據(jù)圖像及每個數(shù)據(jù)圖像的定向和定位信息;為每個數(shù)據(jù)圖像生成一個平面框架;將每個數(shù)據(jù)圖像映射到其相應(yīng)的平面框架上作為紋理;使用所述定向信息在虛擬3D空間中繞一個或多個軸旋轉(zhuǎn)每個平面框架;在虛擬3D空間中使用所述定位信息平移每個平面框架。
15.一種觀察依據(jù)權(quán)利要求14所述的方法生成的基于計算機(jī)的3D表示的方法,其包括在屏幕上將所述多個已旋轉(zhuǎn)和已平移的框架顯示為一個虛擬3D表示,并使用一次或多次旋轉(zhuǎn)所述虛擬3D表示來觀察它,使用剪裁平面切入到所述虛擬3D表示中,調(diào)整所述虛擬3D表示的透明度,調(diào)整所述虛擬3D表示的半透明度,調(diào)整用于在所述屏幕上表現(xiàn)所述虛擬3D表示的像素的顏色,調(diào)整用于在所述屏幕上表現(xiàn)所述虛擬3D表示的像素的對比度,調(diào)整所述虛擬3D表示的亮度,調(diào)整所述虛擬3D表示的灰度系數(shù),調(diào)整所述虛擬3D表示的大小,將視點動態(tài)平移到所述虛擬3D表示中,并相對于所述虛擬3D表示動態(tài)移動所述視點。
16.如權(quán)利要求14所述方法,其中每個數(shù)據(jù)圖像包括多個像素,其進(jìn)一步包括通過操作單個像素的α值來調(diào)整半透明度,包括為像素獲取一個特定色值,選擇一個閾值,通過從一個最大色值減去所述特定色值來計算一個運算值,將所述運算值與所述閾值比較,并使所述α值等于所述最大色值,或者如果所述運算值小于所述閾值,則使所述α值等于所述運算值除以一個選擇的值。
17.如權(quán)利要求16所述的方法,包括通過操作單個像素的所述色值調(diào)整對比度,包括用數(shù)學(xué)方法修改像素的至少一個顏色分量,所述像素具有一個小于所述最大色值的計算α值。
18.如權(quán)利要求14所述的方法,其中每個數(shù)據(jù)圖像包括多個像素,其進(jìn)一步包括通過操作單個像素的所述α值調(diào)整半透明度,包括獲得所述像素的特定色值,選擇一個閾值,通過從一個最大色值減去所述特定色值來計算一個運算值,將所述運算值與所述閾值比較,并使所述α值等于所述最大色值,或如果所述運算值大于所述閾值,則使所述α值等于被所述運算值除以一個選擇的值。
全文摘要
一種基于計算機(jī)的3D建模系統(tǒng),用于從多個具有相互空間關(guān)系的2D橫截面數(shù)據(jù)圖像構(gòu)造虛擬3D表示??蓮臄?shù)據(jù)源模塊(22)提取多個數(shù)據(jù)圖像及相關(guān)的定向和定位信息??蚣苌赡K為每個圖像片構(gòu)造矩形框架。紋理映射模塊(26)將圖像片映射到關(guān)聯(lián)的框架上作為紋理。旋轉(zhuǎn)變換模塊(28)基于與每個數(shù)據(jù)圖像相關(guān)的定向信息,適當(dāng)?shù)乩@一個或多個軸來旋轉(zhuǎn)每個框架以實現(xiàn)3D空間中的正確定向。平移變換模塊(28)基于與每個數(shù)據(jù)圖像相關(guān)的定位信息來平移每個框架,以實現(xiàn)3D空間中的正確定位。
文檔編號G06T15/08GK1708771SQ200380102429
公開日2005年12月14日 申請日期2003年10月8日 優(yōu)先權(quán)日2002年10月11日
發(fā)明者M·W·史密斯, K·M·凱利, R·羅伊斯 申請人:索羅新公司