windows - OpenCV 2.3 (C ++, QtGui), Problem med at initialisere nogle specifikke USB-enheder og -opsætninger

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har spillet rundt med OpenCV siden et stykke tid, og jeg fandt nogle underlige opførsel af nogle specifikke indfangningsenheder (PS3 Eye, Logitech C940, iSight), selv på forskellige platforme.


Brug af OpenCV i Windows: Alle cams nævnt ovenfor fungerer godt. Men når jeg vil bruge 2 kameraer og derfor lave en anden optagelse, afhænger det af de enheder, som jeg bruger i min Dual Cam Setup.


PS3 Eye + C940: ingen problemer
2x C940: ingen problemer


2x PS3 Eye: Ingen chance, kun den specifikke enhed, der var tilsluttet først, vil initialisere. Det andet PS3-øje kan ikke bruges samtidig. Der vises ingen fejlbegivenheder og ingen oplysninger om problemet.


Nu bruger OpenCV i MacOSX 10.7 (samme til 10.6.x) er der forskellige problemer med at bruge de samme enheder og endda det samme QtGui-program med 2 uafhængige GLWidgets til visning af cv output i QtGui.


Hver opsætning er fantastisk, så længe den ikke bruger et PS-øje i Mac OS. Jeg prøvede macam og flere andre værktøjer, men jeg kan bare ikke få OpenCV til at starte denne cam i OSX (jeg købte 3 til mit projekt, så hardwareproblemer ikke meget sandsynligt).


Jeg undrer mig stadig over, hvor problemet er ... Måske ville 2 PS Eye's arbejde i OSX, hvis en enkelt gjorde det? Jeg kan ikke fortælle det.


Jeg kan endda fange fra 2x Logitech FULL HD Webcams samtidigt med god ydeevne.


Enhver ide, hvor begrænsning kunne være med Dual PS Eye i Windows? Måske USB? Og hvorfor kan 't OpenCV i OSX Capture fra PSEye, men macam få adgang til cam'en?


Jeg vil bare forstå, hvad der sker. Måske har nogen af ​​jer fundet en måde at bruge mindst et singe PS Eye i OSX på, eller er det bare ikke muligt? Kan du ikke åbne macc-komponenten på en eller anden måde?

Bedste reference


Videooptagelse er meget platformafhængigt område. Så forskellen mellem Windows og OS X forventes snarere end at undre sig. OpenCV bruger en masse videoindfangnings-API'er til at understøtte så mange enhedsmodeller som muligt. I øjeblikket (OpenCV 2.3.1) bruger den følgende libs/API'er på back-end:


Windows:



  • DirectShow (tanke VideoInput bibliotek)

  • Microsofts Video til Windows (VfW) API

  • CMU 1394 Digital Camera Driver

  • Matrox Imaging Library (MIL) (opt)

  • OpenNI-kamera drivere (opt)

  • XIMEA API for XIMEA-enheder (opt)



Linux:



  • libdc1394 (API v1 eller API v2) - IIDC standard kompatible kameraer (opt)

  • PvAPI til Prosilica GigE Vision-kameraer (opt)

  • unicap - Den ensartede API til billedoptagelsesenheder (opt)

  • video4linux (V4L eller V4L2) (opt)

  • OpenNI-kamera drivere (til Kinect) (opt)

  • XINE (opt)

  • XIMEA API for XIMEA-enheder (opt)



OS X:



  • QuickTime (opt)

  • QTKit (hvis der ikke er QuickTime, er disse to gensidigt eksklusive i OpenCV)

  • OpenNI-kamera drivere (opt)

  • XIMEA API for XIMEA-enheder (opt)



Android:



  • indbygget Android-kamera



* (opt) - disse grænseflader er valgfri - kan tændes eller slukkes under OpenCV-bygningen og kan kræve yderligere SDK.


Om PS3 Eye - på Windows er det sandsynligvis en vis begrænsning af VideoInput bibliotek eller installeret driver. På OS X - Sørg først for at din OpenCV er bygget med QuickTime-support. Og for det andet skal du sikre dig, at macam.component er installeret korrekt i QuickTime. Her er et citat fra deres ofte stillede spørgsmål: [1]



  Hvorfor kan jeg ikke bruge mit webcam med andre applikationer?

  
  Du kan. Kopier venligst macam.component i
  /Bibliotek/QuickTime/bibliotek (for adgang for alle brugere på systemet)
  eller i ~/Bibliotek/QuickTime/(for adgang for kun den pågældende bruger). Hvis
  du har en tidligere kopi, skal du slette den først. En genstart er normalt
  ikke nødvendigt, men hvis du har problemer, er det en god ting at prøve
  Kontroller, at din installation fungerer, test med et simpelt program sådan
  som HackTVCarbon, VideoViewer eller BTV.