2015-08-08 67 views
1

我正在嘗試註冊來自大腦(PET和CT甚至PET和MR)的兩個立體圖像。這些體積圖像中的每一個包含不同數量的2D圖像(切片)。 例如,CT具有150切片而PET具有100切片。我正在考慮使用插值法計算CT切片的數量並將其數量減少到100.這是否是一種正確的方法?有誰知道任何可能對我有用的資源嗎?像一個僞代碼,或我應該通過註冊兩個體積圖像的步驟。 謝謝:)兩張卷的圖像註冊不同數量的切片

+1

即使圖像具有相同數目的切片,因爲像素的圖像被變換後的網格點的位置很少最終一些形式的內插是必要的。如果您正在使用像ITK這樣的庫來執行註冊,則此插值將自動完成。你是否正在使用ITK或類似的庫來做到這一點,或者你是否想要自己編碼轉換/插值? – eigenchris

+0

@eigenchris謝謝您的回覆。是的,我將在MATLAB中自己實現它。你知道任何有助於我的論文或資源嗎?我已經在這個領域讀了大量的論文(體積圖像註冊),但他們沒有任何關於這一步的信息。我有我的代碼正在爲一個切片和它的旋轉版本。但是當我想要解決真正的問題並將我的算法應用於所有PET和MR掃描切片時,我不知道該怎麼做。我將不勝感激任何幫助。 –

+1

你確實知道這兩個圖像佔據相同的物理空間嗎?你知道像素之間的間距信息嗎?簡單的註冊問題可能對編寫代碼有指導意義,但註冊可能會很快變得複雜,我建議您使用其他人編寫的代碼來解決大多數註冊問題。你有沒有看過['imregister'](http://www.mathworks.com/help/images/ref/imregister.html#namevaluepairarguments)。 – eigenchris

回答

1

如果您知道150個CT切片和100個PET切片的間距信息,您可以查看MATLAB的interp1函數,以沿一個軸進行插值以將圖像重新縮放到相同的像素數。從這裏可以使用MATLAB的imregister來執行註冊。


如果你正在尋找學習註冊引擎蓋(像素和物理座標之間轉換,轉換/重採樣圖像等)下的工作方式,一種資源,我可以指導您是ITK Software Guide pdf

特別是,請嘗試閱讀關於圖像表示的Book 1 Section 4.1.4(pdf的第41頁)和關於轉換的Book 2 Section 3.9(pdf的第532頁)。


一般來說,在註冊過程中用3D圖像進行變換和插值的問題對於編寫代碼來說可能非常麻煩。您需要自問一下像素的間距和方向,如何變換和插值圖像以使它們的網格重疊,還需要決定在評估相似性度量時,如何處理網格中位於圖像邊界之外的像素。

儘管它給你做你認爲是最好的,我建議你使用現有的註冊程序,如果他們能夠做到的事情你想要什麼:

  • MATLAB的imregister(我從來沒有使用它,所以我不能對此發表評論)
  • simpleITK爲Python
  • the ITK for C++有一個學習曲線,但給出了註冊過程
  • elastix完全控制是使用文本命令行程序要執行註冊的參數文件。
  • 3D slicer具有用於簡單線性登記的圖形用戶界面