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.
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]]