跳转至内容

MINC/工具/emma/emma-demo2

来自 Wikibooks,开放世界的开放书籍

高级 EMMA 图像处理

[编辑 | 编辑源代码]

本教程涵盖了使用 MATLAB 和 EMMA 工具包进行高级图像处理。它假设读者已经熟悉 EMMA 和基本的图像处理。

创建和使用蒙版

[编辑 | 编辑源代码]

让我们首先假设我们已经将动态 PET 研究的一个切片中的 21 帧加载到名为PET的变量中。我们希望创建一个蒙版,其中大脑所在的位置为 1,其他位置为 0。如果这是一个氧气研究,一种简单的方法是随时间对图像进行积分,然后使用阈值选择蒙版像素的值。假设一个名为ftimes的变量包含帧的中帧时间

img = ntrapz(ftimes,PET')';

是积分图像。我们现在希望为蒙版选择像素。MATLAB 能够对值向量执行布尔运算,因此这非常容易

mask = img>(mean(img)*threshold);

在这种情况下,mask中的像素将被设置为 1,如果积分图像的值大于整个图像的平均值乘以某个阈值。要创建一个蒙版,将除大脑外的所有内容都屏蔽掉,我们通常会选择一个阈值为 1(积分图像中所有值大于积分图像平均值的像素都被选中)

mask = img>(mean(img));

这会生成一个看起来像这样的图像

文件:Emma2mask.gif

只需将这两个图像相乘,就可以轻松地将此蒙版应用于原始图像

masked_frame = PET(:,17) .* mask;

这将生成第 17 帧的蒙版版本,看起来像

文件:Emma2masked.gif

对一组图像进行平均

[编辑 | 编辑源代码]

在执行 PET 研究时,通常会收集来自多个受试者的一组数据。收集完所有数据后,必须将来自各种独立研究的数据平均在一起。MATLAB 允许以非常直接的方式对图像执行数学运算。假设我们有一组存储在变量P1, P2, P3, P4中的图像,并且我们希望对这四张图像进行平均,结果很简单

average_image = (P1 P2 P3 P4)/4;

生成时间活动曲线

[编辑 | 编辑源代码]

使用 MATLAB 生成时间活动曲线非常简单。EMMA 提供了一个名为maketac的函数,该函数根据给定的点的 x 和 y 坐标以及一组动态 PET 图像,将返回基于 5 像素正方形感兴趣区域 (ROI) 的时间活动曲线。在maketac函数中使用的方法可以扩展到任何大小/形状的 ROI。其使用的一个示例是

viewimage(img);
[x,y]=getpixel(1);
tac = maketac(x,y,PET);
figure;
plot(ftimes,tac);

第一行显示积分图像(之前计算的),第二行提示用户在图像中单击一个点(返回该点的 x 和 y 坐标),第三行创建时间活动曲线并将其保存在变量tac中,最后两行创建曲线的图(请记住,ftimes包含之前检索的中帧时间)。生成的绘图可能如下所示

文件:Emma2tac.gif

华夏公益教科书