代码之家  ›  专栏  ›  技术社区  ›  Gacek

Matlab中多幅二维图像的三维叠加

  •  1
  • Gacek  · 技术社区  · 16 年前

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

    我的问题是:

    • 如何将这25幅图像组合成一幅3D图像?如何画出每一个之间有一些空间?

    • 如何删除背景色?是否可以创建某种颜色比例,使值等于0的颜色比例是透明的?

    一些额外的数据:

    • dicomread 功能。

    1 回复  |  直到 16 年前
        1
  •  4
  •   Shai    13 年前

    二维到三维矩阵:

    >> 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 . 大多数图形只是离开 作为空的空间。

    相关项目

    你很可能对你的工作感兴趣 SliceOMatic

    我在MathWorks的第一个项目是 a demo similar to yours

    related project 这也可能引起人们的兴趣。