2010-09-08 2 views
0

Я хочу, чтобы одновременно запускалось два приложения: один, который анализирует изображение с веб-камеры, написанной с использованием OpenCV (изображение получается через функцию обратного вызова), и приложение, которое переходит в полноэкранный режим (скажем, 3D-игра). Проблема в том, что при запуске полноэкранного режима поток изображений веб-камеры останавливается - фреймы просто не появляются, функция обратного вызова не вызывается. Это похоже на проблему с OpenCV - для проверки того, что было подготовлено простое приложение, отображающее камеру формы изображения.Прекращение работы камеры OpenCV во время полноэкранного режима

Почему поток изображений может быть заблокирован полноэкранным режимом? Как обойти это?

Спасибо за любые подсказки.

ответ

0

На самом деле поведение потока камеры OpenCV странно. Кажется, что это зависит от собственного открытого окна OpenCV (cvNamedWindow()), который показывает веб-камеру формы выходного изображения. Если окно находится на том же экране, что и в полноэкранном режиме, потоковая передача будет продолжена. Если окно камеры будет помещено на другой экран, поток остановится.

Еще одна любопытная вещь с изменением разрешения экрана. Если вы измените разрешение экрана, и окно камеры не будет видно (закрыто или даже минимально), поток изображения будет заблокирован.

Это только мои наблюдения по теме, возможно, это будет полезно для кого-то.

1

Я не эксперт по OpenCV, поэтому это ближе к предложению, чем к ответу, но я испытал подобное на моей настройке с несколькими мониторами, используя несколько медиаплееров на втором мониторе, и - полноэкранные приложения во-первых.

В моем ограниченном тестировании речь идет о том, какой метод используется для рендеринга 3D-приложения - DirectX, похоже, останавливает медиаплееры, OpenGL этого не делает.

Возможно, это не проблема OpenCV, это может быть то, что DirectX делает для аппаратного обеспечения во время полноэкранной игры.

Смежные вопросы