Clear Filters
Clear Filters

how to calculate translation and rotation of points of image from 2 consecutive frames

16 views (last 30 days)
Hello, I’m trying to calculate the the translation(x,y,z distances) and rotation(roll, pitch, yaw angles) of points of images from 2 consecutive frames. Firstly I use the SURF detector to detect the points of interest then match them between the consecutive frames. Then how am I to calculate the translation and rotation using the location of the matched points? There are many matched points in the image then which one that I have to use in order to find the translation and rotation?

Accepted Answer

Roger Stafford
Roger Stafford on 26 Jun 2013
There is a function in the Statistics Toolbox called 'procrustes' which can do that job for you. Read its documentation at:
http://www.mathworks.com/help/stats/procrustes.html
The minimum number of matched points that must be used in two dimensions is two, but it is better if you have many more than that so that the overall error can be minimized. It carries out a least squares matching procedure and gives you the best translation, rotation, and scale factor change.

More Answers (1)

Anand
Anand on 26 Jun 2013
Given that you have already determined SURF features in both frames, you can use the matchFeatures function from the Computer Vision System Toolbox to match points in one frame to the points in the other.
Since there will be some bad matches, you use RANSAC to determine a good matching transformation that removes outliers in point matching. The vision.geometricTransformEstimator function helps you do this. This function returns a transformation matrix giving you the translation and rotation.
You can use the first example titled 'Recover Transformed Image Using SURF Feature Points' to guide you through the implementation.

Categories

Find more on Image Processing and Computer Vision 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!