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 Kommentar

Jan
Jan am 28 Feb. 2013
Please specify "quite large" exactly. Some users are overwhelmed by 1000 elements already, some can bear billions.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Jan
Jan am 28 Feb. 2013

0 Stimmen

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 Kommentar

Finn
Finn am 1 Mär. 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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 28 Feb. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by