MATLAB Answers

0

How do I apply a fitgeotrans output or similar to points NOT an image?

Asked by Right Grievous on 18 Jun 2016
Latest activity Commented on by Neuropragmatist on 10 Jan 2019
Hi everybody,
I have been using the fitgeotrans function to find the best linear weighted mean transformation between two sets of points.
This works really well when I use the imwarp function to warp an image, however, I also need to perform the same transformation on x,y points - this is proving difficult.
The tform output of fitgeotrans does not seem to have any transformPointsForward method, all it has is a transformPointsInverse method, which is not useful for me.
I think I must be missing something, the fitgeotrans function is using point coordinates to calculate the transformation, so surely it should be as easy to apply this to coordinates as well as images, if not easier?
Thanks for any help,
Rod.

  0 Comments

Sign in to comment.

1 Answer

Answer by Catalina Vajiac on 24 Jun 2016

There is a transformPointsForward function that you can use on your data points. The issue is that they are then defined in world coordinates, not intrinsic coordinates, so you must also use the worldToIntrinsic function, like this:
[B,RB]=imwarp(A,tform);
[xdataT,ydataT]=transformPointsForward(tform,xdata,ydata);
[xdataI,ydataI]=worldToIntrinsic(RB,xdataT,ydataT);
where tform is the output from fitgeotrans and RB is a spacial referencing object.

  3 Comments

Wow, this looks interesting, I will have to give this a try!
thanks for such a great answer ... I spent days trying to solve it.
I agree, it has helped me a lot for years now!

Sign in to comment.