Проблемы с доступом к веб-камере под Windows 10 / OpenCV

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

Я могу получить доступ к камере просто отлично под Windows 8.1. используя либо

Они позволяют захватывать поток веб-камеры с высокой частотой кадров (~ 30 кадров в секунду) и устанавливать разрешение веб-камеры, например, с помощью.

cvCapture.set (CV_CAP_PROP_FRAME_WIDTH, 640);

cvCapture.set (CV_CAP_PROP_FRAME_HEIGHT, 480);

Однако в Windows 10 оба вышеуказанных решения приводят к проблемам:

  • решение с использованием OpenCV 2.4.9 и библиотеки VideoInput позволяют
    установив разрешение 640×480, но частота кадров составляет около 1FPS
    (или хуже ?!), а картинка очень темная
  • Решение, использующее OpenCV 3.0, дает мне хорошее изображение 1920×1080 с хорошей частотой кадров, но я не могу установить разрешение для потока

Я даже попытался открыть поток камеры с помощью:

cv :: VideoCapture cvCapture (CV_CAP_DSHOW + camnum);

cv :: VideoCapture cvCapture (CV_CAP_MSMF + camnum);

Первый работает (что касается открытия потока, но с теми же проблемами, что и выше), MSMF (Microsoft Media Foundation) приводит к тому, что cvCapture.isOpened () возвращает false;

Обработка потока FullHD в режиме реального времени неосуществима для алгоритмов обработки изображений, равно как и изменение размера результирующего кадра с помощью OpenCV.

Версия Windows 8.1 работает на Surface Pro 3 (Core i7), а версия Windows 10 на Surface Pro 4 (Core i7). Может ли это быть проблема с аппаратным / драйвером камеры? Я пытался найти обновленные драйверы для Surface 4, но безрезультатно.

У кого-нибудь были подобные проблемы? Есть ли очевидное решение, которое я пропускаю?

1

Решение

Я думаю, что ваша проблема с videoInput в Windows 10 связана с выбором правильного медиа-типа веб-камер. Дело в том, что OpenCV по умолчанию использует DirectShow, а videoInput на Media Foundation является необязательным.
Советую правильно проверить переменные:

float MF_MT_FRAME_RATE_RANGE_MAX;
float MF_MT_FRAME_RATE;
float MF_MT_FRAME_RATE_RANGE_MIN;

в

// Structure of info MediaType
struct MediaType

Также могу посоветовать посетить на сайте Редактор топологии Capture Manager — Это бесплатное программное обеспечение для работы с веб-камерами через Media Foundation. Это позволяет проверять доступные функции Media Foundation на Surface Pro 4 (Core i7).

С наилучшими пожеланиями,
Евгений Перегуда

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]