2016-05-19 72 views
1

對於我的應用程序,我想插入兩幅圖像(CT到PET)之間。 所以我把它們之間的映射這樣的:不同像素尺寸的兩幅圖像之間的插值

[X,Y,Z] = ndgrid(linspace(1,size(imagedata_ct,1),size_pet(1)),... 
       linspace(1,size(imagedata_ct,2),size_pet(2)),... 
       linspace(1,size(imagedata_ct,3),size_pet(3))); 
new_imageData_CT=interp3(imagedata_ct,X,Y,Z,'nearest',-1024); 

我的新形象new_imageData_CT的大小類似於PET圖像。問題是我的新圖像的數據縮放比例不正確。所以它被壓縮。我認爲這是因爲兩幅圖像之間的像素大小不同,並且不涉及插值。因此,例如:

  • CT圖像尺寸:512x512x1027
  • CT體素尺寸[mm]:1.5x1.5x0.6
  • PET圖像尺寸:192x126x128
  • PET體素尺寸[mm]:2.6 x2.6x3.12

那麼我怎麼能關心插值的體素大小呢?

回答

0

我會讓別人給我回答這個問題,但我認爲你問的是錯誤的。當然,我缺乏背景知識,但乍一看,Matlab不適合工作。

你這樣做註冊步驟中,您可以通過出口所產生的後圖像(現在具有相同的大小和間距),如果您願意(或使用相同的工具)繼續在Matlab中進行插值。

2

您需要在患者座標系中執行匹配,但除了分辨率和體素大小之外還有更多需要考慮的事項。您需要同步兩卷的頭寸(也可能是方向,但這不太可能)。

您可能會發現this thread有助於找出哪些DICOM標籤描述了體積以及如何計算轉換矩陣以用於患者(x,y,z以毫米爲單位)和體積(列中的x,y,z) ,行,片號)。

您必須確保體積位置具有可比性,因爲CT和PET中切片的位置並不是最終指向相同的原點。這樣做的簡單方法是比較CT和PET切片的參考UID(0020,0052)的DICOM屬性。對於共享相同的參考幀UID的所有片,DICOM頭中片的位置指的是相同的原點。 如果數據集不包含這個標籤,它將變得更加困難,除非您將其作爲一個假設。有一些方法可以從稱爲「註冊」的像素數據的內容中推導兩個不同體積的匹配切片,但這是它自己的一門科學。請參閱Hugues Fontenelle的鏈接。

順便說一句:在你的例子中,由於卷的大小不同,你不會在每個位置的兩個卷中找到匹配的體素。例如。爲x方向:

CT:512 * 1.5 =768毫米

PET:192 * 2.6 =499毫米

+0

是, 「同步位置」 是形容什麼,否則所謂的好方法**圖像註冊**圖像處理術語。 –