3D interpolation with very large data sets

I would like to interpolate quite large 16 bit datasets. However, the code I normally use (see below) requires the input to be at least of type single and during calculation it produces 3 datasets of type double. Is there another solution for interpolation that requires less computer-power at the expense of accuracy?
>>
function [stackOut]=3Dinterpolation(stack,ny,nx,nz)
[y x z]= ndgrid(linspace(1,size(stack,1),ny),linspace(1,size(stack,2),nx),linspace(1,size(stack,3),nz)); stackOut=interp3(stack,y,x,z);
>>
Thank you, Finn

1 commentaire

Jan
Jan le 28 Fév 2013
Please specify "quite large" exactly. Some users are overwhelmed by 1000 elements already, some can bear billions.

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 28 Fév 2013

0 votes

Inside INTERP3 no magic things happen. I suggest to take a look into the code, copy what you need, and formulate it such that it acceptes your input type.
Btw., what does "16 bit dataset" exactly mean?

1 commentaire

Finn
Finn le 1 Mar 2013
I am working with 3D image stacks with 1 billion voxels of type uint16. I had a look into the INTERP3 code. Since this seems quite complex (..at least to me) I will stick to the current code and will use another computer for the calculations (64bit).
Best regards, Finn

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interpolation dans Centre d'aide et File Exchange

Produits

Question posée :

le 28 Fév 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by