在Matlab中将多个2D图像堆叠成3D

时间:2010-02-01 11:10:22

标签: matlab image-processing 3d

我有25张2D图像(大小相等),每张图像代表一层等间距。每个图像都是灰度和黑色(或导入后数据矩阵中的值等于0)是需要删除的背景。

我的问题是:

  • 如何将这25张图像合成一张3D图像?如何绘制每个之间有一些空间?

  • 如何删除背景颜色?是否可以创建某种颜色等级,其中等于0的值将是透明的?

一些额外的数据:

  • 这些图片采用DCM格式(DICOM图片),我使用dicomread函数导入它们。

  • 每个图像(320x320像素)代表一层厚度为4毫米,层间间距为1.2毫米。我们可以假设,每幅图像的宽度约为120-125 mm

1 个答案:

答案 0 :(得分: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