2016-08-10 3 views
0

matlab에서 3D 이미지의 확장 및 축소를 계산하는 기능이 있습니까? 예를 들어 3D 볼륨을 170 * 240 * 240에서 85 * 120 * 120으로 줄이거 나 85 * 120 * 120에서 170 * 240 * 240으로 확장 할 수 있습니다.모든 3 차원에서 3D 볼륨의 업 샘플링 및 다운 샘플링

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은 저렴하지만 정확도가 떨어집니다. 나머지는 computaionally 비싼.

+0

감사합니다. 나는 이것을 조사 할 것이다. – Tee