目錄
5.VTK-三維計算機(jī)圖形學(xué)、圖像處理和可視化... 4
7.OpenCV-計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫... 5
1.ITK-醫(yī)學(xué)圖像處理軟件包
ITK( Insight Segmentation and Registration Toolkit)是美國國家衛(wèi)生院下屬的國立醫(yī)學(xué)圖書館開發(fā)的一款醫(yī)學(xué)圖像處理軟件包籍茧,是一個開源的、跨平臺的影像分析擴(kuò)展軟件工具梯澜。
ITK的開發(fā)過程中采用了先進(jìn)的多模態(tài)數(shù)據(jù)分割配準(zhǔn)算法寞冯,用于處理圖像配準(zhǔn)和分割的問題。 ITK是用C++實現(xiàn)的晚伙,能夠跨平臺吮龄,并用CMake來管理編譯過程來保證編譯過程獨(dú)立于平臺。除此以外咆疗,它還使用一種叫做卷的處理過程漓帚,來產(chǎn)生C++和 其他其他解釋程序之間的接口,從而使得開發(fā)者能用各種不同的程序語言來開發(fā)午磁。
ITK的C++執(zhí)行風(fēng)格是基于泛型(generic programming)編程尝抖,也就是說他使用的是模板來保證相同的代碼能廣泛的應(yīng)用于任何類或者類型。這種C++模板的方式使得編碼過程很高效迅皇,并且使 很多軟件的問題在編譯的時候就發(fā)現(xiàn)了昧辽,而不是在運(yùn)行的時候。
備注:
醫(yī)學(xué)圖像處理的話建議用ITK+VTK登颓,ITK做底層圖像處理算法搅荞,VTK做可視化顯示,ITK和VTK中間用itkImageToVTKImageFilter
2.SimpleITK-ITK的簡化接口
SimpleITK是ITK的簡化接口框咙,使用起來更加方便咕痛,有多種語言接口。(python版喇嘱,安裝比較簡單茉贡,pip install SimpleITK)
SimpleITK是美國國家醫(yī)學(xué)圖書館Insight Segmentation and Registration Toolkit (ITK)的一個簡化的開源接口,這是一個c++開源圖像分析工具包婉称,在學(xué)術(shù)界和工業(yè)界得到了廣泛的應(yīng)用块仆。SimpleITK支持8種編程語言,包括c++王暗、Python、R庄敛、Java俗壹、c#、Lua藻烤、Ruby和TCL绷雏。SimpleITK的二進(jìn)制發(fā)行版目前可用于所有三種主要操作系統(tǒng)(Linux头滔、OS X和Windows)。
SimpleITK是專門處理醫(yī)學(xué)影像的軟件涎显,在SimpleITK中坤检,圖像的概念與我們在計算機(jī)視覺中常用的RGB圖像差異很大,后者只是一個多維矩陣期吓,是一個數(shù)學(xué)上的概念早歇,而在SimpleITK中圖像是一種物理實體,圖像中的每一個像素都是物理空間中的一個點(diǎn)讨勤,不光有著像素值箭跳,還有著坐標(biāo),間距潭千,方向等概念谱姓。
size:圖像在各維度的像素個數(shù)
spacing:圖像各維度上像素之間的距離(物理層面的,有單位刨晴,一般為mm)
physical extent:圖像在物理空間中的大小
Origin:圖像原點(diǎn)的坐標(biāo)(物理層面的屉来,有單位,一般為mm狈癞,與spacing保持一致)
direction:采用方向余弦矩陣茄靠,也就是圖像自身坐標(biāo)系相對于世界坐標(biāo)系(固定不動的)的角度,再直白點(diǎn)就是新坐標(biāo)系在原坐標(biāo)系上各個方向的投影
3.RTK-CBCT重建算法包
RTK(RTK官網(wǎng))是一個開源的CBCT重建算法包亿驾,是Kitware公司旗下的嘹黔,基于ITK包擴(kuò)展出來的。RTK實現(xiàn)了很多現(xiàn)有的CT圖像重建算法莫瞬,包括ADMM儡蔓,SART,SIRT疼邀,POCS等喂江。此外RTK包是基于泛型編程思想來寫的。RTK具有完善的開發(fā)文檔庫旁振。
Cone Beam CT因其射線效率高获询,采集效率高等優(yōu)點(diǎn),廣泛用于解剖成像與放射治療(Radiation Therapy)拐袜。
The Reconstruction Toolkit (RTK)重建工具包是一種基于Insight Toolkit(ITK)的用于快速圓錐束CT重建的開源跨平臺軟件吉嚣。RTK由RTK財團(tuán)開發(fā)。RTK提供或?qū)⑻峁?
重建的基本運(yùn)算符蹬铺,例如濾波尝哆、正向、投影和反向投影
多線程CPU和GPU版本
呼吸運(yùn)動矯正工具
多個掃描儀的I/O
散射校正原始數(shù)據(jù)的預(yù)處理
4.DCMTK-dicom協(xié)議開源庫
DCMTK是由德國offis公司提供的開源項目甜攀,幾乎實現(xiàn)了完整的DICOM協(xié)議,是3大dicom開源庫之一秋泄。DCMTK采用C++語言開發(fā)琐馆。
由于現(xiàn)在的醫(yī)學(xué)影像設(shè)備的圖像存儲和傳輸正在逐漸向DICOM標(biāo)準(zhǔn)靠攏,在我們進(jìn)行醫(yī)學(xué)圖像處理的過程中恒序,經(jīng)常需要自己編寫和DICOM格式的圖像相關(guān)的各種程序模塊瘦麸,以完成自己處理功能。如果從頭開始理解DICOM的協(xié)議歧胁,然后完全自己編寫這些代碼來實現(xiàn)這些協(xié)議滋饲,是一件工程浩大的事情。德國offis公司開發(fā)的DCMTK与帆,為我們提供了實現(xiàn)DICOM協(xié)議的一個平臺了赌,使得我們可以在它的基礎(chǔ)上輕松的完成自己的主要工作,而不必把太多的精力放在實現(xiàn)DICOM協(xié)議的細(xì)節(jié)問題上玄糟。本文以WINDOWSXP+VC6.0為開發(fā)平臺勿她,從DCMTK的下載、調(diào)試阵翎、使用等方面介紹基于DCMTK的DICOM相關(guān)程序編寫過程逢并。
這個開發(fā)包經(jīng)過10多年的開發(fā)和維護(hù),已經(jīng)基本實現(xiàn)了DICOM協(xié)議的所有內(nèi)容郭卫。該開發(fā)包提供所有的源代碼砍聊、支持庫和幫助文檔。DCMTK提供了在各種操作系統(tǒng)下使用的可能版本贰军,如LINUX玻蝌、SUN、MACOS词疼、WINDOWS等俯树,用戶可根據(jù)自己的開發(fā)平臺進(jìn)行編譯。
DICOM(Digital Imaging and Communications in Medicine)即醫(yī)學(xué)數(shù)字成像和通信贰盗,是醫(yī)學(xué)圖像和相關(guān)信息的國際標(biāo)準(zhǔn)(ISO 12052)许饿。DICOM被廣泛應(yīng)用于放射醫(yī)療、心血管成像以及放射診療診斷設(shè)備(X射線舵盈,CT陋率,核磁共振,超聲等)秽晚,并且在眼科和牙科等其它醫(yī)學(xué)領(lǐng)域得到越來越深入廣泛的應(yīng)用瓦糟。
5.VTK-三維計算機(jī)圖形學(xué)、圖像處理和可視化
Vtk赴蝇,(visualization toolkit)是一個開源的免費(fèi)軟件系統(tǒng)狸页,主要用于三維計算機(jī)圖形學(xué)、圖像處理和可視化扯再。Vtk是在面向?qū)ο笤淼幕A(chǔ)上設(shè)計和實現(xiàn)的芍耘,它的內(nèi)核是用C++構(gòu)建的,包含有大約250,000行代碼熄阻,2000多個類斋竞,還包含有幾個轉(zhuǎn)換界面,因此也可以自由的通過Java秃殉,Tcl/Tk和Python各種語言使用vtk坝初。
視覺化工具函式庫(VTK钾军,Visualization Toolkit)是一個開放源碼,跨平臺吏恭、支持并行處理(VTK曾用于處理大小近乎1個Petabyte的資料,其平臺為美國Los Alamos國家實驗室所有的具1024個處理器之大型系統(tǒng))的圖形應(yīng)用函式庫樱哼。2005年時曾被美國陸軍研究實驗室用于即時模擬俄羅斯制反導(dǎo)彈戰(zhàn)車ZSU23-4受到平面波攻擊的情形,其計算節(jié)點(diǎn)高達(dá)2.5兆之多搅幅。Vtk幾乎可以在任何一個基于Unix的平臺上操作阅束,以及Windows 95/98/NT/2000/XP息裸。
VTK是一個開放源碼、自由獲取的軟件系統(tǒng)沪编,全世界的數(shù)以千計的研究人員和開發(fā)人員用它來進(jìn)行3D計算機(jī)圖形,圖像處理漾抬,可視化。VTK包含一個c++類庫纳令,眾多的翻譯接口層,包括Tcl/Tk平绩,Java,Python圈匆。Visualization Toolkit 是一個用于可視化應(yīng)用程序構(gòu)造與運(yùn)行的支撐環(huán)境,它是在三維函數(shù)庫OpenGL的基礎(chǔ)上采用面向?qū)ο?/a>的設(shè)計方法發(fā)展起來的捏雌,它將我們在可視化開發(fā)過程中會經(jīng)常遇到的細(xì)節(jié)屏蔽起來跃赚,并將一些常用的算法封裝起來。比如 Visualization Toolkit 將我們在表面重建中比較常見的MarchingCubes 算法封裝起來,以類的形式給我們以支持纬傲,這樣我們在對三維規(guī)則點(diǎn)陣數(shù)據(jù)進(jìn)行表面重建時就不必再重復(fù)編寫MarchingCubes 算法的代碼满败,而直接使用Visualization Toolkit 中已經(jīng)提供的vtkMarchingCubes 類。 Visualization Toolkit 是給從事可視化應(yīng)用程序開發(fā)工作的研究人員提供直接的技術(shù)支持的一個強(qiáng)大的可視化開發(fā)工具叹括。
6.OpenGL-渲染2D算墨、3D矢量圖形
OpenGL(英語:Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用于渲染2D汁雷、3D矢量圖形的跨語言净嘀、跨平臺的應(yīng)用程序編程接口(API)。這個接口由近350個不同的函數(shù)調(diào)用組成侠讯,用來繪制從簡單的圖形比特到復(fù)雜的三維景象挖藏。而另一種程序接口系統(tǒng)是僅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD厢漩、虛擬現(xiàn)實膜眠、科學(xué)可視化程序和電子游戲開發(fā)。
OpenGL的高效實現(xiàn)(利用了圖形加速硬件)存在于Windows袁翁,部分UNIX平臺和Mac OS柴底。這些實現(xiàn)一般由顯示設(shè)備廠商提供,而且非常依賴于該廠商提供的硬件粱胜。開放源代碼庫Mesa是一個純基于軟件的圖形API柄驻,它的代碼兼容于OpenGL。但是焙压,由于許可證的原因鸿脓,它只聲稱是一個“非常相似”的API。
7.OpenCV-計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫
OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫涯曲,可以運(yùn)行在Linux野哭、Windows、Android和Mac OS操作系統(tǒng)上幻件。它輕量級而且高效——由一系列C函數(shù)和少量C++類構(gòu)成拨黔,同時提供Python、Ruby绰沥、MATLAB等語言的接口篱蝇,實現(xiàn)圖像處理和計算機(jī)視覺方面的很多通用算法
OpenCV用C++語言編寫,它具有C ++零截,Python秃臣,Java和MATLAB接口,并支持Windows弧哎,Linux,Android和Mac OS章贞,OpenCV主要傾向于實時視覺應(yīng)用非洲,并在可用時利用MMX和SSE指令两踏, 如今也提供對于C#梦染、Ch朴皆、Ruby遂铡,GO的支持。
8.Halcon-機(jī)器視覺算法包
HALCON是德國MVtec公司開發(fā)的一套完善的標(biāo)準(zhǔn)的機(jī)器視覺算法包伪货,擁有應(yīng)用廣泛的機(jī)器視覺集成開發(fā)環(huán)境碱呼。它節(jié)約了產(chǎn)品成本宗侦,縮短了軟件開發(fā)周期——HALCON靈活的架構(gòu)便于機(jī)器視覺,醫(yī)學(xué)圖像和圖像分析應(yīng)用的快速開發(fā)姑裂。在歐洲以及日本的工業(yè)界已經(jīng)是公認(rèn)具有最佳效能的Machine Vision軟件炭分。
HALCON源自學(xué)術(shù)界剑肯,它有別于市面一般的商用軟件包。事實上呀忧,這是一套image processing library,由一千多個各自獨(dú)立的函數(shù)胰坟,以及底層的數(shù)據(jù)管理核心構(gòu)成泞辐。其中包含了各類濾波,色彩以及幾何咐吼,數(shù)學(xué)轉(zhuǎn)換,形態(tài)學(xué)計算分析厢塘,校正晚碾,分類辨識喂急,形狀搜尋等等基本的幾何以及影像計算功能,由于這些功能大多并非針對特定工作設(shè)計的讥蔽,因此只要用得到圖像處理的地方冶伞,就可以用HALCON強(qiáng)大的計算 分析能力來完成工作步氏。應(yīng)用范圍幾乎沒有限制,涵蓋醫(yī)學(xué)芋类,遙感探測侯繁,監(jiān)控泡躯,到工業(yè)上的各類自動化檢測。
HALCON支持Windows咕别,Linux和Mac OS X操作環(huán)境,它保證了投資的有效性雌贱。整個函數(shù)庫可以用C欣孤,C++翔冀,C#,Visual basic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設(shè)備提供接口控硼,保證了硬件的獨(dú)立性艾少。它為百余種工業(yè)相機(jī)和圖像采集卡提供接口,包括GenlCam幔妨,GigE和IIDC 1394误堡。