VTK序列图像的读取
VTK序列圖像的讀取
分類: VTK系列教程 2013-05-07 19:50 2673人閱讀 評論(2) 收藏 舉報(bào) VTK序列圖像讀取? ? ? ? 醫(yī)學(xué)圖像處理的應(yīng)用程序中,經(jīng)常會(huì)碰到讀取一個(gè)序列圖像的操作。比如CT、MR等所成的圖像都是一個(gè)切面一個(gè)切面地存儲的,醫(yī)學(xué)圖像處理程序要處理這些數(shù)據(jù),第一步當(dāng)然是把這些數(shù)據(jù)從磁盤等外部存儲介質(zhì)中導(dǎo)入內(nèi)存。
? ? ? ? 利用VTK可以讀取多種格式的圖像文件,支持讀取單個(gè)的二維圖像(比如*.BMP、*.JPEG、*.PNG等)或者三維圖像文件(*.VTK、*.mhd、*.mha等),也支持序列圖像文件的導(dǎo)入。下面我們詳細(xì)地講解如何在VTK里實(shí)現(xiàn)序列圖像文件的讀取(我們以美國可視人的數(shù)據(jù)做為測試數(shù)據(jù),數(shù)據(jù)可以從這里下載到)。
在講解VTK序列圖像讀取之前,有一個(gè)問題需要注意的:就是待讀取的序列圖像的文件名必須是規(guī)則的,比如像下圖所示的。
Tips:涉及到指改文件名的,如果熟悉Dos命令的,直接用rename命令就可以完成;或者是使用一個(gè)小軟件Renamer來修改。
?
圖1序列圖像的命名示例
?
方法一:使用SetFileNames()方法讀取序列圖像。
?
[cpp] view plaincopy說明:要讀取的序列文件是存放在文件夾VisibleWomanHead里的,而且每個(gè)圖像的命名規(guī)則是:VisibleWomanHead_01.jpg,VisibleWomanHead_02.jpg……如圖1所示。方法一我們使用了vtkStringArray先構(gòu)建一個(gè)包含要讀取的序列圖像文件的文件名數(shù)組,然后調(diào)用vtkJPEGReader里的SetFileNames()方法。方法SetFileNames()是在類vtkImageReader2里實(shí)現(xiàn)的,所以大部分VTK圖像的讀取類都可以用這種方法來讀取序列圖像文件。
?
方法二:使用SetFilePrefix()/SetFilePattern()方法讀取序列圖像。
前面我們已經(jīng)提過,在讀取序列圖像文件時(shí),要求序列里的文件名有規(guī)律地命名(如圖1),既然這些文件名有規(guī)律,我們可以采用vtkImageReader2里的方法SetFilePrefix()/SetFilePattern()來讀取序列圖像。
[cpp] view plaincopy至于為什么這么寫,你們感受一下就知道了,特別是SetFilePrefix()、SetFilePattern()、SetDataExtent()這幾個(gè)函數(shù)的參數(shù)。
?
方法二:一張一張地讀入,然后合并成一個(gè)三維的數(shù)據(jù)體。
[cpp] view plaincopy我們使用類vtkImageAppend做合并的操作,其中方法SetAppendAxis(2)是指定Z軸為讀入的每層圖像數(shù)據(jù)的堆疊方向。其他的代碼你們繼續(xù)感受一下,就不再敘述了。
?
==========歡迎轉(zhuǎn)載,轉(zhuǎn)載時(shí)請保留該聲明信息==========
 版權(quán)歸@東靈工作室所有,更多信息請?jiān)L問東靈工作室
 教程系列導(dǎo)航:http://blog.csdn.net/www_doling_net/article/details/8763686
 ================================================
總結(jié)
以上是生活随笔為你收集整理的VTK序列图像的读取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 无监督学习 | 层次聚类 之凝聚聚类原理
- 下一篇: 使用阿基米德螺线进行数据可视化
