image - 如何在 MATLAB 中根据固定图像的细节分割运动图像的一部分?

标签 image matlab image-processing image-segmentation

我目前正在处理 MRI 图像,每个数据集都包含一系列图像。我需要做的就是根据提供的固定图像的细节,严格使用图像配准方法来分割部分运动图像。

我已经尝试了一些可用的代码并做了一些调整,但我得到的只是一个基于固定图像特征的扭曲变换移动图像,这是正确的,但与我预期的不同。

为了帮助理解这个想法,这里有一些 MRI 图像1:

固定图像:

http://www.imagesup.net/?di=813896074669

动态图像:

http://www.imagesup.net/?di=16138960757914

计划是根据固定图像的细节只分割运动图像的总区域(股四头肌、内部和外部骨骼部分),即根据固定图像边界在形态学上扭曲运动图像的边界。

关于如何做到这一点有什么想法/建议吗?

<子>1。作为新用户,我无法发布/附加超过 2 个链接/图像,但如果您需要更多图像,请告诉我。

最佳答案

'我需要做的就是分割一部分运动图像',这当然不是一件微不足道的事情。它被称为通过可变形模型进行分割,并且有很多关于该主题的文献。此外,您的固定图像与移动图像有很大不同,这无济于事。

这里有几个想法可以开始,但您可能需要深入了解您的应用程序的更多细节。

I1=imread('fixed.png');
I2=imread('moving.png');

model=im2bw(I1,0.54);

imshowpair(I1,Model);

这是一个简单的阈值分割,用于隔离图像中间的 Blob 。值 0.54 是通过摆弄获得的,您当然可以在分割固定图像方面做得更好。

这是分割后的固定图像,紫色在里面,绿色在外面。

Segmented fixed

现在,让我们变形此蒙版以适合移动的图像:

masked = activecontour(I2,model, 20, 'Chan-Vese');
imshowpair(I2,masked);

结果:

enter image description here

您可以在所有图像的循环中自动执行此操作,将每个后续蒙版变形为下一帧。也可以尝试 activecontour 的不同参数。

在这里编辑是我能想到的另一种方式:

在下面的代码中,Istart 是原始固定图像,Mask 是该图像上的分割区域(您在问题中称为“固定”的区域)和Istep 是移动的图像。

我首先将分割区域变成了二进制掩码,这不是绝对必要的:

t=graythresh(Mask);
BWmask=im2bw(Mask, t);

让我们显示蒙版的原始图像:

imshowpair(BWmask, Istart)

masked start

下一步是计算开始图像和步骤图像之间基于强度的配准:

[optimizer, metric] = imregconfig('monomodal');
optimizer.MaximumIterations = 300;

Tform=imregtform(Istart, Istep, 'affine', optimizer, metric);

然后根据这个变换扭曲蒙版:

WarpedMask=imwarp(BWmask, Tform, 'bicubic', 'Outputview', imref2d(size(Istart)));

现在让我们看看结果:

imshowpair(WarpedMask, Istep);

masked step

它并不完美,但它是一个开始。我认为你的主要问题是你的面具包含彼此不同的元素(中间的 Blob 与中间较暗的软组织)如果我在你那里,我会尝试分别分割这些结构。

祝你好运!

关于image - 如何在 MATLAB 中根据固定图像的细节分割运动图像的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090541/

相关文章:

c++ - 我有可能使用与查找轮廓相关的编码

java - 将图像缩小至原始大小的 1/4。

android - 如何在 Matlab 中生成 wav 文件的频谱图,频率在 x 轴上

jquery - 在 Dropzone.js 将图像发送到服务器之前使用cropper.js

matlab - 允许在没有管理员权限的情况下安装 MCR 的最新 Matlab 版本是哪个?

c++ - 分配具有特定索引的矩阵行

image-processing - SNR 和 PSNR 的区别

android - 在react-native中裁剪后的图像非常小

python - 图像实际上是如何用 skimage (Python) 保存的

Android 图像调整大小和保留 EXIF 数据(方向、旋转等)