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 ?
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 ?
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.
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'augmenteroctaves
: diminuer cetteoctavelayers
: diminuer cetteJe 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 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.