Does imtranslate do subpixel shifts ?

x = randi(256,200,200);
y = imtransalte(x,[-20.5 10.3]);
I know that you can specify a decimal when using imtranslate,
but will it actually translate by 10.3 or will it take the nearest integer value when translating ?

Answers (1)

Here a few pointers which may be able to help you:
  • For every pixel position in the output, the algorithm tries to find the corresponding position in the input image. For subpixel shifts, such a pixel position may not exist. In such cases we use interpolation techniques to find the intensity value. In the case of ‘imtranslate’ there are techniques available: ‘cubic’, ‘linear’ and ‘nearest’.
  • For ‘cubic’and ‘linear’, the intensity value is calculated as a function of the neighboring values. In this case it may not considered as a rounding-off process.
  • But for ‘nearest’ method, the translation may be considered as being approximated to the nearest full pixel increment.
Hope this helps!!

Products

Release

R2019b

Asked:

on 11 Feb 2020

Answered:

on 14 Feb 2020

Community Treasure Hunt

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

Start Hunting!