transformPointsForward does not support Polynomial​Transforma​tion2D

3 vues (au cours des 30 derniers jours)
Juan de Jesus
Juan de Jesus le 30 Jan 2025
Commenté : Matt J le 31 Jan 2025
I would like to know why transformPointsForward does not support PolynomialTransformation2D as a transformation object. It is weird because transformPointsInverse does support PolynomialTransformation2D.
So the workaround is simple, instead of using:
tform = fitgeotform2d(movingPoints,fixedPoints,"polynomial",degree)
[x,y] = transformPointsForward(tform,u,v)
I used:
tform = fitgeotform2d(fixedPoints,movingPoints,"polynomial",degree)
[x,y] = transformPointsInverse(tform,u,v)
But it is still counterintuitive and increases the risk of making mistakes later in the code.
Please let me know if there is something I am overlooking or if this is really a missing functionality of the transformPointsForward function.
This is the error I am getting when using transformPointsForward:
Incorrect number or types of inputs or outputs for function transformPointsForward.

Réponse acceptée

Matt J
Matt J le 30 Jan 2025
Modifié(e) : Matt J le 30 Jan 2025
Polynomial tforms are generally not invertible, so you can only define them in one direction. I assume fitgeotform2d always fits the inverse transform because it is the inverse, not the forward transform that is need to perform a forward imwarp() from the moving space to the fixed space.
  2 commentaires
Juan de Jesus
Juan de Jesus le 31 Jan 2025
Now that I think about it, it makes sense. That is the expected behavior from the polynomial fit. Thank you very much.
Matt J
Matt J le 31 Jan 2025
You're welcome, but please Accept-click the answer if you consider your question resolved.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by