李珣 王曉東
【摘 要】本文主要介紹在腦手術醫(yī)學圖像軟件的二次開發(fā)中,關于醫(yī)學圖像配準相關幾何變換算法的實現(xiàn),開發(fā)工具為Visual C++6.0。
【關鍵詞】二次開發(fā);醫(yī)學圖像配準;幾何變換;
一、引言
近兩個世紀以來隨著醫(yī)學成像技術不斷成熟,臨床醫(yī)學逐漸具備兩大類圖像信息,一類是解剖結(jié)構(gòu)圖像,包括計算機斷層成像(CT)、磁共振成像(MRI)和B超等;另一類是功能圖像,包括單光子發(fā)射斷層成像(SPECT)和正電子發(fā)射斷層成像(PET)等。這兩類圖像各有優(yōu)勢,但是由于成像原理不同,造成圖像信息的局限性。如果單獨使用某一類圖像,其效果往往并不理想。而多種圖像的利用,又必須借助醫(yī)生的空間構(gòu)想和推測,去綜合判斷他們所要的信息,其準確性受主觀影響,而且可能會忽略某些重要信息。解決這個問題的最有效方法就是以醫(yī)學圖像配準技術為基礎,利用信息融合技術,將這兩種圖像結(jié)合起來,利用各自的信息優(yōu)勢,在一幅圖像上同時表達來自人體的多方面信息。
目前在傳統(tǒng)的腦手術醫(yī)學圖像軟件中,其前端探測點的坐標是由醫(yī)生借助工具得到的。在進行醫(yī)學圖像軟件的二次開發(fā)時,可以采用機械手自動獲取探測點的坐標。但是由于醫(yī)學圖像配準的圖像坐標系發(fā)生了改變,需要設計新的幾何變換算法。
二、類的設計
空間映射T描述了一幅圖像中的位置與另一幅圖像中的相應位置之間的關系。這種映射有可能是二維(2D)和三維(3D)之間的相互轉(zhuǎn)換。由于醫(yī)學圖像中的數(shù)據(jù)通常為各自異性,即切片間距與切片上像素間距不同,因此配準過程中的幾何變換需要在物理空間進行。相關公式可以描述為:物理坐標=像素坐標×像素間距+圖像原點坐標
幾何變換的主要作用是,將參考圖像空間中像素點映射到浮動圖像空間中。其類型一般有縮放變換(mitkSacaleTransform)、平移變換(mitkTranslationTransform)、剛體變換(mitkRigidTransform)、相似性變換(mitkSimilarityTransform)和仿射變換(mitkAffineTransform)等。各種變換都是由一組變換參數(shù)t來表示,例如剛性變換可以用3個坐標軸方向上的平移參數(shù),和3個繞坐標軸旋轉(zhuǎn)角度共6個參數(shù)來表示。具體的變換算法由派生類Transform實現(xiàn),其抽象類的框架圖如圖1所示。
三、算法實現(xiàn)
對于各種變換算法,其用戶接口都是一致的。設置變換參數(shù)的成員函數(shù)為GetJacobian,其函數(shù)原型是:
virtual const MatrixType & GetJacobian(const VectorIndexType& inPoint);
設置變換圖像數(shù)據(jù)大小的成員函數(shù)為SetRegion,其函數(shù)原型是:
void SetRegion(const VectorIndexType& r);
獲取像素(x,y,z)變換后的Jacobian矩陣的成員函數(shù)為GetJacobian,其函數(shù)原型是:
virtual const MatrixType & GetJacobian(const VectorParameterType& inPoint);
獲取4×4的變換矩陣的成員函數(shù)為GetTransformMatrix,其函數(shù)原型是:
mitkMatrixType * GetTransformMatrix();
計算(x,y,z)經(jīng)幾何變換后的坐標的成員函數(shù)為TransformPoint,其函數(shù)原型是:
virtual void TransformPoint(const VectorIndexType & inPoint,VectorIndexType & outPoint);
具體的變換算法實現(xiàn)將在派生類中,由virtual bool Excute的重載函數(shù)實現(xiàn)。在變換參數(shù)和圖像數(shù)據(jù)大小設置完成之后,即可通過Run函數(shù)調(diào)用Excute函數(shù),從而完成相關的變換工作。變換結(jié)果可以通過成員函數(shù)GetOutput得到。變換核心函數(shù)的實現(xiàn)代碼如下:
if(!m_FlagComputeTransform)
this->ComputeTransformMatrix();
mitkMatrixScalarType *m=*m_TransformMatrix;
if(m_SpaceDimension==2)
…………
在基于特征的圖像配準過程中,當?shù)玫搅它c集間的對應關系并確定了幾何變換模型之后,下一步是要知道兩個點集所在的子空間的映射關系函數(shù),這可以利用解線性方程組或者線性回歸等數(shù)學方法得到。在大多數(shù)情況下,更應該關心兩個圖像子空間的旋轉(zhuǎn)關系,例如剛性配準可以利用奇異值分解(SVD)或者單位四元數(shù)的方法來計算旋轉(zhuǎn)變換矩陣。對于這類問題,Umeyama利用拉格朗日乘子法給出了一個嚴格的閉形解法。具體步驟為以下三步:(1)計算正交矩陣。(2)對所得矩陣進行SVD分解。(3)計算點集間的旋轉(zhuǎn)矩陣,以及平移參數(shù)和縮放參數(shù)。在MITK中實現(xiàn)了兩種點集變換估計器,它們分別是mitkPointSetSVDEstimator和mitkPointSetQuaternionEstimator。
四、結(jié)語
在數(shù)字醫(yī)學影像時代,無論是哪一種醫(yī)學影像,想要在臨床診斷和治療中發(fā)揮作用,都離不開成像算法和相關處理軟件的支持。醫(yī)學圖像處理與分析主要包括醫(yī)學圖像的分割、配準、融合和可視化等技術,其意義在于發(fā)掘圖像中的有用信息并進行展現(xiàn)。在醫(yī)學圖像處理方面目前已經(jīng)有了非常多的成熟的算法,而且還在不斷涌現(xiàn)新的算法。自改革開放以來,我國從國外進口大量高精密的醫(yī)療設備,并在臨床醫(yī)療上廣泛使用。然而由于缺乏配套的開發(fā)設備,也沒有形成系統(tǒng)的跨學科開發(fā)研究的機制。這就使得我國對高精密度醫(yī)療設備的利用率不足,以及研發(fā)升級的速度緩慢。軟件的編制依賴于對科學問題的數(shù)學描述和計算方法,目前對計算模型和計算方法的研究和設計,已成為制約醫(yī)學影像處理技術進步的首要因素。
【參考文獻】
[1] 田捷. 醫(yī)學成像與醫(yī)學圖像處理教程[M].北京:清華大學出版社, 2018.
[2] S Umeyama. Least-squares estimation of transformation parameters between two point atterns. IEEE Transactions on Pattern Analysis and Machine Intelligece,1991,13(4): 376-380.