Akanes
Akanes

Reputation: 487

Output of cv2.findHomography in OpenCV (Python)

I'm using OpenCV's findHomography function (with RANSAC) in Python to find the transformation between two sets of points.

Looking at the documentation, the output is a mask and a transformation matrix.

The documentation is not clear about what the mask represents, and how the matrix is structured.

Is a 1 in the output mask a point that fits the found transformation or a point that was ignored? And could you explain the makeup of the 3x3 output transformation matrix?

Thanks in advance and sorry if I missed some documentation which explains this.

Upvotes: 17

Views: 27152

Answers (2)

Kanad
Kanad

Reputation: 1821

Based on my limited search, mask returned by findHomography() has status of inliers and outliers, i.e. it's a matrix representing matches after finding the homography of an object.

This answer addresses your first question.

This answer addresses what a mask is and what are its dimensions.

Upvotes: 5

Jay
Jay

Reputation: 2686

Well what do you need to do with the mask? Because that field is not needed so you don't have to put any mask.

As for the resulting matrix. It is called a homography matrix, or H matrix and it represents the transformation of one point in an image plane to the same point in another image plane.

 X1 = H * X2

The point X1 is the same point (X2) in a different plane.

So the H matrix is basically the description of how one point in, lets say, image 1 matches 1 point in image2.

Upvotes: 2

Related Questions