在所有3个维度中对3D体积进行上采样和缩减

时间:2016-08-10 16:28:42

标签: matlab image-processing 3d filtering gaussian

在matlab中是否有计算3D图像扩展和缩小的功能?例如,可以将3D音量从170 * 240 * 240降低到85 * 120 * 120或从85 * 120 * 120扩展到170 * 240 * 240.

matlab中的'impyramid'确实类似,但只是在前两个维度中缩小和扩展。

我还在mathworks文件交换中看到了这个函数https://www.mathworks.com/matlabcentral/fileexchange/12037-gaussian-pyramid-expand-and-reduce-routines-1d--2d-and-3d,但对于3D卷而言它相对较慢。

1 个答案:

答案 0 :(得分:2)

内存昂贵且速度慢,并且可能是真正做到这一点的唯一方法:

% Desired size
sz=[120 , 56, 123]; %whatever

[y, x, z]=...
   ndgrid(linspace(1,size(img,1),sz(1)),...
          linspace(1,size(img,2),sz(2)),...
          linspace(1,size(img,3),sz(3)));

imOut=interp3(img,x,y,z);
clear x y z 

通过向interp3提供方法,您可以节省一些时间(或花费更多!)。

nearest会更便宜,但不太准确。其余的计算机更贵。