OpenCV 2.3 (C ++, QtGui), Problème lors de l’initialisation de certains périphériques et configurations USB spécifiques

Je joue avec OpenCV depuis un certain temps et j’ai trouvé un comportement étrange de certains périphériques de capture spécifiques (PS3 Eye, Logitech C940, iSight), même sur différentes plates-formes.

Utiliser OpenCV sous Windows: Toutes les cames mentionnées ci-dessus fonctionnent bien. Mais quand je veux utiliser 2 caméras et créer une seconde capture, cela dépendra des périphériques que j’utilise dans mon Dual Cam Setup.

PS3 Eye + C940: pas de problèmes 2x C940: pas de problèmes

2x PS3 Eye: aucune chance, seul le périphérique spécifique connecté en premier sera initialisé. L’autre PS3 Eye ne peut pas être utilisé en même temps … Aucun événement d’erreur et aucune information sur le problème ne sont affichées.

Maintenant, en utilisant OpenCV dans MacOSX 10.7 (même chose pour 10.6.x), il y a différents problèmes en utilisant les mêmes périphériques et même la même application QtGui avec 2 GLWidgets indépendants pour afficher la sortie cv dans QtGui.

Chaque installation est excellente tant qu’elle n’utilise pas PS Eye sous Mac OS. J’ai essayé le macam et plusieurs autres outils, mais je ne peux tout simplement pas obtenir OpenCV pour initier cette came sous OSX (j’ai acheté 3 pour mon projet donc les probs matériels n’étaient pas très probables).

Je me demande toujours où est le problème … Peut-être que 2 PS Eye fonctionneraient dans OSX si un seul le faisait? Je ne peux pas dire

Je peux même capturer à partir de 2x Logitech FULL HD Webcams simultanément avec de belles performances.

Toute idée où la limitation pourrait être avec Dual PS Eye dans Windows? Peut-être USB? Et pourquoi OpenCV dans OSX Capture de PSEye ne peut-il pas accéder au camam?

Je veux juste comprendre ce qui se passe. Peut-être quelqu’un d’entre vous a-t-il trouvé un moyen d’utiliser au moins un PS Eye dans OSX? Ou est-ce juste impossible? Ne peut-on pas utiliser en quelque sorte le composant macam?

La capture vidéo est une zone très dépendante de la plate-forme. Donc, la différence entre Windows et OS X est plutôt attendue que de se demander. OpenCV utilise de nombreuses API de capture vidéo pour prendre en charge autant de modèles de périphériques que possible. Pour le moment (OpenCV 2.3.1), il utilise les libs / API suivants sur le serveur principal:

Les fenêtres:

  • DirectShow (librairie pensee VideoInput)
  • API de Microsoft pour Windows (VfW)
  • Pilote pour appareil photo numérique CMU 1394
  • Matrox Imaging Library (MIL) (opt)
  • Pilotes de caméra OpenNI (opt)
  • API XIMEA pour les appareils XIMEA (opt)

Linux:

  • libdc1394 (API v1 ou API v2) – Caméras conformes IIDC standard (opt)
  • PvAPI pour les caméras Prosilica GigE Vision (opt)
  • unicap – L’API uniforme pour les dispositifs d’acquisition d’images (opt)
  • video4linux (V4L ou V4L2) (opt)
  • Pilotes de caméra OpenNI (pour Kinect) (opt)
  • XINE (opt)
  • API XIMEA pour les appareils XIMEA (opt)

OS X:

  • QuickTime (opt)
  • QTKit (si aucun QuickTime, ces deux sont mutuellement exclusifs dans OpenCV)
  • Pilotes de caméra OpenNI (opt)
  • API XIMEA pour les appareils XIMEA (opt)

Android:

  • appareil photo Android intégré

* (opt) – ces interfaces sont facultatives – peuvent être activées ou désactivées pendant la génération OpenCV et peuvent nécessiter un SDK supplémentaire.

À propos de PS3 Eye – sous Windows, il s’agit très probablement d’une limitation de la bibliothèque VideoInput ou du pilote installé. Sous OS X, assurez-vous que votre OpenCV est compatible avec QuickTime. Et deuxièmement, assurez-vous que macam.component est correctement installé dans QuickTime. Voici une citation de leur FAQ :

Pourquoi ne puis-je pas utiliser ma webcam avec d’autres applications?

Vous pouvez. Veuillez copier le composant macam.component dans le répertoire / Library / QuickTime / (pour que tous les utilisateurs du système puissent y accéder) ou dans le répertoire ~ / Library / QuickTime / (accessible uniquement à cet utilisateur). Si vous avez une copie précédente, veuillez la supprimer en premier. Un redémarrage n’est généralement pas nécessaire, mais si vous avez des problèmes, c’est une bonne chose à essayer. Pour vérifier que votre installation fonctionne, testez avec un programme simple tel que HackTVCarbon, VideoViewer ou BTV.