I'm wondering whats the differences between a homography and a transformation matrix?

For me it's kinda look like the same? Or is homography just the more precise word in the area of computer vision and transformation of image plane?

  • $\begingroup$ What would you say is the difference between a linear transformation and a matrix? $\endgroup$ – amd Aug 9 '17 at 19:14
  • $\begingroup$ @amd thats literally what I'm asking ?! $\endgroup$ – flor1an Aug 21 '17 at 12:01
  • $\begingroup$ A transformation is a function. A matrix is an array of numbers that can represent a transformation. Do you see the difference? $\endgroup$ – amd Aug 21 '17 at 19:49
  • $\begingroup$ @amd well I wasn't asking for the difference between an transformation and a matrix. I was asking for the difference between a homopgrahy and a transformation matrix. But in the mean time I found the difference on my own $\endgroup$ – flor1an Aug 22 '17 at 20:32
  • $\begingroup$ A homography is a particular type of transformation. The difference between that and a matrix is exactly the same: the latter is one possible representation of the former. $\endgroup$ – amd Aug 22 '17 at 21:51

The term homography is often used in the sense of homography matrix in computer vision. In maths, I guess, the term homography describes the substatial concept, not the matrix. So the question is: What is the difference between homography matrix and transformation matrix?

The mathematical name for homography concept is "projective transformation" (source) and in computer vision it refers to transforming images such as if they were taken under different perspective. This is a much narrower question than any arbitrary transformation and hence homography can be computed by using mathematical tricks (see this question for details), avoiding geometrical computations. The effect of applying the matrix should be the same, but the way to get this matrix is easier.

An example from opencv: we have two images of the same place, taken from different angle. We will compute homography H. If we now select one pixel with coordinates (x1, y1) from the first image and another pixel (x2, y2) that represents the same point on another image, we can transform the latter pixel to have the same viewing perspective as the first one by applying H:

OpenCV example of applying homography

As we see, it is identical to applying transformation matrix, hence homography is just a special case of transformation. Most examples that I have seen, consider homography only for 2D (i.e., for images). Still, homography can be extended to larger dimension (source). Thanks to homography, 3D to 2D planar projection (i.e., mapping coordinates in 3D space to points on 2D plane) reduces to 2D to 2D, i.e., to a less complex problem (source).

While transformation is very general concept and includes all kinds of conversions, including conversion between coordinate frames, homography is a subset of it, mostly only applied when rotation is needed (source). In computer vision it is a technical term that describes above-mentioned case of transformation. You can achieve the same result by using proper geometrical transformation, but it will be more complex.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.