專利名稱:實時三維醫學超聲圖像的重建方法
技術領域:
本發明涉及圖像數據處理,具體地說,涉及一種實時三維醫學超 聲圖像的重建方法。
背景技術:
傳統的醫學二維圖像的可視化和解釋己被廣為接受,但體積圖像 技術發明后,由于每個體積圖像數據(即三維圖像數據)都包含一系 列的二維切片(即二維圖像數據),必須觀看的二維切片的數量呈爆炸 式的增加,因而迫切需要更直觀地觀察體積圖像數據。
三維可視化的主要目的是將醫學影像設備得到的一系列的二維切 片(這一系列的二維切片構成體積圖像數據),使用計算機圖形學的技 術,構造出一個器官的三維模型,并且非常逼真的顯示給觀看者,使 觀看者能夠直觀地觀察體積圖像數據。隨著醫療影像設備的發展,醫 學影像的數據量越來越大,這給傳統的三維重建與繪制技術帶來了非 常大的挑戰。
目前三維可視化可分為二大類面繪制(SurfaceRendering)和體 繪制(Volumn Rendering)。面繪制包括經典的Marching Cubes算法, Cuberille算法等;體繪制包括經典的Ray Casting算法、Splatting算法、 Shear Warp算法等。
面繪制方法首先由體積圖像數據構造出中間幾何圖元(如曲面、 平面等),然后再由傳統計算機圖形學實現畫面繪制,產生顯示在屏幕 上的二維圖像。這時,可以將中間幾何圖元的生成過程看作是映射, 但是這時的映射只是將原始數據中的部分屬性映射成平面或曲面,在 繪制平面或者曲面的過程中丟失了部分原始信息,因而這種方法構造 出的可視化圖形雖然可以產生比較清晰的等值面圖像,但是不能反映 整個原始數據場的全貌及細節。體繪制方法與面繪制方法完全不同,它不構造中間幾何圖元,而 是直接由體積圖像數據產生顯示在屏幕上的二維圖像,是近年來得到 迅速發展的一種體積圖像數據可視化方法,它直接對精煉及處理后的 數據進行繪制,以生成二維圖像。體繪制方法不會丟失原始數據,相 對于面繪制方法具有圖像質量高的優點,但其計算量很大,計算時間 較長,難以達到實時顯示的效果。
另外,在醫學超聲圖像領域,典型的超聲波成像數據不能從笛卡 爾網格獲得,而必須由聲學網格來獲得,如圖1所示。超聲三維傳感 器一般由凸形傳感器芯部與電動機構成,制作時需在凸形傳感器芯部 外圍安裝一個外殼進行保護,通過該外殼直接接觸被測物體(如人 體),同時外殼內壁與凸形傳感器芯部必須存在一定空隙,保證凸形 傳感器芯部可以在外殼內自由轉動。掃描時,電動機帶動凸形傳感器 芯部繞固定軸進行擺動,通過控制擺動的總角度與總時間、以及每次 擺動的角度與時間等各種參數來控制凸形傳感器芯部的運動范圍與
運動時間;凸形傳感器芯部每擺動一個角度,對被測物體(如人體) 發出一個超聲波脈沖,并接收回波,從而獲得一個二維切片;凸形傳 感器芯部在擺動的過程中,每次發射超聲波脈沖的角度并不一致,因 而得到的各個二維切片之間是不平行的;由于在凸形傳感器芯部掃描 方向與擺動方向形成的面都是扇形面,因此形成的體積圖像數據是雙 曲面數據。但是,圖像處理裝置從超聲三維傳感器得到的體積圖像數 據實際上是立方體數據,即從超聲三維傳感器得到的體積圖像數據由 一系列相互平行的二維切片所組成,這些二維切片在內存中按時間次 序進行擺放,根據該立方體數據形成的圖像與被測物體不相符,會導 致形狀失真與變形,不能真實反映被測物體的實際形態。
發明內容
本發明所要解決的技術問題是提供一種實時三維醫學超聲圖像 的重建方法,采用這種方法重建圖像,既不丟失原始圖像信息,又能 實現圖像的實時顯示,并且形成的圖像能夠真實反映被測物體的實際 形態。采用的技術方案如下
一種實時三維醫學超聲圖像的重建方法,依次包括下述步驟
(1) 對來自超聲三維傳感器的體積圖像數據進行預處理,獲得 重建圖像所需的體積圖像數據;
在獲得來自超聲三維傳感器的體積圖像數據后,首先對該體積圖 像數據進行預處理,包括原始體積圖像數據的格式轉換、剔除冗余數 據,并導出所需的體積圖像數據。
超聲三維傳感器得到的數據一般為16位或者16位以上,但屏幕 只能顯示8位灰階圖像,這就需要我們把原始體積圖像數據進行格式 轉換,使其符合屏幕的顯示要求。
冗余數據一般出現在超聲三維傳感器掃描的開始位置與結束位 置,可采取一些方法(如去除法和清零法)進行剔除,這樣既能保證 圖像質量,又可減少了數據量。
(2) 對步驟(1)獲得的體積圖像數據的數據點進行分類,將反 映同一物質的數據點歸入同一類;
體積圖像數據中包含了來自被測物體(如人體或動物體)中多種 物質(如人體或動物體中的皮膚、血液、骨骼、心臟等組織或器官) 的數據,由于這些物質的密度各不相同,對超聲波的反射也不相同, 因此超聲三維傳感器從不同物質探測到的數據也不相同。按被探測的 物質種類對體積圖像數據的數據點進行分類,其目的是找出數據點與 各種物質之間的對應關系,使反映同一物質的數據點歸入同一類,而 反映不同物質的數據點則不在同一類。
對體積圖像數據的數據點進行分類可采用下述方法根據體積圖 像數據所在應用領域的背景知識,或者對全部數據點進行統計,設定
若干閾值dm(m=l, 2..., n,即m為正整數);如果各數據點以f (Xi, yj, zk) 表示,則將滿足條件d《f (Xi, yj, zk) <dm+1的數據點歸入同一類。
(3) 對數據點賦值,包括對數據點賦顏色值和不透明度值; 由于數據點本身具備灰度信息而不具備顏色信息,并且需要顯示
體積圖像數據內部的信息,因此需要給數據點賦顏色值與不透明度 值。
對數據點賦值可通過轉換函數來進行,從而給數據點賦上顏色值 與不透明度值。從數據點的灰度值轉換到顏色值,其實質是對一個預
先設定好的顏色表(顏色表可根據對當前的被探測的物質進行統計分 析計算后得出)進行査找,例如一個最簡單的線性査找表
ColOr[i]=i(i=0, 1...,255),則體積圖像數據中的最小值對應査找表 中的Color
=0,最大值對應査找表中的Color[255]二255,其余的 值則按線性插值進行査找;賦不透明度值的方法也是對一個預先設定 好的不透明度表進行查找。
通常,對同一類數據點賦上相同的顏色,即同一物質在圖像中采 用一種顏色表示,顏色值則對應顏色的飽和度。由于是人為進行賦值, 得到的最終圖像的顏色將是偽彩色。
不透明度表示數據點對光的吸收度,值為1時表示完全不透明, 值為0時表示完全透明。
(4)在圖形處理器中對體積圖像數據進行三維坐標變換;
由于典型的超聲三維傳感器都是凸形傳感器,但得到的體積圖像 數據是立方體數據,因此需要對體積圖像數據進行三維坐標變換,將 立方體數據變換成雙曲面數據,經過三維坐標變換,對每個二維切片 都進行了頂點坐標變換,并重新組織了二維切片之間的位置關系。三 維坐標變換可分兩步進行,首先立方體數據經過第一次變換先形成錐 形數據,然后再經過第二次變換后形成雙曲面數據,這樣形成的數據 才會使最終在屏幕上形成的圖像與被測物體相符合,不會導致形狀失 真與變形,能夠真實反映被測物體的實際形態。
在一具體方案中,進行三維坐標變換,具體可利用圖形處理器 (GPU)中的可編程處理器,依照下述步驟對體積圖像數據進行紋理 坐標變換(紋理坐標變換是三維坐標變換中的一種)
① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可 編程片段處理器中,并保存原始的紋理坐標;
② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息(如 探頭半徑、探頭角度、掃描線數、顯示角度、顯示點數等),對Y方 向數據進行縮放,在XY平面上形成梯形;利用步驟①保存的紋理坐 標來對XZ方向進行坐標變換,首先對Z方向數據進行縮放,在XZ平 面上形成梯形;經上述坐標變換后形成錐形數據;
③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放,并進行平移,產生弧形,就完成了 XY方向上的坐標變換;求出對當 前Z對應X變換后形成的角度,對X方向進行縮放,并進行平移,產 生弧形,就完成了 XZ方向上的坐標變換;經上述坐標變換后形成雙 曲面數據;
④根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。 由于經過紋理坐標變換后,體積圖像數據中心的位置發生變化,因此 應當重新計算體積圖像數據中心,以確保體積圖像數據能繞體積圖像 數據中心進行旋轉、平移、縮放等動作。
在另一具體方案中,進行三維坐標變換,具體可利用圖形處理器
(GPU)中的可編程處理器,依照下述步驟對體積圖像數據進行紋理
坐標變換(紋理坐標變換是三維坐標變換中的一種)
① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可 編程片段處理器中,并保存原始的紋理坐標;
② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息(如 探頭半徑、探頭角度、掃描線數、顯示角度、顯示點數等),對Y方
向數據進行縮放,在XY平面上形成梯形;
③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放, 并進行平移,產生弧形,就完成了XY方向上的坐標變換;
④ 利用步驟①保存的紋理坐標來對XZ方向進行坐標變換,首先
對Z方向數據進行縮放,在XZ平面上形成梯形;
⑤ 求出對當前Z對應X變換后形成的角度,對X方向進行縮放,
并進行平移,產生弧形,就完成了XZ方向上的坐標變換;
⑥ 根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。 由于經過紋理坐標變換后,體積圖像數據中心的位置發生變化,因此 應當重新計算體積圖像數據中心,以確保體積圖像數據能繞體積圖像 數據中心進行旋轉、平移、縮放等動作。
(5)在圖形處理器中進行重采樣; 經過三維坐標變換后,數據點的坐標通常會發生變化,也就是說, 數據點在雙曲面數據中的坐標與其在立方體數據中的原始坐標不同, 根據數據點的原始坐標不能在雙曲面數據中找到相應數據點的數據 值(包括顏色值和不透明度值),因此必須進行重采樣,將數據點的
原始坐標轉換成數據點在雙曲面數據中的坐標。優選重采樣是在圖形 處理器(GPU)的可編程片段處理器中進行的,可編程片段處理器根 據數據點的原始坐標計算得到數據點在雙曲面數據中的坐標,并一一 對應地用數據點在雙曲面數據中的坐標替換原始坐標。每個數據點對 片段處理器來說相當于一個運算核,片段處理器對各運算核進行并行 計算,從而提高運算速度以達到實時的目的。
(6)圖像合成。
圖像合成可在圖形處理器中進行。圖像合成一般采用光線投射法 的原理進行,其目的是沿某一像素點發出一條射線,計算該射線上各 數據點的顏色值及不透明度值,并進行合成,形成該像素點的最終顏
色與最終透明度。合成的原理是體積圖像數據可以看成是多個二維 切片組成的,這些二維切片經過坐標變換后投影到顯示屏幕上,則多 個切片上的點會映射到顯示屏幕上的同一個點,顯示屏幕上的這個點 的最終顯示顏色與最終透明度由多個二維切片上的點來混合決定。
經過圖像合成后,可在顯示屏幕上顯示圖像,該圖像能夠反映被 測物體的實際形態。
上述實時三維醫學超聲圖像的重建方法中,其關鍵在于在圖形處 理器中對體積圖像數據進行三維坐標變換和重采樣,而對體積圖像數 據進行預處理、對體積圖像數據的數據點進行分類、對數據點賦值和 圖像合成等步驟可采用常規技術手段實現。
為了使屏幕上顯示的圖像能夠較逼真地模擬出自然界的光照效
果,本發明還通過圖形處理器(GPU)的可編程處理器,構建光照模 型(可用CG (C for graphics)顯卡編程語言表達光照模型),在 重采樣前對各數據點進行光照量的計算,即在步驟(3)對數據點賦 值后,對各數據點進行光照量的計算,并將光照量與數據點的顏色值 進行混合,從而模擬出較逼真的光照效果。 用CG語言表達的光照模型如下
surfaceColor = emissive+ambient+diffuse+specular;
其中surfaceColor表示光照量,光照量surfaceColor是放射光 分量emissive、環境光分量ambient、漫反射光分量diffuse和鏡面 反射光分量specular等光照分量之和;各分量具體描述如下
1) 放射光分量emissive表示了由物體表面所發出的光,它的作 用是獨立于所有光源的,是一種在計算完其它所有光照分量后添加的 顏色,它與其它分量沒有聯系,用Ke表示,即emissive二lL;
2) 環境光分量ambient代表了入射光在一個場景里經過多次折 射后、看起來像是來自四面八方一樣的光,并不依賴于光源的位置, 只依賴于物體材質的反射能力與照射在物體上的環境光的顏色,表示 為ambient=Ka*globalAmbient ,其中Ka為環境光分量的系數, globalAmbient為入射環境光的顏色;
3) 漫反射光分量diffuse代表從一個表面相等地向所有方向反 射出去的方向光,通常物體表面微觀尺寸上是非常粗糙的,當入射光 線到達物體表面時,光線會向各個方向反射,表示為 diffuse=Kd*lightColor*max(N L, 0), 其中Kd是物體的漫反射顏 色,lightColor是入射漫反射光的顏色,N是規范化的表面法向量(通 常情況下我們并不能直接獲得每個頂點的表面法向量,這時需要用紋 理點的表面法向量來代替),L是規范化的指向光源的向量;
4) 鏡面反射光分量specular代表了從一個表面主要的反射方向 附近被反射的光,它非常依賴于觀察者的位置,不僅受光源和物體的 反射顏色性質的影響,也受物體表面的光澤度的影響,表示為
specular=Ks* lightColor*facing* (max (N H) , 0) shininess,
其中Ks是物體材質的鏡面反射顏色,lightColor是入射鏡面反 射光的顏色,N是規范化的表面法向量,H是視點向量與光源向量的 點積,shininess表示物體的光澤度。
在GPU中的可編程處理器中對各數據點的各個光照分量進行計 算后,對各個光照分量進行累加,得到各數據點的光照量。
如果需要使最后在屏幕上顯示的圖像具有聚光燈和/或半透明效 果,還需計算距離衰減,距離衰減量attenuationFactor表示為 attenuationFactor^/(X+K一d+k,扭d),其中d是物體到光源的距 離,K。、 Id、 kq為控制衰減量的常量;然后將距離衰減量與上述各 個光照分量累加,得到光照量。
進行重采樣之后,將各數據點的光照量與顏色值進行加權求和 (光照量與顏色值各自的權重可根據需要設定,當要求圖像較亮時光
照量的權重較大,當要求圖像較暗時光照量的權重較小),可得出各 數據點的光亮度值,從而使最后在屏幕上顯示的圖像具有較理想的光
照效果。在這種情況下,步驟(6)的圖像合成一般采用光線投射法
的原理進行,其目的是沿某一像素點發出一條射線,計算該射線上各
數據點的光亮度值及不透明度值,并進行合成,形成該像素點的最終
光亮度與最終透明度。
為了使屏幕上顯示的圖像具有凹凸感,增強圖像的真實感,優選
在上述對各數據點光照量的計算中還具有明暗計算,利用明暗計算突
出顯示不同物質之間的邊界面。明暗計算的步驟如下
(a)計算各數據點的梯度值(梯度是指灰階的變化程度);
梯度值的計算可在中央處理器中進行,由如下中心差分公式求
出,其中f(Xi,yi,Zi)表示源數據點的灰度值,Gf(Xi,yi,Zi)表示目標數 據點的梯度值-
5 (/ ( ) / (A'少w' ))
5(/(W,,z")扁/(W"+,))
(b) 將步驟(a)得到的梯度值作為紋理保存進圖形處理器(GPU)
中;
(c) 圖形處理器的可編程頂點處理器接收到紋理后,將紋理傳遞 給可編程片段處理器;可編程片段處理器接收紋理后,用紋理點的表 面法向量來代替頂點的表面法向量,計算光照量。這樣可減小中央處 理器(CPU)向圖形處理器(GPU)傳輸的數據量,確保實時的性能。
優選在步驟(5)進行重采樣的同時還進行圖像后處理,圖像后 處理包括平滑、增強、灰階變換等,可在圖形處理器中與重采樣一起 實現,以節省硬件的資源。
平滑、增強的實現有多種方法,可以在空間域或頻率域上進行, 可以針對不同的組織采用不同的方法,比較常用的三種方法是中值 法,最小方差法,低通濾波法。在重采樣的時候,不僅對當前點進采 樣,還需對其周邊相關的點進行采樣,這樣得到一系列與當前點相關 的點,然后通過各種平滑方法對其進行運算,達到平滑或增強的效果;
這些平滑方法本身并不復雜但計算量很大,因此將平滑方法整合進圖 形處理器(GPU)進行計算,達到實時平滑或增強的效果。例如,在
頻域上實現平滑算法, 一般需作快速傅立葉(FFT)轉換,對于體積 圖像數據來說計算量非常大,因此可用圖形處理器(GPU)來實現快 速傅立葉(FFT)轉換,再根據需要對其進行高通、低通或者其它濾 波,運算速度可提高8 10倍;又如,采用空間域的中值法實現平滑 算法,對任一個當前點來說(邊緣上的點需特殊處理),先計算出它 在三個坐標軸上的相鄰點的偏移量,以512x256x128的體積圖像數據 來說,它在三個方向上的偏移量分別為1/512、 1/256、 1/128,根據 這個偏移量計算得到當前點周圍相鄰26個點的紋理坐標偏移量,然 后對這些紋理坐標分別進行三維紋理采樣,得到各點的采樣值,再進 行中值的査找來代替當前點的采樣值。
灰階變換相當于灰階拉伸或者壓縮,把需要變換的灰階函數轉換 成査找表并通過紋理送入GPU,對重采樣后的值通過該査找表來實現 變換功能。
本發明提供一種基于圖形處理器的體繪制方法,既不丟失原始圖 像信息,能夠反映整個原始體積圖像數據的全貌及細節,又可對可編 程硬件圖形處理器進行編程,充分利用圖形處理器的高速運算能力和 高度并行性,對體積圖像數據進行快速運算,實現圖像的實時顯示, 從而實現三維醫學超聲圖像的實時重建,而且,通過三維坐標變換和 重采樣,能夠使體積圖像數據及其數據點與被測物體相符,從而使最 后形成的圖像能夠真實反映被測物體的實際形態。另外,由于三維醫 學超聲圖像的重建過程交由圖形處理器進行處理,中央處理器不再負 擔三維醫學超聲圖像重建過程中繁重的運算任務,因此中央處理器的 資源得到釋放,可以更專心的處理控制、分支等比較擅長的任務,使 硬件資源都得到合理的安排與利用。
圖1是超聲三維傳感器的成像網格示意圖; 圖2是本發明優選實施例實時三維醫學超聲圖像的重建方法的 流程圖3是本發明另一優選實施例三維坐標變換過程的示意圖。
具體實施例方式
如圖2所示,這種實時三維醫學超聲圖像的重建方法依次包括下 述步驟
(1) 對來自超聲三維傳感器的體積圖像數據進行預處理,獲得
重建圖像所需的體積圖像數據;本步驟可在中央處理器CPU中進行。
在獲得來自超聲三維傳感器的體積圖像數據后,首先對該體積圖 像數據進行預處理,包括原始體積圖像數據的格式轉換、剔除冗余數 據,并導出所需的體積圖像數據。
超聲三維傳感器得到的數據一般為16位或者16位以上,但屏幕 只能顯示8位灰階圖像,這就需要我們把原始體積圖像數據進行格式 轉換(將16位或者16位以上的數據轉換為8位數據),使其符合屏 幕的顯示要求。
冗余數據一般出現在超聲三維傳感器掃描的開始位置與結束位 置,可采取一些方法(如去除法和清零法)進行剔除,這樣既能保證 圖像質量,又可減少了數據量。
(2) 對步驟(1)獲得的體積圖像數據的數據點進行分類,將反 映同一物質的數據點歸入同一類;本步驟可在中央處理器CPU中進 行。
對體積圖像數據的數據點進行分類可采用下述方法根據體積圖 像數據所在應用領域的背景知識,或者對全部數據點進行統計,設定 若干閾值4 (m=l,2...,n);如果各數據點以f(Xi,y,,Zk)表示,則將 滿足條件dm《f (Xi, yj, zk) <d +1的數據點歸入同一類。
(3) 對數據點賦值;包括
(3 — 1)賦顏色值(本步驟可在中央處理器CPU中進行),對一 個預先設定好的顏色表(顏色表可根據對當前的被探測的物質進行統 計分析計算后得出)進行查找;對同一類數據點賦上相同的顏色,即 同一物質在圖像中采用一種顏色表示,顏色值則對應顏色的飽和度。 由于是人為進行賦值,得到的最終圖像的顏色將是偽彩色。
(3_2)賦不透明度值(本步驟可在中央處理器CPU中進行),
對一個預先設定好的不透明度表進行査找。不透明度表示數據點對光 的吸收度,值為1時表示完全不透明,值為0時表示完全透明。
(3 — 3)通過圖形處理器(GPU)的可編程處理器,構建光照模 型(采用CG (C for graphics)顯卡編程語言表達光照模型),進 行光照量的計算,并將光照量與數據點的顏色值進行混合,從而模擬 出較逼真的光照效果。
光照量的計算中還具有明暗計算,明暗計算的步驟如下
(a)計算各數據點的梯度值(梯度是指灰階的變化程度); 梯度值的計算可在中央處理器中進行,由如下中心差分公式求 出,其中f(Xi,yi,Zi)表示源數據點的灰度值,Gf(Xi,yi,Zi)表示目標數
據點的梯度值
<formula>formula see original document page 16</formula>
(b)將步驟(a)得到的梯度值作為紋理保存進圖形處理器(GPU) 中;該部分的計算機源程序(用0penGL語言表達)如下 glGenTextures(l, &GL—TiduTexture); 〃申請創建紋理空間并設定紋理參數 glBindTexture(GL—TEXTURE—3D, GL_TiduTexture); glTexParameteri(GL—TEXTURE—3D, GL—TEXTURE—WRAP—S, GL—CLAMP) glTexParameteri(GL—TEXTURE_3D, GLJTEXTURE—WRAP—T, GL_CLAMP) glTexParameteri(GLJTEXTURE_3D, GL—TEXTURE_WRAP—R, GL—CLAMP) glTexParameteri(GL—TEXTURE—3D, GL_TEXTURE_MAG—FILTER, L—LINEAR); glTexParameteri(GL—TEXTURE_3D, GL—TEXTURE—MIN—FILTER, GL—LINEAR); glTexImage3DEXT(GL—TEXTURE—3D, 0, GL—RGBA, iWidth, iHeight, iD印th, 0, GL一RGBA, GL—UNSIGNED—BYTE, NULL);
glBindTexture(GL—TEXTURE—3D, GL_TiduTexture); 〃綁定梯度3D紋理 glTexSublmage3DEXT (GLJTEXTURE—3D, 0, 0, 0, 0, iWidth, iHeight, iD印th,
GL_LUMINANCE, GL—UNSIGNED—BYTE, TiduPtr); (c)圖形處理器的可編程頂點處理器接收到紋理后,將紋理傳 遞給可編程片段處理器;可編程片段處理器接收紋理后,用紋理點的 表面法向量來代替頂點的表面法向量,計算光照量。 用CG語言表達的光照模型如下
surfaceColor 二 emissive+ambient+diffuse+specular
+attemmtionFactor;
其中surfaceColor表示光照量,光照量surfaceColor是放射光 分量emissive、環境光分量ambient、漫反射光分量diffuse、鏡面 反射光分量specular和距離衰減量attenuationFactor等光照分量 之和;各分量具體描述如下
1) 放射光分量emissive表示了由物體表面所發出的光,它的作 用是獨立于所有光源的,是一種在計算完其它所有光照分量后添加的 顏色,它與其它分量沒有聯系,用Ke表示,即emissive二Ke;
2) 環境光分量ambient代表了入射光在一個場景里經過多次折 射后、看起來像是來自四面八方一樣的光,并不依賴于光源的位置, 只依賴于物體材質的反射能力與照射在物體上的環境光的顏色,表示 為ambient=Ka*globalAmbient ,其中Ka為環境光分量的系數, globalAmbient為入射環境光的顏色;
3) 漫反射光分量diffuse代表從一個表面相等地向所有方向反 射出去的方向光,通常物體表面微觀尺寸上是非常粗糙的,當入射光 線到達物體表面時,光線會向各個方向反射,表示為 diffuse=Kd*lightColor*max(N L, 0), 其中Kd是物體的漫反射顏 色,lightColor是入射漫反射光的顏色,N是規范化的表面法向量(用 紋理點的表面法向量來代替頂點的表面法向量,進行計算),L是規 范化的指向光源的向量;
4) 鏡面反射光分量specular代表了從一個表面主要的反射方向 附近被反射的光,它非常依賴于觀察者的位置,不僅受光源和物體的 反射顏色性質的影響,也受物體表面的光澤度的影響,表示為
specular=Ks* lightColor*facing* (max (N H) , 0) shininess,
其中Ks是物體材質的鏡面反射顏色,lightColor是入射鏡面反
射光的顏色,N是規范化的表面法向量(用紋理點的表面法向量來代
替頂點的表面法向量,進行計算),H是視點向量與光源向量的點積,
shininess表示物體的光澤度;
5)距離衰減量attenuationFactor表示為
attenuationFactor=l/(Kc+K1*d+kqd*d),其中d是物體到光源的距
離,Kc、K1 kq為控制衰減量的常量;
在圖形處理器(GPU)中的可編程處理器中對各數據點的各個光
照分量進行計算后,對各個光照分量進行累加,得到各數據點的光照
(4) 中央處理器將體積圖像數據傳輸給圖形處理器,在圖形處 理器中對體積圖像數據進行三維坐標變換;
三維坐標變換具體可利用圖形處理器(GPU)中的可編程處理器, 依照下述步驟對體積圖像數據進行紋理坐標變換(紋理坐標變換是三
維坐標變換中的一種)
① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可
編程片段處理器中,并保存原始的紋理坐標;
② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息(如 探頭半徑、探頭角度、掃描線數、顯示角度、顯示點數等),對Y方 向數據進行縮放,在XY平面上形成梯形;
③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放, 并進行平移,產生弧形,就完成了XY方向上的坐標變換;
④ 利用步驟①保存的紋理坐標來對XZ方向進行坐標變換,首先 對Z方向數據進行縮放,在XZ平面上形成梯形;
⑤ 求出對當前Z對應X變換后形成的角度,對X方向進行縮放, 并進行平移,產生弧形,就完成了XZ方向上的坐標變換;
⑥ 根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。 由于經過紋理坐標變換后,體積圖像數據中心的位置發生變化,因此 應當重新計算體積圖像數據中心,以確保體積圖像數據能繞體積圖像 數據中心進行旋轉、平移、縮放等動作。
在可編程片段處理器中,在[O, l]區間外的數據屬于冗余數據或 者重復數據,經過坐標變換后,可以利用剪切面對紋理坐標[O, l]外 的部分進行剪切,剪切后的數據不參加重采樣的計算,從而提高運算 性能。
(5) 在圖形處理器中進行重采樣; 經過三維坐標變換后,數據點的坐標通常會發生變化,也就是說,
數據點在雙曲面數據中的坐標與其在立方體數據中的原始坐標不同, 根據數據點的原始坐標不能在雙曲面數據中找到相應數據點的數據
值(包括顏色值、不透明度值和光照量),因此必須進行重采樣,將 數據點的原始坐標轉換成數據點在雙曲面數據中的坐標。重采樣是在
圖形處理器(GPU)的可編程片段處理器中進行的,可編程片段處理
器根據數據點的原始坐標計算得到數據點在雙曲面數據中的坐標,并 一一對應地用數據點在雙曲面數據中的坐標替換原始坐標。每個數據 點對片段處理器來說相當于一個運算核,片段處理器對各運算核進行 并行計算,從而提高運算速度以達到實時的目的。
進行重采樣之后,將各數據點的光照量與顏色值進行加權求和 (光照量與顏色值各自的權重可根據需要設定,當要求圖像較亮時光 照量的權重較大,當要求圖像較暗時光照量的權重較小),可得出各 數據點的光亮度值,從而使最后在屏幕上顯示的圖像具有較理想的光 照效果。
本實施例用于獲得光亮度值(包括光照量的計算及其重采樣、光
照量與顏色值的混合)的部分計算機源程序(用CG語言表達)如下
float3 ambient = Ka + globalAmbient; 〃環境光分量
float3 emissive = Ke; 〃放射光分量
〃得到重采樣的梯度值,進行明暗度計算
float4 normal4 = tex3Dproj(TiduTexture, inTex. yzxw);
float3 N = normal4.xyz; 〃使用紋理坐標代替頂點坐標
N = N*2-1.0; 〃放大梯度
N = normalize(N); 〃規范化的表面法向量
float3 L = normalize(lightPosition - N);〃片段位置到光源的規范化向量
float diffuse= dot (oNormal, L); 〃漫反射光分量
float3 V = normalize(eyePosition — N); 〃視點到片段位置的規范化向量 float3 H = normalize(L + V); 〃規范化V與L的半角向量 float specular= pow(max(dot(N, H), 0), shininess); 〃鏡面反射光分量 float4 light = lit (diffuse, specular, shininess);〃綜合計算 float4 lightcolor = float4((emissive + ambient + Kd氺light. y + Ks*light. z), 1.0);
inTex.yz = inTex. yz * inTex.w; 〃預先把坐標乘以縮放因子 float val = tex3Dproj (USTexture, inTex. yzxw);〃三維重建采樣 sColor0 = texlD(ColorMap, val); 〃顏色映射ID紋理采樣 〃光亮度值輸出
(6) 圖像后處理;
圖像后處理包括平滑、增強、灰階變換等,可在圖形處理器中與 重采樣一起實現,以節省硬件的資源。
平滑、增強的實現有多種方法,可以在空間域或頻率域上進行, 可以針對不同的組織采用不同的方法,比較常用的三種方法是中值 法,最小方差法,低通濾波法。在重采樣的時候,不僅對當前點進采 樣,還需對其周邊相關的點進行采樣,這樣得到一系列與當前點相關 的點,然后通過各種平滑方法對其進行運算,達到平滑或增強的效果; 這些平滑方法本身并不復雜但計算量很大,因此將平滑方法整合進圖 形處理器(GPU)進行計算,達到實時平滑或增強的效果。例如,在 頻域上實現平滑算法, 一般需作快速傅立葉(FFT)轉換,對于體積 圖像數據來說計算量非常大,因此可用圖形處理器(GPU)來實現快 速傅立葉(FFT)轉換,再根據需要對其進行高通、低通或者其它濾 波,運算速度可提高8 10倍;又如,采用空間域的中值法實現平滑 算法,對任一個當前點來說(邊緣上的點需特殊處理),先計算出它 在三個坐標軸上的相鄰點的偏移量,以512x256x128的體積圖像數據 來說,它在三個方向上的偏移量分別為1/512、 1/256、 1/128,根據 這個偏移量通過三角函數公式計算計算得到當前點周圍相鄰26點的 紋理坐標偏移量,然后對這些紋理坐標分別進行三維紋理采樣,得到 各點的采樣值,再進行中值的查找來代替當前點的采樣值。
灰階變換相當于灰階拉伸或者壓縮,把需要變換的灰階函數轉換 成查找表并通過紋理送入GPU,對重采樣后的值通過該查找表來實現 變換功能。
(7) 圖像合成;圖像合成在圖像處理器中進行。 圖像合成一般采用光線投射法的原理進行,其目的是沿某一像素
點發出一條射線,計算該射線上各數據點的光亮度值及不透明度值, 并進行合成,形成該像素點的最終光亮度與最終透明度。合成的原理 是體積圖像數據可以看成是多個二維切片組成的,這些二維切片經 過坐標變換后投影到顯示屏幕上,則多個切片上的點會映射到顯示屏
幕上的同一個點,顯示屏幕上的這個點的最終顯示顏色與最終透明度 由多個二維切片上的點來混合決定。
經過圖像合成后,可在顯示屏幕上顯示圖像,該圖像能夠反映被 測物體的實際形態。
本實施例采用顯卡生產廠商NVIDIA提供的圖形處理器(GPU), 并利用NVIDIA的CG (C for graphics)顯卡編程語言與0PENGL三 維圖形接口對圖形處理器進行編程。
在另一具體方案中,如圖3所示,三維坐標變換可分兩步進行, 首先立方體數據A經過第一次變換先形成錐形數據B,然后再經過第 二次變換后形成雙曲面數據C。具體是利用圖形處理器(GPU)中的 可編程處理器,依照下述步驟,對體積圖像數據進行紋理坐標變換(紋 理坐標變換是三維坐標變換中的一種)
① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可 編程片段處理器中,并保存原始的紋理坐標;
② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息(如 探頭半徑、探頭角度、掃描線數、顯示角度、顯示點數等),對Y方 向數據進行縮放,在XY平面上形成梯形;利用步驟①保存的紋理坐 標來對XZ方向進行坐標變換,首先對Z方向數據進行縮放,在XZ平 面上形成梯形;經上述坐標變換后形成錐形數據B;
③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放, 并進行平移,產生弧形,就完成了 XY方向上的坐標變換;求出對當 前Z對應X變換后形成的角度,對X方向進行縮放,并進行平移,產 生弧形,就完成了 XZ方向上的坐標變換;經上述坐標變換后形成雙
曲面數據C;
④ 根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。 由于經過紋理坐標變換后,體積圖像數據中心的位置發生變化,因此 應當重新計算體積圖像數據中心,以確保體積圖像數據能繞體積圖像 數據中心進行旋轉、平移、縮放等動作。
權利要求
1、一種實時三維醫學超聲圖像的重建方法,其特征在于依次包括下述步驟(1)對來自超聲三維傳感器的體積圖像數據進行預處理,獲得重建圖像所需的體積圖像數據;(2)對步驟(1)獲得的體積圖像數據的數據點進行分類,將反映同一物質的數據點歸入同一類;(3)對數據點賦值,包括對數據點賦顏色值和不透明度值;(4)在圖形處理器中對體積圖像數據進行三維坐標變換,將立方體數據變換成雙曲面數據;(5)在圖形處理器中進行重采樣,將數據點的原始坐標轉換成數據點在雙曲面數據中的坐標;(6)圖像合成。
2、 根據權利要求1所述的實時三維醫學超聲圖像的重建方法,其 特征是步驟(1)中,對來自超聲三維傳感器的體積圖像數據的預處 理包括原始體積圖像數據的格式轉換、剔除冗余數據,并導出所需的 體積圖像數據。
3、 根據權利要求1所述的實時三維醫學超聲圖像的重建方法,其 特征是步驟(2)中,對體積圖像數據的數據點進行分類采用下述方法根據體積圖像數據所在應用領域的背景知識,或者對全部數據點進行統計,設定若干閾值d ,其中m為正整數;如果各數據點以 f(Xi,y」,Zk)表示,則將滿足條件dm《f(Xi,yj,ZkX(U的數據點歸入同一類。
4、 根據權利要求1所述的實時三維醫學超聲圖像的重建方法,其特征是步驟(4)中,三維坐標變換分兩步進行,首先立方體數據經過第一次變換先形成錐形數據,然后再經過第二次變換后形成雙曲面數據。
5、 根據權利要求4所述的實時三維醫學超聲圖像的重建方法,其特征是步驟(4)中進行三維坐標變換,具體是,利用圖形處理器中 的可編程處理器,依照下述步驟對體積圖像數據進行紋理坐標變換① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可 編程片段處理器中,并保存原始的紋理坐標;② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息,對 Y方向數據進行縮放,在XY平面上形成梯形;利用步驟①保存的紋 理坐標來對XZ方向進行坐標變換,首先對Z方向數據進行縮放,在 XZ平面上形成梯形;經上述坐標變換后形成錐形數據;③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放,并進行平移,產生弧形,就完成了 XY方向上的坐標變換;求出對當前Z對應X變換后形成的角度,對X方向進行縮放,并進行平移,產 生弧形,就完成了 XZ方向上的坐標變換;經上述坐標變換后形成雙 曲面數據;④ 根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。
6、 根據權利要求1所述的實時三維醫學超聲圖像的重建方法, 其特征是步驟(4)中進行三維坐標變換,具體是,利用圖形處理器中的可編程處理器,依照下述步驟對體積圖像數據進行紋理坐標變換① 對可編程頂點處理器中的頂點信息不行進處理,直接傳遞到可編程片段處理器中,并保存原始的紋理坐標;② 選取XY軸形成的平面,依據超聲三維傳感器的參數信息,對 Y方向數據進行縮放,在XY平面上形成梯形;③ 求出對當前Y對應X變換后形成的角度,對X方向進行縮放,并進行平移,產生弧形,就完成了XY方向上的坐標變換;④ 利用步驟①保存的紋理坐標來對XZ方向進行坐標變換,首先對Z方向數據進行縮放,在XZ平面上形成梯形;⑤ 求出對當前Z對應X變換后形成的角度,對X方向進行縮放,并進行平移,產生弧形,就完成了XZ方向上的坐標變換;⑥ 根據超聲三維傳感器的參數信息重新計算體積圖像數據中心。
7、 根據權利要求1所述的實時三維醫學超聲圖像的重建方法,其特征是步驟(5)中,重采樣是在圖形處理器的可編程片段處理器中進行的,可編程片段處理器根據數據點的原始坐標計算得到數據點在雙曲面數據中的坐標,并一一對應地用數據點在雙曲面數據中的 坐標替換原始坐標。
8、 根據權利要求1 7任一項所述的實時三維醫學超聲圖像的重建方法,其特征是通過圖形處理器的可編程處理器,構建光照模型,在步驟(3)對數據點賦值后,對各數據點進行光照量的計算;光照模型用CG語言表達如下surfaceColor = emissive+ambient+diffuse+speculaxj其中surfaceColor表示光照量,光照量surfaceColor是放射光分量emissive、環境光分量ambient、漫反射光分量diffuse和鏡面反射光分量specular之和;各分量具體描述如下1) 方文身寸光分量emissive用Ke表示,艮卩emissive = Ke;2) 環境光分量ambient表示為ambient=Ka*globalAmbient,其 中Ka為環境光分量的系數,globalAmbient為入射環境光的顏色;3) 漫反射光分量diffuse表示為 diffuse二Kd氺lightColor氺max(N 0),其中Kd是物體的漫反射顏色,lightColor是入射漫反射光的顏 色,N是規范化的表面法向量,L是規范化的指向光源的向量;4) 鏡面反射光分量specular表示為 specular=Ks* lightColor*facing* (max (N H), 0) shininess,其中L是物體材質的鏡面反射顏色,lightColor是入射鏡面反 射光的顏色,N是規范化的表面法向量,H是視點向量與光源向量的 點積,shininess表示物體的光澤度;在步驟(5)進行重采樣之后,將各數據點的光照量與顏色值進 行加權求和,得出各數據點的光亮度值。
9、 根據權利要求8所述的實時三維醫學超聲圖像的重建方法,其特征是計算各數據點的光照量時,還計算距離衰減,距離衰減量 EittenuationFactor表示為attenuationFactor二l/(Kc+Ki求d+kq氺d氺d), 其中d是物體到光源的距離,K。、 Ki、 kq為控制衰減量的常量;光 照量surfaceColor是放射光分量emissive、環境光分量ambient、 漫反射光分量diffuse、鏡面反射光分量specular和距離衰減量 attenuationFactor之和。
10、根據權利要求8所述的實時三維醫學超聲圖像的重建方法, 其特征是所述對各數據點光照量的計算中還具有明暗計算,明暗計 算的歩驟如下(a) 計算各數據點的梯度值,梯度值在中央處理器中進行;(b) 將步驟(a)得到的梯度值作為紋理保存進圖形處理器中; (C)圖形處理器的可編程頂點處理器接收到紋理后,將紋理傳遞給可編程片段處理器;可編程片段處理器接收紋理后,用紋理點的 表面法向量來代替頂點的表面法向量,作為規范化的表面法向量N, 計算光照量。
全文摘要
一種實時三維醫學超聲圖像的重建方法,依次包括下述步驟(1)對來自超聲三維傳感器的體積圖像數據進行預處理,獲得重建圖像所需的體積圖像數據;(2)對步驟(1)獲得的體積圖像數據的數據點進行分類,將反映同一物質的數據點歸入同一類;(3)對數據點賦值,包括對數據點賦顏色值和不透明度值;(4)在圖形處理器中對體積圖像數據進行三維坐標變換,將立方體數據變換成雙曲面數據;(5)在圖形處理器中進行重采樣,將數據點的原始坐標轉換成數據點在雙曲面數據中的坐標;(6)圖像合成。本發明既不丟失原始圖像信息,又能實現圖像的實時顯示,實現三維醫學超聲圖像的實時重建,并使最后形成的圖像能夠真實反映被測物體的實際形態。
文檔編號G06T15/00GK101336831SQ20081003023
公開日2009年1月7日 申請日期2008年8月13日 優先權日2008年8月13日
發明者王海潮, 蔡澤杭, 郭境峰 申請人:汕頭超聲儀器研究所