Speed improvements of IMWARP or alternative

1 view (last 30 days)
Dear all,
I'm using imwarp for extracting a 2D image/plane from a 3D dataset, including a 3D transformation.
What I experienced is that the speed of imwarp does not depend on the size of the resample output but on the size of the input image. This surprised me a lot and implies a very inefficient implementation, at least for my purpose.
I found by searching the web, the function tformarray that I might use as well. Using this function the calculation time is reduced with a factor more than ten. I find this very surprising as well, as I expect the imwarp function is build on top of the tformarray-function (correct me if I'm wrong). Do I make a mistake?
The disadvantage is that when using tformarray, I have to construct a tmap_B that reflects the pixel index corresponding to the axis coordinates for both input and resample axis. Although this might be trivial, is there a in-build Matlab function that can do the job?
Another disadvantage is that it relies on linear axis (in pixels/voxels), and non-linear sampling needs to be resampled first (annoying when you have for example MR or CT data with varying slice thickness).
I'm looking forward to your comments and or help.
Many thanks in advance,
Kees

Answers (0)

Community Treasure Hunt

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

Start Hunting!