專利名稱:基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機圖形學(xué)和模式識別技術(shù)領(lǐng)域,特別涉及一種利用點的重建來進行超大規(guī)模醫(yī)學(xué)影像三維可視化的方法。
背景技術(shù):
自從X射線發(fā)明以來,CT(計算機斷層成像)、MRI(核磁共振成像)、CR(計算機X線成像)、B超、電子內(nèi)窺鏡等現(xiàn)代醫(yī)學(xué)影像設(shè)備先后出現(xiàn),使傳統(tǒng)的醫(yī)學(xué)診斷方式發(fā)生了革命性的變化。隨著現(xiàn)代計算機科學(xué)技術(shù)的發(fā)展,醫(yī)學(xué)影像處理作為一門新興的交叉學(xué)科也隨之出現(xiàn),給醫(yī)學(xué)診斷帶來了新的曙光。但是傳統(tǒng)的看片方式都是二維的,需要經(jīng)過訓(xùn)練的放射科醫(yī)生來看片并做出判斷,隨著計算機可視化技術(shù)的發(fā)展,醫(yī)學(xué)影像的三維可視化也變得可能。醫(yī)生通過計算機的輔助,可以看到人體器官的逼真的三維圖像,從而可以提高診斷的正確率。
目前在醫(yī)學(xué)影像處理領(lǐng)域使用的比較流行的三維可視化方法可以分為兩大類,一類是基于體素的(Voxel-based),另外一類是基于三角面片的(Triangle-based)。
基于體素的方法是最早應(yīng)用于醫(yī)學(xué)影像領(lǐng)域的,它用體素作為最基本的單元。所謂體素,就是以原始數(shù)據(jù)集的每個網(wǎng)格點為中心的一個立方體,一個感興趣的器官的表面可以用一套體素來表達,在繪制的時候?qū)⒖梢姷捏w素表面繪制出來。由于這種方法直接將原始的網(wǎng)格點和待抽取的表面聯(lián)系起來,并且體素的表達方法很簡單有效,因此受到了很多研究者的重視。但是基于體素的方法必須使用純軟件實現(xiàn),這使得它不能用來實時處理超大規(guī)模數(shù)據(jù)集。
基于三角面片的方法是從傳統(tǒng)的圖形學(xué)領(lǐng)域引進醫(yī)學(xué)影像領(lǐng)域的,隨著MC(Marching Cubes移動立方體)算法的巨大成功,它在醫(yī)學(xué)影像領(lǐng)域也得到了越來越廣泛的應(yīng)用。但是,原始的MC算法存在三大嚴重問題拓撲不一致、計算效率低以及輸出的三角片太多,很大程度地限制了它在實際中的使用,并且它也不適應(yīng)于超大規(guī)模數(shù)據(jù)集的實時可視化。
隨著醫(yī)學(xué)影像設(shè)備技術(shù)的不斷進步,醫(yī)學(xué)影像的空間解析度越來越高,所得到的切片張數(shù)也越來越多,給已有的三維可視化算法帶來了嚴峻的挑戰(zhàn)。特別是自從虛擬人體項目出現(xiàn)以來,美國的虛擬人體得到的數(shù)據(jù)量大于36GB,而中國的虛擬人體得到的數(shù)據(jù)量更是大于100GB,如此海量的數(shù)據(jù)使得三維的實時處理和顯示變得更為困難,如果使用傳統(tǒng)的可視化算法的話,將會得到上千萬甚至上億的體素或者三角面片,這在目前的情況下,即使是使用超級計算機也無法實時處理,從而開發(fā)新的能夠高效處理海量、超大規(guī)模的醫(yī)學(xué)影像數(shù)據(jù)集的方法顯得尤為迫切。
發(fā)明內(nèi)容
本發(fā)明的目的是充分利用現(xiàn)有的普通PC(個人電腦)的硬件能力,開發(fā)一種能夠高效快速地處理超大規(guī)模醫(yī)學(xué)影像數(shù)據(jù)集,從而能夠處理目前越來越多的海量的醫(yī)學(xué)影像數(shù)據(jù),進而從數(shù)據(jù)中更好地得到有用的信息。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)解決方案是提供一種基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法,其包括(1)分割步驟,使用域值分割或者區(qū)域增長分割方法從醫(yī)學(xué)影像的二維切片中將感興趣的部分分割出來;(2)基于點的重建步驟,又包括兩個子步驟單層表面跟蹤和生成邊界球分層;
a)單層表面跟蹤步驟,使用單層表面跟蹤的方法,將分割所得的感興趣的表面提取出來,并以點云的形式表達;b)生成邊界球分層步驟,將上一步生成的點云存儲到一棵樹中,樹中每個節(jié)點記錄這個點的邊界球信息;(3)三維繪制步驟,對提取出來的基于點的三維表面模型,使用基于點的繪制方法來進行交互式地顯示。
在上面所述方法中,第(2)步基于點的重建步驟,以點作為重建的基本單元,且每個點的半徑是相等的。
在上面所述方法中,第(2)步中a)單層表面跟蹤步驟,在進行單層表面跟蹤時,對x坐標(biāo)進行量化、編碼,不對y、z坐標(biāo)進行量化、編碼計算。
在上面所述方法中,第(2)步中b)生成邊界球分層步驟,在生成邊界球分層時,使用八叉樹組織節(jié)點信息。
在上面所述方法中,八叉樹每個節(jié)點信息的量化編碼是32位,分為兩組,一組是x坐標(biāo)組,一組是法向量坐標(biāo)組,都為16位。
在上面所述方法中,x坐標(biāo)組分為x坐標(biāo)、樹結(jié)構(gòu)和法向量錐三個字段。x坐標(biāo)被量化、編碼成10位;在樹結(jié)構(gòu)中,編碼成4位;法向量錐為2位。
在上面所述方法中,樹結(jié)構(gòu)使用3位去記錄每個節(jié)點的子節(jié)點個數(shù),使用1位去記錄當(dāng)前節(jié)點是否有子孫節(jié)點;法向量錐的2位,用來記錄當(dāng)前節(jié)點法向量錐的范圍。
鑒于目前個人電腦(PC)的運算能力日益增強,并且適用于PC的主流顯卡的繪制速度也在不斷地增加,本發(fā)明的主要目標(biāo)是在配有一塊中檔顯卡(如NVidia GeForce 2 GTS)的普通的PC上(在我國普及率很高)實現(xiàn)與虛擬人體數(shù)據(jù)集相當(dāng)規(guī)模的超大規(guī)模數(shù)據(jù)集的快速三維重建與實時顯示。使用傳統(tǒng)的重建方法無法處理如此海量的醫(yī)學(xué)影像數(shù)據(jù)集,或者處理速度非常慢,且要在昂貴的工作站上進行。本發(fā)明具有高可信度、可應(yīng)用性和可采納性,并且在醫(yī)學(xué)領(lǐng)域具有重要的應(yīng)用價值。
圖1是基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法的構(gòu)成圖;圖2是基于點的重建步驟的方框圖;圖3是表面體素的半徑的選取的示意圖;圖4是使用基于點的單層表面跟蹤算法能正確處理的連接性示意圖;圖5是使用基于點的單層表面跟蹤算法能正確處理的連接性示意圖;圖6是輸出點云的數(shù)據(jù)結(jié)構(gòu)的示意圖;圖7是量化編碼后節(jié)點的32bits的意義解釋及其示意圖;圖8是基于點的三維繪制的流程圖;圖9是本方法的實驗結(jié)果1在虛擬人體數(shù)據(jù)集上重建出來的骨骼模型;圖10是本方法的實驗結(jié)果2在虛擬人體數(shù)據(jù)集上重建出來的皮膚模型。
具體實施例方式
下面詳細描述本發(fā)明的基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法。本實現(xiàn)方案由三個主要步驟組成,結(jié)構(gòu)圖可以參見圖1。這三個步驟分別是分割步驟、基于點的重建步驟和三維繪制步驟,下面逐一進行介紹。
步驟一分割這一步的目的是為基于點的重建算法做預(yù)處理,將目標(biāo)物體從背景中分割出來,也稱為二值化的過程。分割對于高質(zhì)量的三維重建是至關(guān)重要的,因為它決定著最終顯示出來的物體是否是我們感興趣的器官。
分割方法有很多不同的種類,每一種類都適合于不同的來源影像。比如閾值分割對CT(計算機斷層成像)比較有效,但是對于MRI(核磁共振成像)圖像來講,由于人體內(nèi)部結(jié)構(gòu)復(fù)雜、生物組織的蠕動和MRI(核磁共振)成像的特點,造成醫(yī)學(xué)圖像中目標(biāo)物體不可避免的受到其它物體甚至是噪聲的干擾,使得物體局部邊緣特征模糊,用閾值分割就難以得到較好的效果。所以最好的方法就是將分割方法和三維重建方法結(jié)合起來,提供盡可能多的分割方法,針對不同的來源影像選用不同的分割方法,得到高精確度的分割結(jié)果以后,再應(yīng)用表面重建方法。
在這里我們介紹兩種比較實用的分割方法域值法和區(qū)域增長法。閾值法的關(guān)鍵是閾值的選擇,可以由用戶選擇區(qū)分背景與非背景的灰度閾值,也可用自動閾值法確定閾值。常見的自動閾值法有P-參數(shù)法,狀態(tài)法,微分直方圖法,判別分析法和可變閾值法。針對醫(yī)學(xué)圖像噪聲多的特點,可以采用判別分析法。即在圖像灰度值的直方圖中,求得閾值t把灰度值的集合分成兩組,使得兩組得到最佳分離。最佳分離的標(biāo)準是兩組的平均值的方差和各組方差的比為最大。該方法在直方圖中有兩個波峰時,可作為狀態(tài)法起作用;即使不存在波峰時也可求出閾值。設(shè)給定圖像具有L級灰度值,閾值為k,k將圖像的像素分成兩組1,2。組1的像素數(shù)設(shè)為ω1(k),平均灰度值為M1(k),方差為σ1(k);組2的像素數(shù)設(shè)為ω2(k),平均灰度值為M2(k),方差為σ2(k)。設(shè)全體像素的平均灰度值定為Mτ。則組內(nèi)的方差σW2=ω1σ12+ω2σ22]]>組間的方差σB2=ω1(M1-Mτ)2+ω2(M2-Mτ)2=ω1ω2(M1-M2)2]]>最佳標(biāo)準 值為最大,即σB2取最大值。
對于區(qū)域增長法,需要用戶選擇皮膚輪廓上的一個點作為種子點。區(qū)域生長的基本思想是將具有相似性質(zhì)的象素集合起來構(gòu)成區(qū)域,該方法需要先選取一個種子點,然后依次將種子象素周圍的相似象素合并到種子象素所在的區(qū)域中。區(qū)域生長算法的研究重點一是特征度量和區(qū)域增長規(guī)則的設(shè)計,二是算法的高效性和準確性。我們使用對稱區(qū)域增長算法,可以有效地彌補區(qū)域增長算法的兩大弱點對初始種子點的選擇敏感,以及內(nèi)存占用過多,而且對3D連接對象標(biāo)記和刪除空洞的算法效率高。
步驟二基于點的重建基于點的重建是本發(fā)明中最重要的一部分,是考慮到醫(yī)學(xué)影像數(shù)據(jù)集的特點,比如均勻采樣,無需顏色和紋理信息等以后,結(jié)合圖形學(xué)中基于點的繪制算法,提出的一個新的方法。本方法使用點作為表面重建的基本單元,可以省去傳統(tǒng)的重建算法中非常耗時的插值運算。同時本發(fā)明的目標(biāo)是在普通的PC(個人電腦)機上實現(xiàn)對海量數(shù)據(jù)集的快速重建和實時繪制,除了提出基于點的重建算法以求在算法層次上提高速度以外,還利用了現(xiàn)代CPU(中央處理單元)提供的多媒體指令集(如MMX和SSE),以及新近的顯卡中的GPU(圖形處理單元)提供的編程能力,來進一步在實現(xiàn)層次上提高整個方法的速度。
基于點的重建的方框圖如圖2所示,總共包括兩個部分單層表面跟蹤和生成邊界球分層。
第一部分單層表面跟蹤在單層表面跟蹤部分,主要的目的是從輸入的分割后的二值圖像中快速地將感興趣的器官的三維表面形狀以點的形式提取出來。這里使用的方法是首先遍歷整個數(shù)據(jù)集,找出代提取的表面所經(jīng)過的體素,這些體素被叫做表面體素,其它的體素被叫做背景體素。每個表面體素使用它的中心點坐標(biāo)和一個半徑來表示,為了避免在繪制時出現(xiàn)空洞,半徑的大小必須仔細選擇。這里考慮到醫(yī)學(xué)影像數(shù)據(jù)是在規(guī)則的長方體網(wǎng)格上采樣的,因此半徑的選擇就可以直接取長方體網(wǎng)格的外接球的半徑,圖3顯示了一個兩維的例子,來說明如何選擇表面體素的半徑。圖中深顏色的格子代表表面體素,淺顏色的格子代表背景體素。對于表面體素,使用它的外接圓的半徑來作為本體素的半徑,圖中的圓圈代表每個表面體素的外接圓。
通過使用點作為重建的基本單元,可以消除掉非常耗時的線性插值運算(如Marching Cubes移動立方體算法)或者三線性插值運算(如DividingCubes剖分立方體算法),并且因為只需要計算中心點的坐標(biāo),可以完全使用整數(shù)運算來代替浮點數(shù)運算,加上通過使用CPU(中央處理單元)的多媒體指令集,可以使重建速度得到成倍的提升。
除了運算速度以外,為了從海量的數(shù)據(jù)集中快速有效地抽取表面,還有很多的因素需要綜合考慮。第一必須考慮內(nèi)存消耗問題,因為海量的數(shù)據(jù)集不可能一次同時調(diào)入內(nèi)存,所以必須考慮如何最有效地將數(shù)據(jù)集來分層處理;第二必須考慮數(shù)據(jù)集的遍歷效率問題,因為有上億個體素需要遍歷,其中有一大部分屬于背景體素,如何快速地過濾掉這些背景體素也是一個需要認真考慮的問題。
不幸的是,內(nèi)存消耗和遍歷效率是兩個相互沖突的因素。如果使用一些空間分割技術(shù)如八叉樹等來加快體素的遍歷速度,則除了數(shù)據(jù)集以外,在內(nèi)存里還要存儲八叉樹等輔助結(jié)構(gòu),這對于大規(guī)模數(shù)據(jù)集顯然是不實際的;如果要節(jié)省內(nèi)存,則必然要順序地遍歷體素,這將降低重建的速度。
這里使用基于點的單層表面跟蹤,可以在消耗較少內(nèi)存的情況下,快速地重建出以點云形式表達的感興趣的表面。算法在運行時,切片數(shù)據(jù)按照從下到上的順序被分片讀入內(nèi)存,每兩片切片組成了一層。算法在一層中只在四個方向進行表面跟蹤,處理完一層后再讀進下一片切片數(shù)據(jù)。這樣可以既利用表面跟蹤的快速的遍歷速度,也可以節(jié)省內(nèi)存。
單層表面跟蹤與六個方向的表面跟蹤相比,可能會導(dǎo)致一個問題抽取出來的表面不完全。因為缺少兩個方向的自由度,在三維空間中是相互連接的曲面可能在一張切片中不連接,如圖4所示。
為了解決這個問題,我們在第一層的處理中采用順序掃描,同時將在上方向上有連接的體素加入到一個種子點集合中,在處理下一層切片時,就從這個種子點集合出發(fā),在四個方向上進行跟蹤,同樣的,記錄在上方向上有連接的體素。通過這樣的種子點傳播,不僅提高了運算速度,也可以部分解決上述問題。在圖4中,用粗線表示的和用細線表示的部分在大部分切片里都不連通,但是通過這種方法,最終連在了一個表面里。但盡管這樣,仍然損失了一個向下的自由度,當(dāng)?shù)谝粚又胁话ㄋ械姆N子點時,算法仍然可能只搜索出部分表面,如圖5所示,只有用粗線表示的部分被抽取出來。盡管這時可以再向下搜索,但一部分切片數(shù)據(jù)就要被重復(fù)讀取,同時整個算法的復(fù)雜度也大為增加。這里使用了一個簡單的方法,設(shè)置一個三角面片個數(shù)域值,如果某一層里抽取出來的三角面片個數(shù)少于這個域值,則在此層中再進行順序掃描,得到此層中完整的種子點,然后再向上傳播。實踐證明,如果域值選擇合適,這樣作是比較有效的。
從上面的描述可以看出,使用單層表面跟蹤可以很大程度上地節(jié)約內(nèi)存,事實上,考慮到計算梯度的需要,我們在內(nèi)存里面一次容納四張切片就足夠了。盡管這樣,但是考慮到成億個要處理的體素,還必須仔細考慮表面跟蹤的輸出數(shù)據(jù)結(jié)構(gòu)怎么組織。在傳統(tǒng)的表達方式中,提取出來的點云中的每個點都被添加進一個頂點列表中,并且一個頂點使用6個浮點數(shù)來記錄,三個記錄x、y、z坐標(biāo),三個記錄法向量的三個分量。對于非常大量的點來說,這種表達方式非常耗費內(nèi)存,尤其是在只有有限內(nèi)存資源的普通的PC(個人電腦)機上,這種表達方式是不可行的。本方法使用了一種緊湊的數(shù)據(jù)結(jié)構(gòu)來表達抽取出的表面上的點的信息,請參看圖6,圖中,左邊的方塊代表一個數(shù)據(jù)集,每一行代表一個掃描行,中間示意出了一個掃描行包括很多個點,最右邊是一個點的數(shù)據(jù)結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)類似于基于掃描線的RLE(行程編碼)編碼。假設(shè)數(shù)據(jù)集的三個方向上的維數(shù)分別為Ix,Iy和Iz,首先分配一個數(shù)組,其大小為Ix×Iz,每個元素是一個指針,代表了一個掃描行的信息。這個指針指向另外一個鏈表,鏈表中記錄了每個表面體素所抽取出來的點的坐標(biāo)信息和法向量信息。每個點的信息被定義在一個叫做PointList的結(jié)構(gòu)中,如下面的偽代碼所示struct PointList{unsigned short xPos; //x坐標(biāo)16位;unsigned short normal;//編碼后的法向量16位;}為了后續(xù)的生成邊界球分層能夠更有效地進行,每個點在向鏈表里面插入的時候,必須按照x坐標(biāo)升序排列。通過使用這樣的數(shù)據(jù)結(jié)構(gòu),本方法可以僅僅記錄每個點的x坐標(biāo),因為其它兩個坐標(biāo)y和z都可以在數(shù)組尋址的時候隱式地得到。在這里,因為x坐標(biāo)是記錄的中點的坐標(biāo),通過簡單的放大10倍或者記錄一個0.5的偏差,就可以完全使用整數(shù)來記錄坐標(biāo),而不需要浮點數(shù)。并且對于目前來說最大的數(shù)據(jù)集,16位來表達坐標(biāo)也已經(jīng)足夠用了。對于法向量來說,為了節(jié)省空間,必須對其進行編碼和量化。本方法中法向量在一個單位立方體上被量化,每個面被分成100×100個點,總共6×100×100個不同的法向量,被量化成16位,這樣的精度并不會造成視覺上圖像質(zhì)量的下降。
這里再從理論上分析一下使用這種緊湊的數(shù)據(jù)結(jié)構(gòu)所帶來的好處。通過使用上述的數(shù)據(jù)結(jié)構(gòu),對于一個具有M個點的點云數(shù)據(jù)來說,需要使用(Ix×Iz×4+M×4)字節(jié),其中Ix×Iz×4是指針數(shù)組所額外耗費的內(nèi)存空間。如果使用傳統(tǒng)的表達方式,將要使用M×6×4字節(jié)。對于海量的醫(yī)學(xué)數(shù)據(jù)集來說,M往往能達到上千萬,甚至上億,而Ix×Iz相對來說小得多,所以通常能成倍的節(jié)省內(nèi)存空間。
第二部分生成邊界球分層因為后續(xù)要使用基于點的繪制來得到交互式的顯示速度,在這里必須將上面一步得到的點云數(shù)據(jù)組織成分層的數(shù)據(jù)結(jié)構(gòu)。在傳統(tǒng)的基于點的繪制當(dāng)中,一般情況下是將點云組織成分層的邊界球,放在一個四叉樹中。當(dāng)四叉樹建立后,每個節(jié)點的屬性(坐標(biāo)、半徑)被量化、編碼成32位。為了處理超大規(guī)模的數(shù)據(jù)量,整棵四叉樹作為一個連續(xù)的流被寫入磁盤中,以備后續(xù)繪制時使用。
為了快速、有效地建立分層的邊界球表示,本發(fā)明再次利用了醫(yī)學(xué)影像的特有的優(yōu)點??紤]到點云中每個點的半徑是相等的,這里沒有使用四叉樹,而是使用了八叉樹,這樣就可以不必每個節(jié)點都存儲半徑信息。事實上,如果知道一個節(jié)點所在的層,就可以根據(jù)八叉樹的性質(zhì)和每一層節(jié)點的半徑相等這個特性來計算出這個節(jié)點的半徑。并且通過使用上面描述的PointList數(shù)據(jù)結(jié)構(gòu),也可以簡化八叉樹的生成過程。因為x坐標(biāo)是按照升序排列的,并且指針數(shù)組允許隨機訪問它的元素,那么在構(gòu)造八叉樹的過程中將一個節(jié)點分裂成子節(jié)點時所需要的信息能很容易地從這些數(shù)據(jù)結(jié)構(gòu)中得到。另外,本方法僅僅需要量化、編碼x坐標(biāo),y、z坐標(biāo)可以從數(shù)據(jù)結(jié)構(gòu)中直接得到,這也節(jié)省了很大的計算量。
本方法將每個節(jié)點的信息量化并編碼成32位,圖7給出了具體每一位的含義,其中,下面的漢字代表每個字段名,上面相對應(yīng)的數(shù)字代表此字段占多少位。
法向量是直接從PointList結(jié)構(gòu)中的normal字段得來的,x坐標(biāo)是從PointList結(jié)構(gòu)中的xPos字段得來的,并且被量化、編碼成10位。在樹結(jié)構(gòu)中,使用3位去記錄每個節(jié)點的子節(jié)點個數(shù),使用1位去記錄當(dāng)前節(jié)點是否有子孫節(jié)點。另外還有兩位用來記錄當(dāng)前節(jié)點法向量錐的范圍。
步驟三三維繪制通過上面的兩個步驟,已經(jīng)得到了感興趣的器官的表面的以點云形式表達的數(shù)據(jù)。三維繪制的目的就是快速地將這些數(shù)據(jù)顯示在屏幕上,并可以讓使用者來旋轉(zhuǎn)模型、改變顏色等等,為了達到交互式地顯示的目的,必須采用有效的算法。
在繪制階段,本方法使用了上面一個步驟計算出來的分層邊界球結(jié)構(gòu),也就是八叉樹結(jié)構(gòu)來進行可視性檢測和層次細節(jié)控制。這里從頂向下遍歷八叉樹,在每個節(jié)點,如果其邊界球是可視的,并且它的投影大小低于某個設(shè)定的閾值,那么這個節(jié)點就馬上被繪制出來。為了維護比較好的實時交互,在使用者旋轉(zhuǎn)模型時,設(shè)置一個比較高的閾值,以便得到比較高的幀速率;而在系統(tǒng)空閑時,逐步降低閾值直至屏幕的一個像素大小,從而得到最精細的圖像。
這里本方法再次利用了醫(yī)學(xué)影像的特點,因為八叉樹中同一層的節(jié)點的半徑大小是相同的,那么它們的投影大小也是相同的。因此在每一幀的開始,算法預(yù)先計算出根節(jié)點的投影大小,然后可以在后續(xù)的節(jié)點中重復(fù)利用此信息,而不必要對每一個節(jié)點都進行一層投影計算。
圖8給出了整個繪制部分的流程圖,為了最大限度地提高繪制速度,本方法還使用了Intel CPU(英特爾中央處理器)提供的SIMD(單指令多數(shù)據(jù))多媒體指令集來處理視錐裁剪、矩陣矢量計算等,這些都充分地利用了目前個人用PC(電腦)的硬件能力,來得到最高的性能。
實施例我們將此方法運用到我們自行設(shè)計實現(xiàn)的三維醫(yī)學(xué)影像處理與分析系統(tǒng)中。我們研制開發(fā)的基于微機的三維醫(yī)學(xué)影像處理與分析系統(tǒng)3DMed是在微機Windows XP/2000/NT/98環(huán)境下,采用面向?qū)ο蟮脑O(shè)計方法和軟件工程規(guī)范,用C++語言實現(xiàn)的、面向醫(yī)學(xué)領(lǐng)域的三維影像處理與分析系統(tǒng)。本系統(tǒng)具有豐富的圖形圖像處理與分析功能,不僅具有完善的二維圖像處理分析功能,而且具有強大的三維處理與分析、網(wǎng)絡(luò)傳輸與存儲等功能。系統(tǒng)提供的功能包括數(shù)據(jù)輸入、影像數(shù)據(jù)管理、二維處理、三維數(shù)據(jù)處理、切片重組、三維顯示、手術(shù)模擬、虛擬內(nèi)窺鏡、PACS(影像歸檔與通信系統(tǒng))與遠程診斷等一系列功能。
下面說明利用基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法來處理海量醫(yī)學(xué)影像數(shù)據(jù)集的具體實施過程。實驗數(shù)據(jù)為美國國立醫(yī)學(xué)圖書館網(wǎng)站上提供的虛擬人體數(shù)據(jù)集,這里使用的是CT(計算機斷層成像)數(shù)據(jù)集,數(shù)據(jù)集規(guī)模為512×512×1876×8位。使用的微機配備了一個PIII 866的CPU,256MB內(nèi)存,顯卡為NVidia GeForce 2 GTS,配備32MB顯存。具體操作步驟如下1首先通過數(shù)據(jù)接口讀取數(shù)據(jù)。
2點擊“高級構(gòu)造”按鈕,進入分割界面。
3系統(tǒng)提供了多種分割方法可供選擇,有種子生長、腐蝕膨脹、模糊連接、域值、交互式分割等,此時可以選取一種分割方法對數(shù)據(jù)進行分割。因為處理的是CT數(shù)據(jù),域值方法是比較有效的,用鼠標(biāo)指定好低域值和高域值以后,系統(tǒng)就會將在此域值之內(nèi)的物質(zhì)分割出來。
4分割以后,點“3D顯示”按鈕,系統(tǒng)就會調(diào)用本申請中所描述的算法進行三維重建,并將重建后的真實感圖形顯示出來,允許用戶使用鼠標(biāo)進行交互式觀察。對虛擬人體數(shù)據(jù)我們分別重建了皮膚和骨骼兩個模型,結(jié)果如圖9和圖10所示。圖9和圖10并沒有對原始數(shù)據(jù)進行任何前處理,主要目的只是為了演示本方法能對海量數(shù)據(jù)進行快速的三維重建。圖片上的一些非骨骼和皮膚的雜質(zhì)是原始圖像中的噪音,可以通過精細的手工分割去掉,在這里不再詳細闡述。
5我們記錄了基于點的重建和繪制所消耗的時間,對于本次實驗所處理的數(shù)據(jù),重建時間為骨骼30.39秒,皮膚83.88秒;繪制時間為骨骼1.62秒,皮膚3.13秒。而使用傳統(tǒng)的方法,對于如此海量的數(shù)據(jù)集無法處理,只能通過磁盤交換來進行處理。我們實現(xiàn)了一個基于傳統(tǒng)的方法進行重建的算法,并且使用磁盤空間來作為臨時交換空間,得到的重建時間都在500秒以上,繪制時間在60秒以上。
上述實驗結(jié)果與利用基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法來處理海量的醫(yī)學(xué)影像數(shù)據(jù)集的理論分析結(jié)論一致,具有高可信度、可應(yīng)用性和可采納性。
權(quán)利要求
1.一種基于點重建的超大規(guī)模醫(yī)學(xué)影像三維可視化方法,其特征在于,包括下列步驟(1)分割步驟,使用域值分割或者區(qū)域增長分割方法從醫(yī)學(xué)影像的二維切片中將感興趣的部分分割出來;(2)基于點的重建步驟,又包括兩個子步驟單層表面跟蹤和生成邊界球分層;a)單層表面跟蹤步驟,使用單層表面跟蹤的方法,將分割所得的感興趣的表面提取出來,并以點云的形式表達;b)生成邊界球分層步驟,將上一步生成的點云存儲到一棵樹中,樹中每個節(jié)點記錄這個點的邊界球信息;(3)三維繪制步驟,對提取出來的基于點的三維表面模型,使用基于點的繪制方法來進行交互式地顯示。
2.按權(quán)利要求1所述的方法,其特征在于,所述第(2)步基于點的重建步驟,以點作為重建的基本單元,且每個點的半徑是相等的。
3.按權(quán)利要求1所述的方法,其特征在于,所述第(2)步中a)單層表面跟蹤步驟,在進行單層表面跟蹤時,對x坐標(biāo)進行量化、編碼,不對y、z坐標(biāo)進行量化、編碼計算。
4.按權(quán)利要求1所述的方法,其特征在于,所述第(2)步中b)生成邊界球分層步驟,在生成邊界球分層時,使用八叉樹組織節(jié)點信息。
5.按權(quán)利要求4所述的方法,其特征在于,所述節(jié)點信息,其每個節(jié)點信息的量化編碼是32位,分為兩組,一組是x坐標(biāo)組,一組是法向量坐標(biāo)組,都為16位。
6.按權(quán)利要求5所述的方法,其特征在于,所述x坐標(biāo)組,分為x坐標(biāo)、樹結(jié)構(gòu)和法向量錐三個字段;x坐標(biāo)是從PointList結(jié)構(gòu)中的xPos字段得來的,并且被量化、編碼成10位;在樹結(jié)構(gòu)中,編碼成4位;法向量錐為2位。
7.按權(quán)利要求5所述的方法,其特征在于,所述法向量坐標(biāo)組,是直接從PointList結(jié)構(gòu)中的normal字段得來的。
8.按權(quán)利要求6所述的方法,其特征在于,所述樹結(jié)構(gòu)中,使用3位去記錄每個節(jié)點的子節(jié)點個數(shù),使用1位去記錄當(dāng)前節(jié)點是否有子孫節(jié)點;法向量錐的2位,用來記錄當(dāng)前節(jié)點法向量錐的范圍。
全文摘要
本發(fā)明涉及計算機圖形學(xué)和模式識別技術(shù)領(lǐng)域,特別涉及一種利用點的重建來進行超大規(guī)模醫(yī)學(xué)影像三維可視化的方法。其包括a.分割步驟,從醫(yī)學(xué)影像的二維切片中將感興趣的部分分割出來;b.基于點的重建步驟,使用基于點的重建方法提取并重建出感興趣的器官的三維表面,并以點的形式保存起來;c.三維繪制步驟,對提取出來的基于點的三維表面模型使用基于點的繪制方法來進行交互式地顯示。本發(fā)明的方法,在配有一塊中檔顯卡的普通的PC(個人電腦)上,實現(xiàn)與虛擬人體數(shù)據(jù)集相當(dāng)規(guī)模的超大規(guī)模數(shù)據(jù)集的快速三維重建與實時顯示。本發(fā)明具有高可信度、可應(yīng)用性和可采納性,并且在醫(yī)學(xué)領(lǐng)域具有重要的應(yīng)用價值。
文檔編號G06T17/00GK1632834SQ20031012117
公開日2005年6月29日 申請日期2003年12月22日 優(yōu)先權(quán)日2003年12月22日
發(fā)明者田捷, 趙明昌 申請人:中國科學(xué)院自動化研究所