I am using the function findHomography
of OpenCV with the RANSAC method in order to find the homography that relates two images linked with a set of keypoints.
The main issue is that I haven't been able to find anywhere yet what are the values of the mask matrix that the function outputs.
The only information that I know is that 0 values are outliers, and non zero values are inliers. But what does it mean the inliers value? Does anyone know?
Piece of code where I call findHomography
:
cv::Mat H12;
cv::Mat mask;
H12 = cv::findHomography(FvPointsIm1, FvPointsIm2, mask, CV_RANSAC, 5);
ui->Debug_Label->setText(Mat2QString(mask));
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. You should be using .at<uchar>
, which will interpret the matrix value correctly.