OpenCV 2.3 (C ++, QtGui), проблема инициализации некоторых конкретных USB-устройств и настроек - PullRequest
3 голосов
/ 30 августа 2011

Некоторое время я играю с OpenCV и обнаружил странное поведение некоторых устройств захвата (PS3 Eye, Logitech C940, iSight) даже на разных платформах.

Использование OpenCV в Windows: всекулачки, упомянутые выше, работают хорошо.Но когда я захочу использовать 2 камеры и, следовательно, создать второй захват, это будет зависеть от устройств, которые я использую в настройке Dual Cam.

PS3 Eye + C940: без проблем 2x C940: без проблем

2x PS3 Eye: нет шансов, будет инициализировано только определенное устройство, которое было подключено первым.Другой PS3 Eye нельзя использовать в одно и то же время ... Нет сообщений об ошибках и не отображается информация о проблеме.

В настоящее время при использовании OpenCV в MacOSX 10.7 (то же самое для 10.6.x) возникают разные проблемы при использовании того же самогоустройства и даже то же приложение QtGui с 2 независимыми GLWidgets для отображения вывода cv в QtGui.

Каждая установка великолепна, если она не использует PS Eye в Mac OS.Я попробовал Macam и несколько других инструментов, но я просто не могу заставить OpenCV инициировать эту камеру в OSX (я купил 3 для моего проекта, поэтому аппаратные пробники маловероятны).

Мне все еще интересно, где проблема... Может быть, 2 PS Eye будет работать в OSX, если бы один?Я не могу сказать.

Я могу даже одновременно снимать с двухкратных веб-камер Logitech FULL HD с хорошей производительностью.

Есть идеи, где может быть ограничение с Dual PS Eye в Windows?Возможно USB?И почему OpenCV в OSX Capture не может работать с PSEye, но macam может получить доступ к камере?

Я просто хочу понять, что происходит.Возможно, кто-нибудь из вас нашел способ использовать хотя бы один PS Eye в OSX?Или это просто невозможно?Не может ли opencv каким-либо образом использовать компонент macam?

1 Ответ

9 голосов
/ 01 сентября 2011

Захват видео очень зависит от платформы. Так что разница между Windows и OS X скорее ожидаемая, чем удивительная. OpenCV использует множество API для захвата видео, чтобы поддерживать как можно больше моделей устройств. На данный момент (OpenCV 2.3.1) он использует следующие библиотеки / API на серверной части:

Windows:

  • DirectShow (подумал библиотека VideoInput)
  • API Microsoft Video для Windows (VfW)
  • Драйвер цифрового фотоаппарата CMU 1394
  • Библиотека изображений Matrox (MIL) (опция)
  • Драйверы камеры OpenNI (опция)
  • XIMEA API для устройств XIMEA (опция)

Linux:

  • libdc1394 (API v1 или API v2) - камеры, соответствующие стандарту IIDC (опция)
  • PvAPI для камер Prosilica GigE Vision (опция)
  • unicap - единый API для устройств получения изображений (опция)
  • video4linux (V4L или V4L2) (опция)
  • Драйверы камеры OpenNI (для Kinect) (опция)
  • XINE (опция)
  • API XIMEA для устройств XIMEA (опция)

OS X:

  • QuickTime (опция)
  • QTKit (если QuickTime нет, эти два являются взаимоисключающими в OpenCV)
  • Драйверы камеры OpenNI (опция)
  • XIMEA API для устройств XIMEA (опция)

Android:

  • встроенная камера Android

* (опция) - эти интерфейсы являются дополнительными - могут быть включены или выключены во время сборки OpenCV и могут потребовать некоторого дополнительного SDK.

О PS3 Eye - в Windows это, скорее всего, ограничение библиотеки VideoInput или установленного драйвера. На OS X - сначала убедитесь, что ваш OpenCV построен с поддержкой QuickTime. Во-вторых, убедитесь, что macam.component правильно установлен в QuickTime. Вот цитата из их FAQ :

Почему я не могу использовать свою веб-камеру с другими приложениями?

Можно. Пожалуйста, скопируйте компонент macam.com в / Library / QuickTime / каталог (для доступа всех пользователей в системе) или в ~ / Library / QuickTime / (для доступа только этого пользователя). Если у вас есть предыдущая копия, пожалуйста, сначала удалите ее. Перезагрузка обычно не нужно, но если у вас есть проблемы, это хорошая вещь, чтобы попробовать. к убедитесь, что ваша установка работает, протестируйте с помощью простой программы как HackTVCarbon, VideoViewer или BTV.

...