Why does transformation matrix compute varying results?

1 visualización (últimos 30 días)
Helia Sh
Helia Sh el 19 de Nov. de 2018
Editada: Matt J el 21 de Nov. de 2018
Hi there,
I am interested in computing the transformation matrix of a series of images using Matlab's estimateGeometricTransform().
I am using a set of 2D images where a dot is almost centered on a blank canvas. With each increment of my scene image, I compare the matched ORB features of my reference and respective Scene image. I have attached my reference and sample test images.
From Scene 1 to Scene 5 image, you can see the dot gradually moves up in the y-axis. So I anticipated to see my translation vector along the y-axis to increase while the other variable in the transformation matrix remain the same. However that is not the case. I have attached my transformation matrices when I compared each Scene image with the Reference image.
Although the dot moves forward in only y-axis, all variables in the computed transformation matrix are changing without a consistent pattern. What could be causing unstable output of the results?
  3 comentarios
KALYAN ACHARJYA
KALYAN ACHARJYA el 20 de Nov. de 2018
Be Specific quaestion please? Read here
Helia Sh
Helia Sh el 20 de Nov. de 2018
@KALYAN ACHARJYA thank you for your suggestion. I have updated my query. Please let me know if you require additional information.

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 20 de Nov. de 2018
Editada: Matt J el 20 de Nov. de 2018
What could be causing unstable output of the results?
Probably because there are infinite solutions. For example, any initial rotation of the circular black dot, followed by a y-translation, results in the same image and therefore would be a valid solution.
  4 comentarios
Helia Sh
Helia Sh el 21 de Nov. de 2018
Editada: Helia Sh el 21 de Nov. de 2018
Fair enough. Please let me know if you have any shapes to recommend or techniques to implement that could give me a more stable transformation matrix.
The position of the dot was changing at an even distance across the frames. It is still not clear why the translation vectors of the transformation matrix are changing so dramatically (sometimes detecting shifts in a factor of 10) and oscillating between positive and negative.
showMatchedFeatures() displays a more realistic tracking of the features. I have attached these results.
Thanks!
Matt J
Matt J el 21 de Nov. de 2018
Editada: Matt J el 21 de Nov. de 2018
It is still not clear why the translation vectors of the transformation matrix are changing so dramatically (sometimes detecting shifts in a factor of 10)
But you've seen for yourself that the transformation matrices that you are getting do bring the dot successfully to the desired location, just as a direct translation along the y-axis would. That should make it very clear that there are many possible transformations that work. If we agree that there are multiple solutions for every position of the dot, then why do you expect to see a particular pattern in the solutions chosen by the code?
and oscillating between positive and negative
Because, for example, instead of translating forward in the y-direction by +10, I could equivalently translate by -10 and then perform a rotation of 180 degrees about the starting location of the dot. Both of these transformations would bring the dot to the same spot.
Alternatively, I could translate in the direction 10*[-1,-1]/sqrt(2) and then rotate 135 degrees to reach the same spot. There are infinite possible translation/rotation combinations that would work with many possibilities for the signs of the numbers.

Iniciar sesión para comentar.

Categorías

Más información sobre Code Generation, GPU, and Third-Party Support en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by