2016-08-10 62 views
0

在matlab中是否有任何計算三維圖像擴展和縮小的函數?例如,可以將3D容量從170 * 240 * 240減少到85 * 120 * 120或從85 * 120 * 120擴展到170 * 240 * 240。所有三維空間的三維圖像的上取樣和縮圖

matlab中的'impyramid'確實類似,但只在第一個2維中縮小和擴大。

我在mathworks文件交換中也看到了這個函數https://www.mathworks.com/matlabcentral/fileexchange/12037-gaussian-pyramid-expand-and-reduce-routines-1d--2d-and-3d,但它對於3D捲來說相對較慢。

+0

你想要金字塔下采樣/上採樣還是要內插?看起來你想插入? –

+0

金字塔下采樣和上採樣 – Tee

回答

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會更便宜但不太準確。其餘的更昂貴的計算。

+0

謝謝。我會檢查這一點。 – Tee