what exact interpolator is 'cubic'?

3 views (last 30 days)
Bo
Bo on 4 Apr 2016
Edited: Alex Taylor on 4 Apr 2016
Image Processing Toolbox, 'imwarp' offers interpolator 'nearest', 'linear' or 'cubic'. It seems the 'cubic' is based on a Catmull-Rom interpolator, can you confirm this? I've backtracked a systematic bias error in my code to originate from the pixel interpolator, 'linear' is no better and 'nearest' is not an option, ideally I'd prefer a plain 'B-spline' (with no negative values in the kernel), what are the chances of supporting custom interpolators (as in the old imtransform)?

Accepted Answer

Alex Taylor
Alex Taylor on 4 Apr 2016
Edited: Alex Taylor on 4 Apr 2016
Yes, 'cubic' is based on the Catmull-Rom cubic kernel. I agree the documentation for imwarp should be more explicit about this.
As for the "bias" in your code, I assume you mean an unexpected spatial bias? If so, I'd recommend working with floating point data and using 'linear' and go with a very simple geometric transformation like a half-pixel translation to narrow down the source of the issue. This should reveal where the problem is. You could go even simpler and work with a 1-D test "image" to really simplify things. I don't see how working with any of the cubic kernels makes a debugging issue related to interpolation easier since there are more neighbors to account for, but maybe I'm missing something about your particular problem.
Custom interpolants were a very rarely used feature of imtransform, so we did not include them in imwarp, but we could consider this moving forward. We could also consider other explicit cubic interpolation algorithms like B-spline moving fowrard.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!