MINC/工具/emma/emma-标签
MATLAB 非常适合分析通过使用显示程序收集的数据。此演示页面简要概述了可以对这些数据执行的一些分析。
这是一个使用 MATLAB 分析油漆(标签)数据的演示。首先,我们必须选择要分析的研究。这可以通过 EMMAopenimage函数来完成,该函数返回对研究的句柄
h=openimage('/data/disk2/wolforth/minc/farduharson_leslie_tal.mnc');
我们还可以从标签文件(由显示).
tags = loadtagfile('/data/disk2/wolforth/minc/farduharson_right44.tag');
从标签文件中读取的点坐标以与它们派生的体积相同的空间表示。因此,如果体积存储在 Talairach 空间中(在本例中),标签文件中的坐标将位于 Talairach 空间中。为了识别哪些体素被标记,我们必须从体积的世界空间(在本例中为 Talairach 空间)转换为体素空间。这可以通过world2voxel函数来完成
[x,y,z] = world2voxel(h,tags(:,1),tags(:,2),tags(:,3));
由于我们使用的体积存储为横向切片,我们可以通过简单地检查z坐标来找出哪些切片对我们来说很有趣
>> min(z) ans = 44 >> max(z) ans = 85
通过检查z坐标,我们看到切片 65 位于有绘制点的切片中。我们可以使用 EMMA 加载此图像并将其显示出来getimages和viewimage函数
MRI = getimages(h,65); viewimage(MRI);
现在,让我们制作一个掩码,其中绘制的像素设置为某个非零值,而未绘制的像素设置为零。我们首先将掩码初始化为全零
mask = zeros(256,256);
接下来,找到所有位于切片 65(我们感兴趣的切片)内的点
index=find(z==65); xi=x(index); yi=y(index);
最后,将掩码中绘制的体素设置为某个方便的值
for i=1:length(xi); mask(xi(i),yi(i)) = max(MRI) 500; end
现在我们有了掩码,我们可以查看叠加在基础结构上的绘制图像。请注意,在将掩码添加到变量之前,我们必须重新调整掩码的形状MRI因为MRI是一个列向量图像,而掩码是一个方形矩阵。
viewimage (reshape(mask,length(MRI),1) MRI);
我们还可以获取标记像素的强度直方图
[no,xo] = gettaggedhist(h,tags);
此直方图可以使用 MATLAB 条形函数查看。我们排除第一个箱,因为它包含了掩码中的所有零
figure; bar (xo(2:length(xo)), no(2:length(xo)));
我们还可以为整个图像上的像素强度生成直方图(这需要一些时间)。在这里,我们指定要一个包含 50 个箱的直方图
[n1,x1] = getvolumehist (h,50);
此直方图也可以使用 MATLABbar函数来完成
figure; bar (x1, n1);