Bonjour, j’essaie de faire un suivi d’objet avec une webcam, et je recopie un code ,cependant quand j’essaie d’installer cv2 d’open cv, je n’obtiens que des erreurs…
étant débutant en python, je pense que quelque chose m’échappe,
je vous mets ce que j’ai à ma disposition (le forum dit que je peux n’en mettre qu’un seul, aussi j’ai regroupé 2 images )
Merci pour vos conseils
Je suis content de mon code et je cherche à mettre plus d'équipes dorénavant.
Du coup, j'aurais besoin de rajouter une scrollbar sur la fenêtre principale; quelqu'un saurait faire?
Je rencontre une difficulté concernant la capture vidéo via une carte USB. En particulier, lorsque je dois basculer la source entre PAL et NTSC, cela provoque un freeze de la carte. En interrogeant la carte avec v4l2-ctl, je constate que la fréquence et la résolution ne se mettent pas à jour correctement.
La seule solution que j'ai trouvée pour forcer la mise à jour est d'utiliser usbreset pour redémarrer la carte, mais cela présente plusieurs inconvénients :
Temps d'attente long : Le redémarrage de la carte est relativement lent.
Changement de chemin : Dans certains cas, après un redémarrage avec usbreset, le chemin de la carte peut changer, rendant l'accès compliqué.
L’objectif est donc de pouvoir redémarrer ou rafraîchir la carte rapidement après un basculement de fréquence, mais je fais face à un comportement imprévisible :
Lorsque je capture avec ffmpeg, un changement de fréquence génère souvent une erreur, entraînant l'arrêt du programme. Cependant, parfois l'enregistrement continue malgré une image figée ou noire, ce qui rend la situation encore plus complexe à gérer et m'oblige à surveiller en permanence la fréquence pour relancer ffmpeg.
Je cherche un moyen plus propre et plus rapide de redémarrer la carte sans avoir recours à usbreset. Idéalement, le processus devrait être plus réactif, car actuellement, après un redémarrage via usbreset, il faut de temps en temps attendre au moins cinq secondes avant que la carte soit réutilisable. De plus, il arrive que l'utilisation de usbreset donne un message d’erreur "no such device", alors que v4l2-ctl retourne les bonnes informations.
Mon idée est de détecter quand ffmpeg s'arrête, quelle qu'en soit la cause, puis utiliser usbreset pour redémarrer la carte et relancer l'enregistrement. Mais je cherche une alternative plus rapide et fiable que l’utilisation de usbreset, tout en minimisant les risques de changement du chemin de la carte.
Y a-t-il une méthode plus propre et plus rapide pour redémarrer ou rafraîchir la carte vidéo via du code Python ou C ? Existe-t-il une API ou une commande qui pourrait résoudre ce problème sans avoir besoin de redémarrer complètement la carte ?
Merci pour toute aide ou suggestion que vous pourrez fournir.
Mon fils est à la recherche d’un stage de dev en Python d’un mois cet été sur Paris. Pas forcément un dieu en programmation actuellement mais il a la volonté d’apprendre et il est par ailleurs très fort en maths (élève au lycée Louis Le Grand), ce qui peut aider pour certains types de projets.
Toutes les propositions sont les bienvenues.
cordialement,
JF
Certains ont suivi de très près (le design est de Marie-Ange, qui a fait le design de la PyConFR 2023, l’intégration de @grewn0uille et @liZe), d’autres moins.
Je l'ai développé dans le cadre de mon travail chez IDEMIA où nous sommes souvent confrontés à plus de trente (voire plus de soixante) dépôts à gérer conjointement sur un projet. Dans ce contexte, la moindre opération git devient un mini-défi qu'il fallait relever quotidiennement.
Multigit est abouti et stable, il est utilisé au quotidien par plus d'une centaine de personnes (sous Windows), depuis plusieurs années. Mon employeur m'a aimablement autorisé à le publier en Open Source, ce dont je lui sais gré. Il est publié sous licence Apache 2.0
La problématique de gestion de plusieurs dépôts git conjoints pour un projet est assez peu répandue dans le monde du logiciel libre. Mais beaucoup plus dans le monde de l'entreprise. En effet, git ne gère pas la notion de droit d'accès à une partie d'un dépôt. La seule façon de restreindre l'accès à certains parties d'un projet est donc de créer un dépôt spécifique pour les y stocker, avec des droits d'accès au niveau du dépôt. Ajoutons à cela beaucoup de personnes, beaucoup de projets parfois complexes, beaucoup de sous-projets, beaucoup d'historique et on se retrouve avec une gestion des sources particulièrement complexe. Complexe … avant l'arrivée de Multigit en tout cas.
Installation
Sous Linux, la seule option d'installation disponible à l'heure actuelle est Python + pip, ou encore mieux avec pipx:
Sous Windows, un installeur graphique click-and-play vous permettra d'arriver au même résultat.
J'ai bien tenté de fournir un snap pour Linux mais snap est conçu pour empêcher à peu près tout ce que veut faire Multigit: accèder à tous vos fichiers et lancer des programmes de votre distribution (git, gitk, …)
Je ferai mieux dans la prochaine version. D'ailleurs, si vous avez des recommandations pour un packaging moderne, simple, facile à maintenir et couvrant toutes les distributions Linux, je suis preneur.
Contribution
Le projet est géré sous GitHub, les contributions ou les retours sont les bienvenus.