Quelle est la distance de l'attribut dans DMatches veux dire?
J'ai une petite question: Quand je fais fonction d'appariement dans OpenCV, ce qui ne l' distance
attribut moyen de DMatches
dans MatOfMatches
?
Je sais que je dois le filtre correspond à plus grande distance, car ils ne sont pas aussi bon qu'eux avec moins de distance. Mais quel est le sens de cet attribut? Est-ce une sorte de déviation?
Vous devez vous connecter pour publier un commentaire.
Dans ce contexte, un fonction est un point d'intérêt sur l'image. Afin de comparer les fonctionnalités, vous "décrire" entre eux à l'aide d'un fonction détecteur de. Chaque fonction est alors associée à une descripteur. Lorsque vous faites correspondre les fonctionnalités, vous correspondent réellement à leurs descripteurs.
Un descripteur est un vecteur multidimensionnel. Il peut être valeurs réelles (par exemple TAMISER) ou binaire (par exemple, BREF).
Une correspondance est une paire de descripteurs, un de chaque image, qui sont les plus semblables entre tous les descripteurs. Et bien sûr, de trouver le descripteur de l'image B qui est la plus semblable à un descripteur dans Une image, vous avez besoin d'une mesure de cette similitude.
Il existe plusieurs façons de calculer un score de similarité entre deux vecteurs. Pour les valeurs réelles des descripteurs, la La distance euclidienne est souvent utilisé, lorsque la La distance de Hamming est commun pour les descripteurs.
Comme une conclusion, nous pouvons maintenant comprendre la
distance
attribut: c'est le score de similarité entre les deux descripteurs d'un match.Généralement lorsque vous êtes en correspondance de deux fonctions, vous êtes en fait la comparaison de deux vecteurs dans certaines distance métrique. Maintenant, supposons que votre fonction est de TAMISER avec 128 dimensions, et vous comparez deux TAMISER caractéristiques
a
etb
à l'aide de la distance Euclidienne, puisDMatch.distance
est égal àDistance attribut dans DMatch est une mesure de similarité entre les deux descripteurs(fonction de vecteurs). Si la distance est inférieure, alors que les images sont de plus en plus semblables, et vice-versa.
Une leçon à tirer de mon expérience quand j'ai commencé:
À ne pas confondre la DMatch.la distance avec la normale de la distance spatiale entre deux points. Les deux sont différents. La distance dans le DMatch représente la distance entre deux descripteurs(avec des vecteurs 128 valeurs en cas de SIFT)
En cas de SIFT (locale descripteur):
1) tout d'Abord, vous détecter les points clés(points intéressants) pour les deux images que vous souhaitez comparer.
2) Ensuite, vous calculez les descripteurs sift pour une zone définie (16 X 16 voisinage de chaque point clé) autour de tous les points clés. Chaque descripteur de magasins de l'histogramme de gradients orientés pour la zone autour de chaque point clé.
3) Enfin, les descripteurs à la fois les images sont appariés à trouver la correspondance des points clés entre les images. Ceci est fait en utilisant BFMatcher -> match(), knnMatch() ou FlannBasedMatcher -> knnMatch().
4) Si vous utilisez BFMatcher.match(), vous obtiendrez une liste de DMatch objets. Le nombre de DMatch objets est égal au nombre de matchs. Chaque DMatch objet contient quatre attributs pour chaque appariés point clé de la paire.
5) DMatch.La Distance peut être l'une des nombreuses mesures de distance -> Norm_L1, Norm_L2(distance Euclidienne), Hamming distance, Hamming2 distance,... ce qui peut être considéré comme un paramètre dans BFMatcher. La distance par Défaut est Euclidienne.
6) Différence entre Spatiale de la distance Euclidienne et DMatch de la distance Euclidienne:
Descripteur SIFT 1 -> [a1,a2,....a128]
Descripteur SIFT 2 -> [b1,b2,....b128]
(DMatch) -> distance Euclidienne = sqrt[(a1-b1)^2 + (a2-b2)^2 +...+(a128-b128)^2]
Point 1 -> (x1, y1)
Point 2 -> (x2, y2)
(Spatiale) -> distance Euclidienne = sqrt[(x2-x1)^2 + (y2-y1)^2]
Ainsi, cette distance de DMatch est la distance entre les descripteurs et il représente le degré de similitude entre deux descripteurs et est différent de la normale spatiale de la distance euclidienne entre deux points.
Si la distance entre les descripteurs est de moins en moins, puis de leur similitude est élevé. Si la distance entre les descripteurs est plus, alors, de leur similitude est faible.
Espérons que cela vous aide à comprendre le sens de la distance de l'attribut dans DMatch objets. Si vous êtes clair sur ce point, alors vous pouvez travailler avec n'importe quel fonction des descripteurs comme des PORCS, SIFT, SURF, ORBE, RAPIDE, FREAK,... ils sont Tous semblables quand il s'agit de faire correspondre leurs respectifs en fonction des descripteurs.