J'utilise la méthode du modèle de correspondance avec CV_TM_CCORR_NORMED
pour comparer deux images ... je veux faire pour rendre cette rotation et cette échelle invariantes .. des idées?
J'ai essayé d'utiliser la même méthode sur la transformée de Fourier de l'image et du modèle, mais le résultat après rotation est toujours différent
La correspondance de modèle avec matchTemplate
n'est pas bonne lorsque votre objet est tourné ou mis à l'échelle dans la scène.
Vous devriez essayer la fonction openCV de Features2D
Cadre. Par exemple SIFT
ou SURF
descripteurs et FLANN
matcher. De plus, vous aurez besoin de la méthode findHomography
.
Ici est un bon exemple de recherche d'un objet pivoté dans la scène.
Mise à jour:
En bref, l'algorithme est le suivant:
Trouver les points clés de l'image de votre objet 1.1. Extraire des descripteurs de ces points clés
Recherche de points clés de l'image de votre scène 2.1 Extraction de descripteurs à partir de points clés
Descripteurs de correspondance par match
Analysez vos correspondances
Il existe différentes classes de FeatureDetectors, DescriptorExtractors et DescriptorMatches, vous pouvez les lire et choisir celles qui conviennent à vos tâches.
Invariant de rotation
Pour chacun des points clés:
Invariant d'échelle
Voir la méthode RAPIDE
Il existe des moyens plus faciles de faire correspondre une échelle de modèle et une invariance en rotation que de passer par la détection de fonctionnalités et les homographies (si vous savez que ses rotations et échelles sont vraiment uniquement, mais tout le reste est constant). Pour une véritable détection d'objets, les approches basées sur les points clés suggérées ci-dessus fonctionnent mieux.
Si vous savez qu'il s'agit du même modèle et qu'aucun changement de perspective n'est impliqué, vous prenez une pyramide d'images pour la détection de l'échelle de l'espace et faites correspondre vos modèles aux différents niveaux de cette pyramide (via quelque chose de simple, par exemple SSD ou NCC). Il sera bon marché de trouver des correspondances approximatives à des niveaux plus élevés (= résolution inférieure) de la pyramide. En fait, il sera si bon marché que vous pourrez également faire pivoter votre modèle à peu près aux niveaux de faible résolution et lorsque vous remonterez le modèle jusqu'aux niveaux de résolution plus élevés, vous utiliserez un échelon de rotation plus finement granulé. C'est une technique de correspondance de modèles assez standard et fonctionne bien dans la pratique.