本站小編為你精心準備了MITK醫(yī)學圖像設計參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1三維面繪制設計
面繪制是通過一系列的二維圖像進行邊界識別等分割處理,重新還原出被檢物體的三維模型,并以表面的方法顯示出來,為用戶提供具有較強真實感的三維醫(yī)學圖像,便于醫(yī)生從多角度、多層次進行觀察和分析[3]。在mitk中,表面重建算法被抽象成一個Volu-meToMeshFilter,其接收n張兩維的切片生成數據,表示為一個mitkVolume輸入,經過處理后的輸出數據是一個以三角網絡來表示的三維表面模型,表示為mitkMesh對象。MITK中跟面繪制相關的Model是SurfaceModel,它的主要任務是實現父類里規(guī)定的接口Render()來繪制表面重建算法生成的三角網格數據。SurfaceModel擁有3個類成員:Mesh提供對生成的三角面片數據的訪問;SurfacePropery維護表面模型的材質屬性,并且提供給用戶修改屬性參數的接口;SurfaceRenderer負責最終實際的繪制工作[4-6]。//提供取得指向mitkVolume指針的接口mitkVolume*GetVolume(){returnm_Volume;}//提供取得指向mitkMesh指針的接口mitkMesh*GetMesh(){returnm_Mesh;}…//生成一個mitkMarchingCubes對象mitkMarchingCubes*mc=newmitkMarchingCubes;//將從圣誕框中得到的閾值設置給MarchingCubes算法[7-8]mc->SetThreshold(dlg.m_LowValue,dlg.m_HighValue);//設置輸入數據mc->SetInput(m_Volume);//從mitkMarchingCubes算法得到輸出結果m_Mesh=mc->GetOutput();m_Mesh->AddReference();…//產生mitkView對象m_SceneView=newmitkView;//顯示mitkViewm_SceneView->Show();//生成一個mitkSurfaceModelm_SurfaceModel=newmitkSurfaceModel;//將Model加入到View中m_SceneView->AddModel(m_SurfaceModel);實驗數據為一組頭顱CT斷層圖像,數據規(guī)模為256×256×99,執(zhí)行MC算法面繪制重建后可以得到質量較好的三維圖像,并基本可以達到實時操作的效果。
2體繪制設計
在MITK體繪制算法框架中,VolumeModel來實現父類里面規(guī)定的接口Render函數。mitkVolumeModel對應一個以體繪制方式顯示在場景中的實體,通過SetData函數得到mitkVolume數據。用mitkVol-umeProperty來管理mitkVolumeModel的屬性結構,如光源參數、插值類型、傳遞函數等;用mitkVolumeRen-derer這個抽象的繪制類來負責實際的繪制工作[9]。在該系統(tǒng)中,用RayCasting[10-11](光束投射法)來實現圖像的體繪制。在VC6.0中用建立好基本框架后,新增一個DrawParam來定義圖像的著色參數,在CMITKTestView添加函數將著色參數應用于傳遞函數。通過調用mitkVolumeRendererRayCasting來實現光束投射算法,其部分代碼如下://創(chuàng)建VolumeModelm_VolModel=newmitkVolumeModel;//取得模型屬性mitkVolumeProperty*prop=m_VolModel->GetProperty();…//將VolumeModel加入Viewm_View->AddModel(m_VolModel);…//將volume指定給modelm_VolModel->SetData(volume);…//將一個mitkVolumeRendererRayCastingLoD的實例指定給m_VolModelmitkVolumeRendererRayCastingLoD*ren=newmitkVol-umeRendererRayCastingLoD;CopyPlanes(m_VolModel->GetRenderer(),ren);m_VolModel->SetRenderer(ren);執(zhí)行上述算法后,把前面256×256×99規(guī)模的斷層圖像輸入后,得到的體繪制圖像(阻光度=0.001)。
3基于MITK的圖像分割
圖像分割的目的是為了將圖像中某一感興趣的區(qū)域劃分出來,分割結果是圖像定量分析后續(xù)處理的基礎。MITK中提供了一些主流的分割算法,如閾值分割[12-[13]、區(qū)域生長等[14],本文以區(qū)域生長算法來設計分割的實現。該算法假設當前處理的區(qū)域中的點灰度值為gc,其相鄰點灰度值為gn,用戶選定的種子點灰度值為gs,則當相鄰點灰度值滿足條件|gn-gc|<dv和|gn-gs|>cv時認為該相鄰點也屬于分割區(qū)域而將其合并到區(qū)域中。在系統(tǒng)中,分割功能通過一個繼承自mitkVolu-meToVolumeFilter的mitkRegionGrowImageFilter的類來實現。設計好一個區(qū)域生長對話框(如圖4所示)后,在對話框中添加兩個mitkImageView,分別用來顯示源圖像和分割結果。用m_DifferentValue和m_ChangeValue來表示用戶設定的灰度值,從mitkIm-ageModel派生一個類mitkRegionGrowImageModel,來實現對標記圖像的顯示。用SetLabelImage函數將外部輸入的標記數據合并到m_LabelImage中,再通過重載mitkImageModel的Render函數,在其中使用OpenGL的繪制函數加入對標記圖像的繪制。圖4區(qū)域生長對話框拖動滑塊,可以選擇切片,在左側的“源圖像”窗口中用鼠標選取種子點,然后修改DifferentValue和ChangeValue值(即dv和cv),即可得到不同的分割結果,分割區(qū)域用紅色標記。在輸入一組切片后進行分割,得到分割成像效果如圖5所示。圖5分割成像效果圖dv=6,cv=20
4結束語
MITK作為一個專門用于醫(yī)學圖像處理和可視化的工具包,在實現三維可視化功能方面,能取得較好的成像速度和繪制結果,同時可以添加自己的圖像處理算法,增強了MITK的靈活性。本文基于MITK的繪制模型和分割技術,設計了三維重建和分割系統(tǒng),滿足部分使用的要求,具有一定的實用價值。同時也是作為以后研究的一個基礎,添加新的圖像處理算法,擴展功能。