1. 程式人生 > >CT三維重建及三維視覺化資料:opengl+VTK+PCL點雲庫

CT三維重建及三維視覺化資料:opengl+VTK+PCL點雲庫

自己做過邊緣輪廓三維重建方面的工作,今天看到一篇CT三維重建的介紹性質的文章挺感興趣的,附錄一下:

CT三維重建主要有六種基本後處理方法

  • 多層面重建(MPR)

  • 最大密度投影(MIP)

  • 表面陰影遮蓋(SSD)

  • 容積漫遊技術(VRT)

  • 曲面重建(CPR)

  • 虛擬內鏡技術(VE)

多層面重建(MPR)

多層面重建是最基本的“三維”重建成像方法,是二維的影象序列,和我們最熟悉的軸點陣圖像是一個“家族”的。

MPR適用於任一平面的結構成像,以任意角度觀察正常組織器官或病變,可以顯示腔性結構的橫截面以觀察腔隙的狹窄程度、評價血管受侵情況、真實地反映器官間的位置關係等。

最大密度投影(MIP)

最大密度投影是將一定厚度(即CT層厚)中最大CT值的體素投影到背景平面上,以顯示所有或部分的強化密度高的血管和/或器官,簡單原理和影象是醬紫的:

由於這種方法顯示的是一定層厚影象中CT值最高的體素,所以變化層厚會對影象產生影響:


層厚5mm 層厚15mm

腫麼樣,是不是覺得層厚5mm的MIP影象上門脈有狹窄,而層厚15mm的MIP影象上門脈是正常的?

由於MIP常用來顯示血管的走行(問我為啥常用來顯示血管?因為增強CT上血管比周圍組織器官亮啊~),所以層厚的選擇很重要,既不能太薄(血管的部分管腔可能在層厚以外),又不能太厚(周圍組織器官有干擾),這是很考驗放射科大夫的技術和臨床經驗的。

下面給大家比較下MPR和MIP的影象:

可以看到,MIP影象中的血管連續性更好。

MIP這種技術有個雙胞胎——最小密度投影(minIP),和MIP正好相反,反映的是一定層厚影象中CT值最的體素,所以常用來顯示膽道、氣道等組織結構。

表面陰影遮蓋(SSD)

表面陰影遮蓋是將操作者的眼睛作為假設光源方向,投射到CT值在設定閾值以上的體素上則不再透過繼續成像,僅呈現所有表面體素的集合立體圖形,適用於顯示CT值與其他結構相差較大的組織結構成像……(天地良心,我說的真是中文,如果覺得理解不了,繼續看下文……)說得接地氣些,SSD影象就像是黑白的塑形影象,所以臨床上主要用於顯示骨骼病變或是結腸CT重建:

容積漫遊技術(VRT)

這種三維成像功能非常強大,形態及色彩逼真,絕對是CT三維重建中的“高富帥”,可以對動靜脈血管、軟組織及骨結構等進行立體塑形成像,也可以顯示支氣管樹、結腸及內耳等結構,對於複雜結構的成像有一定優勢。


VRT影象直觀生動,深受廣大醫生的喜愛,稱得上是輔助診斷、顯示病變的大殺器,但是我們要注意一點:VRT影象的偽彩設定很重要,不恰當的偽彩設定會將血管外層畫素過濾掉,顯示的血管狹窄的程度會比真實情況嚴重。

曲面重建技術(CPR)

這種重建技術是在一個維度上選擇特定的曲線路徑,將該路徑上得所有體素在同一平面上進行顯示,可以一次評價曲度較大的結構如脾動脈、胰管、冠狀動脈等管狀結構的全長情況:


胰管

CPR可以觀察管腔結構的腔壁病變(如斑塊、狹窄等),也可以觀察管狀結構與周圍結構的位置關係,但CPR所顯示的不是正常的解剖結構和關係(它是把管狀結構拉直了看),同時需要多個角度曲面重建以完整評價病變。

虛擬內鏡技術(VE)

這種CT重建影象可以模擬各種內鏡檢查的效果,它是假設視線位於索要觀察的管“腔”內,通過設定一系列的引數範圍,即可看到管“腔”內的結構:

當然,在CT領域三維視覺化方法還有應用比較廣的Marching Cube演算法,參見:http://paulbourke.net/geometry/polygonise/,部落格文章等。

opengl和VTK軟體方面的知識,現在蒐集了一下這方面的資料:

  • -------------opengl學習------------

   知名的OpenGL教程, 此教程最大的特點是提供了針對不同平臺、不同編譯器、不同語言的各種版本。你不用考慮自己用的是Linux/Windows、VC/BC、C++/Java/C#/VB,甚至D語言,你都能找到對應的版本。除了這些教程,在Nehe Productions你還能下載到各種很cool的Demo,相當多的一部分都提供原始碼。

   有100個免費的OpenGL教程,內容涉及很多八叉樹、BSP、Cg、GLSL、各種紋理對映技術等,還有OpenAL、Ray Tracing的教程。該網站還推出了一本教你製作遊戲引擎的書《Ultimate Game Programming with DirectX》,暫時還沒有中文翻譯版。

   有針對View Frustum、GLSL、Math、Billboarding、Picking、Terrain、Display Lists、GLUT各專題的教程。其中關於GLUT、Terrain部分講解都非常詳細。一般的教程網站都是通過一段程式碼展示OpenGL的某種渲染效果,如果沒有圖形學背景很難理解其原理,該網站對所列每項技術的來龍去脈,相關演算法都有比較詳細的說明,會讓你理解更加深刻。

   OpenGL視訊教程,是全英文的,看視訊教程還有一個好處就是不經意間能學到作者程式設計時的一些細小技巧。

對應中文opengl學習網站:

從入門指南到高階,比較適合新手。

CSDN的專欄,講述opengl3.3.

  • ------------ITK與VTK學習-----------

VTK 是開放原始碼的自由軟體系統,應用於影象處理、計算機圖形學和科學計算視覺化,國內外被廣泛用於各行各業。VTK的主頁:https://www.vtk.org/ 。找到的教程:

4. 視訊:Study_VTK_Together, https://pan.baidu.com/s/1pMJdt9p 密碼:awum

推薦的VTK學習資源
1、《VTK User's Guide》這本書主要介紹VTK類庫的應用,由Kitware公司出版。
2、《The Visualization Toolkit: An Object-Oriented Approach To 3D Graphic》是《VTK User's Guide》配套的教科書,深入講解了許多視覺化演算法、資料結構等。
3、《Source》是KitWare公司按季度發行的刊物,裡面涵蓋了KitWare公司的所有開源專案。線上訪問地址為http://www.kitware.com/media/thesource.html
4、Insight Journal(http://insight-journal.org/)是學習VTK非常有參考價值的網站。使用者可以通過這個網站向VTK社群貢獻自己的程式碼,也能下載別人上傳的程式碼。

ITK和OpenCV是一類庫,而VTK和OpenGL類似。區別是ITK更偏重於醫學影象處理,而OpenCV偏重於通用影象處理。如果做醫學影象處理的話,首選ITK;VTK也是更偏重醫學影象處理的應用。

官網:https://itk.org/

ITK學習網站:

http://www.insight-journal.org/

http://blog.csdn.net/www_doling_net

VS下安裝ITK,VTK:http://blog.csdn.net/lj695242104/article/details/24271141

參考:

https://blog.csdn.net/wae42675/article/details/71922529

https://blog.csdn.net/clheang/article/details/44220843

https://blog.csdn.net/yu253/article/details/78412307

http://blog.csdn.net/zhuangxiaobin/article/details/52863276

http://blog.csdn.net/webzhuce/article/details/52004621

http://www.360doc.com/content/15/1107/17/8224347_511466699.shtml#