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.
cv. findHomography() returns a mask which specifies the inlier and outlier points.
The mask returned by findHomography is an 8-bit, single-channel cv::Mat (or std::vector<uchar> , if you prefer) containing either 0 or 1 indicating the outlier status. EDIT: You access each element of the mask by calling . at<double> , which is leading to the confusing output.
Homography is a transformation that maps the points in one point to the corresponding point in another image. The homography is a 3×3 matrix : If 2 points are not in the same plane then we have to use 2 homographs. Similarly, for n planes, we have to use n homographs.
We have seen that a homography can be used to map one image to the other in the case of pure camera rotation or a planar scene. If such a homography exists between the images, four points are sufficient to specify it precisely.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With