将非各向同性转换为各向同性体素 [英] Converting non-isotropic to isotropic voxel

查看:516
本文介绍了将非各向同性转换为各向同性体素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试注册两个脑图像卷(每个包含2D切片)。第一个体积(目标或移动体积)的切片厚度和间距分别为1.5和[1.5 1.5]。对于第二个(参考体积),这些值是4和[0.9375 0.9375]。切片的数量也不同。第一卷有96个切片,第二个有44个切片。

I am trying to register two brain image volumes (each includes 2D slices). The first volume (target or moving volume) has the slice thickness and spacing of 1.5 and [1.5 1.5] respectively. For the second one (reference volume), these values are 4 and [0.9375 0.9375]. Also the number of slices are different. First volume has 96 slices and second has 44 slices.

我的一个朋友,建议使体素各向同性,但我不知道该怎么做。我可以看到第一卷是各向同性的,但不是第二卷。我想知道我应该怎么做?

One of my friends, suggested to make the voxels isotropic, but I do not know how to do that. I can see that first volume is isotropic, but not the second one. I am wondering how I should do that?

此外,我将考虑每个卷的两个切片并对其应用特征提取方法。因此,这两个切片都应该与大脑的同一层相关(同一场景)。考虑到切片的数量不同,我该怎么办?如何重新计算第一卷的新切片与第二卷的相同?

Also, I will consider two slices of each volume and apply a feature extraction method on it. So, both of these slices should be related to the same layer of the brain (same scene). Considering the different number of slices, what should I do and how should I re-calculate new slices of the first volume to be the same as the second volume?

推荐答案

如果我理解你的问题,听起来你想要一个给定大小的体素的图像堆栈进行内插,这样你就可以定义一个新的坐标系,其中每个体素都是各向同性的(即有相等的高度宽度和深度,即立方体素。如果有帮助的话:

If I understand your problem correctly, it's sounds like you want to take an image stack with voxels of a given size interpolate it so that you define a new coordinate system in which each voxel is isotropic (i.e. has equal height width and depth, i.e. cubic voxels). If so might the help:

(我使用matlabs提供的mri数据作为例子)

(I'm using matlabs supplied mri data as an example)

load mri D
D=double(squeeze(D));   % remove singleton dimension, convert to double
szD_a=size(D);          % get size of original image stack
vox_a = [.4, .4, .45];  % define size of voxel in original image stack
vox_b = [.25, .25, .25];% define size of voxel in target image stack
szD_b = ceil((size(D)-1).*vox_a./vox_b)+1; % set size of target image stack

% define coordinates of voxels in original image stack
[Xa,Ya,Za]=meshgrid(...
    [0:szD_a(1)-1]*vox_a(1),...
    [0:szD_a(2)-1].*vox_a(2),...
    [0:szD_a(3)-1].*vox_a(3));

% define coordinates of voxels in original image stack
[Xb,Yb,Zb]=meshgrid(...
    [0:szD_b(1)-1]*vox_b(1),...
    [0:szD_b(2)-1].*vox_b(2),...
    [0:szD_b(3)-1].*vox_b(3));

D_target = interp3(Xa,Ya,Za,D,Xb,Yb,Zb);

figure
for t=0:vox_b(3):max(Zb(:))
    subplot(1,2,1)
    imagesc(D(:,:,floor(t/vox_a(3))+1))
    subplot(1,2,2)
    imagesc(D_target(:,:,floor(t/vox_b(3))+1))
    drawnow
    pause(0.1)
end

这篇关于将非各向同性转换为各向同性体素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆