Affine transformation algorithm

Does anyone know of any standard algorithms to determine an affine transformation matrix based upon a set of known points in two co-ordinate systems?

Affine transformation

I am trying to solve the below problem. I don’t have much knowledge in Affine transformations. Could someone help me answer this question: Find a 3×3 matrix representing a 2D affine transformation of

Affine transformation matrix offset

This has been killing me the last few days. Not even kidding, but I’ve been really stressing over this trying to solve it. I am currently trying to use affine transformation matrices to create an isom

Affine transformation model using RANSAC

I am trying to estimate homography between 2 images using only three correspondences using RANSAC ie I am trying to find Affine transformation connecting the two images . The approach I am using is ta

Affine transformation of selected area

I want to create a tool for affine transformation on selected part of image(4 corners polygon, see image link). http://s14.postimg.org/fn9btus8h/explanation.png I tried to use opencv but without succe

Determining 2D Affine Transformation of Images

I am having a problem determining the affine transformation matrix of below image. Original Image: Affine Transformed Image: I determined 2 points on the images to solve affine transformation matrix

Affine Transformation Rescaling

I detected a salient region in an image to which I perform a series of operations, the most important being an affine normalization (transforming ellipses into circles and trapezoids to equilateral re

Convert an Eigen affine transformation to an Eigen isometry transformation

What is the simplest way to convert an affine transformation to an isometric transformation (i.e. consisting of only a rotation and translation) using the Eigen library? Both transformations are 3D. T

Apply an affine transformation to view in Interface Builder

Is it possible to apply an affine transformation to a view directly in Interface Builder? I know I can attach an outlet and assign it to the transform in code, but I’d like the convenience of visually

Computing affine transformation from 2 sets of points

I am using threejs, and have 2 rectangles defined via two sets of THREE.Vector3’s with 4 vertices each. How do I compute the affine transformation that transforms the first rectangle into the second?

how to perform coordinates affine transformation using python? part 2

I have same problem as described here: how to perform coordinates affine transformation using python? I was trying to use method described but some reason I will get error messages. Changes I made to

Answers

Affine transformations are given by 2×3 matrices. We perform an affine transformation M by taking our 2D input (x y), bumping it up to a 3D vector (x y 1), and then multiplying (on the left) by M.

So if we have three points (x1 y1) (x2 y2) (x3 y3) mapping to (u1 v1) (u2 v2) (u3 v3) then we have

   [x1 x2 x3]   [u1 u2 u3]
M  [y1 y2 y3] = [v1 v2 v3].
   [ 1  1  1]

You can get M simply by multiplying on the right by the inverse of

[x1 x2 x3]
[y1 y2 y3]
[ 1  1  1].

A 2×3 matrix multiplied on the right by a 3×3 matrix gives us the 2×3 we want. (You don’t actually need the full inverse, but if matrix inverse is available it’s easy to use.)

Easily adapted to other dimensions. If you have more than 3 points you may want a least squares best fit. You’ll have to ask again for that, but it’s a little harder.