I think what I will try, is to calculate the translation, where the origin is now vs where the origin should be. Then translate the input points of fitgeotrans() and then calculate the transformation matrix.
Transformation matrix (projective2d) change of origin at application
6 views (last 30 days)
Show older comments
Katharina Heitger on 29 Nov 2021
Commented: Matt J on 5 Dec 2021
I have a transformation matrix (as a projective2d object) created with fitgeotrans(), which should be used as an image correction, and a simulated image, which I want to use for validation of this transformation matrix.
The points used as input for fitgeotrans() are calculated before based on some measurements, which works fine.
I apply the transformation matrix via the imwarp() function onto the simulated image. But now it seems that the correction is applied with the origin at the wrong point.
How can I change that, if the points used as input for the fitgeotrans() are assumed to be correct? And I do not think that the transformation matrix changes if I change the input order of the points in fitgeotrans(). (As long as the fixedpoints and their corresponding movingpoints are at the same position.)
Edit (30.11.2021): After some additional research, I have the suspicion, that i should maybe ask the question differently: How can I apply the transformation matrix so that the origin on the matrix is in the center before and after correction?
Any help is appreciated.
Matt J on 30 Nov 2021
Edited: Matt J on 30 Nov 2021
You should use imwarp's OutputView option to specify a coordinate system for the output with the origin in the center.
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!