4 votes

Extraire moins de points clés avec opencv

J'ai besoin de faire une reconnaissance d'objet en temps réel (avec une image provenant d'une caméra vidéo usb).

Existe-t-il un moyen de savoir

SurfFeatureDetector.detect(); 

pour extraire moins de points clés ?

4voto

Jav_Rock Points 12621

En modifiant le seuil, vous pouvez contrôler d'une certaine manière le nombre de points clés. Quoi qu'il en soit, il ne s'agit pas de contrôler directement le nombre maximal de points de référence.

Si vous voulez qu'il s'arrête à un maximum, vous devrez aller dans l'algorithme dans le .cpp (qui n'est pas débogable) et mettre une condition dans une boucle. J'ai fait cela avec certains algorithmes dans OpenCV pour gagner en efficacité de calcul. Le problème est que vous devrez copier le code et le coller dans votre propre classe pour pouvoir le modifier et cela pose des problèmes de liaison jusqu'à ce que vous obteniez tout ce qu'il faut.

2voto

kobejohn Points 2485

Voici le constructeur de SurfFeatureDetector . Avec le constructeur, vous pouvez diminuer le nombre de points clés avec les 3 arguments de base :

  • hessianThreshold : l'augmenter
  • octaves : diminuer cette
  • octavelayers : diminuer cette

Je ne connais pas les détails de la mise en œuvre de SURF, mais cette réponse de l'OS renvoie à la documentation qui explique l'ensemble de l'algorithme afin que vous puissiez choisir comment le modifier.

Comme alternative à l'étude directe de la mise en œuvre, j'ai trouvé Trouver un objet s'est avéré très utile pour expérimenter de nombreux paramètres de l'algorithme de détection des caractéristiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X