gpt4 book ai didi

matlab - 将非各向同性体素转换为各向同性体素

转载 作者:行者123 更新时间:2023-12-02 10:00:06 26 4
gpt4 key购买 nike

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

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

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

最佳答案

如果我正确理解你的问题,听起来你想要使用给定大小的体素对其进行插值,以便定义一个新的坐标系,其中每个体素是各向同性的(即具有相等的高度、宽度和深度) ,即立方体素)。如果是这样可能会有所帮助:

(我使用 matlabs 提供的核磁共振数据作为示例)

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

关于matlab - 将非各向同性体素转换为各向同性体素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32018133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com