Signification des valeurs de masque OpenCV C ++ findHomography

J’utilise la fonction findHomography d’OpenCV avec la méthode RANSAC afin de trouver l’homographie qui relie deux images liées à un ensemble de points-clés. Le problème principal est que je n’ai pas encore pu trouver où que ce soit quelles sont les valeurs de la masortingce de masque que la fonction affiche. La seule information que je connaisse est que les valeurs 0 sont des valeurs aberrantes et que les valeurs non nulles sont des valeurs non spécifiées. Mais que signifie la valeur inliers? Quelqu’un sait?

Merci d’avance!

Morceau de code où j’appelle findHomography :

 cv::Mat H12; cv::Mat mask; H12 = cv::findHomography(FvPointsIm1, FvPointsIm2, mask, CV_RANSAC, 5); ui->Debug_Label->setText(Mat2QSsortingng(mask)); 

Le masque renvoyé par findHomography est un cv::Mat canal unique à 8 bits (ou std::vector , si vous préférez) contenant 0 ou 1 indiquant le statut de valeur aberrante.

EDIT: vous accédez à chaque élément du masque en appelant .at , ce qui entraîne une sortie confuse. Vous devriez utiliser .at , qui interprétera correctement la valeur de la masortingce.

J’ai utilisé la méthode findHomography après l’application de la correspondance de points-clés.

  • Les inliers sont des points-clés correspondants qui sont calculés pour être de vrais positifs (correspondances correctes);
  • Les valeurs aberrantes sont des points clés correspondants qui sont calculés pour être des faux positifs (correspondances fausses).

Vous pouvez ensuite utiliser la sortie du masque pour extraire le sous-ensemble de correspondances correctes de toutes les correspondances.

  • Il y a un exemple dans Python 3.6 et OpenCV 3.4.1:

     good_kp = [gray_kp[m.queryIdx].pt for m in good_matches] correct_matched_kp = [good_kp[i] for i in range(len(good_kp)) if mask[i]]