2010-02-01 292 views
1

我有25個2D圖像(大小相同),每個圖像代表一個圖層等距。每個圖像都是灰度和黑色(或導入數據矩陣後的值等於0)是需要刪除的背景。在Matlab中將多個2D圖像疊加到3D中

而且我的問題是:

  • 如何將這些25個圖像合併到一個3D圖像?如何繪製每個之間有一些空間?

  • 如何清除背景顏色?是否有可能創建某種顏色等級的值等於0將是透明的?

一點點額外的數據:

  • 這些圖像是在DCM格式(DICOM圖像)和我使用dicomread功能導入。

  • 每個圖像(320x320像素)代表一個4毫米厚的層,層間距爲1,2毫米。我們可以假設,每個圖像的寬度爲約120-125毫米

回答

4

2D轉換成3D矩陣:

>> a = magic(3) 

a = 

    8  1  6 
    3  5  7 
    4  9  2 

>> b = ones(3) 

b = 

    1  1  1 
    1  1  1 
    1  1  1 

>> c = zeros(3) 

c = 

    0  0  0 
    0  0  0 
    0  0  0 

>> d(:,:,1)= a 

d = 

    8  1  6 
    3  5  7 
    4  9  2 

>> d(:,:,2)= b 

d(:,:,1) = 

    8  1  6 
    3  5  7 
    4  9  2 


d(:,:,2) = 

    1  1  1 
    1  1  1 
    1  1  1 

>> d(:,:,3)= c 

d(:,:,1) = 

    8  1  6 
    3  5  7 
    4  9  2 


d(:,:,2) = 

    1  1  1 
    1  1  1 
    1  1  1 


d(:,:,3) = 

    0  0  0 
    0  0  0 
    0  0  0 

透明度:

設置透明的體素的值爲NaN。大多數圖形僅將NaN作爲空白空間。

相關項目

您可能感興趣的SliceOMatic

我在The MathWorks公司的第一個項目是a demo similar to yours。這是從平面切片重建3-D固體(未註冊)。大部分工作都在註冊。

這也是一個related project也可能是有趣的。

+0

謝謝,不完全是我所需要的,但幫了我很多。 SliceOMatic非常棒,不幸的是非常慢:/ – Gacek 2010-02-01 15:16:17

+0

@Gacek你的數據集有多大?我不希望大多數數據集的速度很慢。 如果我沒有回答你的問題,請詳細說明這個問題,或者酌情打開新問題。每個帖子的一個問題效果最好(這有兩個或更多!) – MatlabDoug 2010-02-01 16:24:53

+0

我的意思是,這不是我第一次想到的,但它似乎是更好的解決方案。 我有25個圖像320x320像素...沒有那麼多,但它幾乎殺死我的Matlab。我不知道爲什麼:/ – Gacek 2010-02-01 22:34:12