Как получить видеокадры с камеры в системе Windows 10 в мое приложение C ++? - PullRequest
2 голосов
/ 26 апреля 2020

Я пишу приложение на C ++ с использованием Visual Studio 2019. Я хочу поэкспериментировать с нейронной сетью обработки видео в реальном времени. Для этого мне нужны необработанные видеоданные RGB. Я хотел бы, чтобы решение принимало видео в режиме реального времени или кадры воспроизведения видео.

Многие поисковые запросы Google находят устаревшие функции. Итак, я ищу лучший лучший фреймворк, который стандартно поставляется с Windows 10. Например, первый элемент в моем поиске Google в устаревшем MFplay.

Это выглядит многообещающе: https://docs.microsoft.com/en-us/windows/win32/multimedia/using-video-capture Однако, хотя документация Microsoft дает синтаксис многих функций, она не очень хорошо объясняет назначение функции.

1) Например, это часто занимает окно захвата, но для чего это окно cature? Зачем мне окно, когда я просто хочу поток видеокадров для моего приложения командной строки?

2) capSetCallbackOnFrame () выглядит интересно, но они говорят: «Эта функция обратного вызова не используется во время захвата потокового видео». так ..... в чем их смысл?

Я ожидаю, что мой окончательный код будет выглядеть так:

поток установки:

1) find a video capture device
2) setup video capture for RGB mode
3) register a frame callback function

поток обратного вызова:

1) buffer the frame

поток обработки:

1) do my stuff on the saved buffer without blocking the callback thread

1 Ответ

0 голосов
/ 26 апреля 2020

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

Вы также можете использовать openFrameWorks . Он содержит много примеров и шаблон кода для обработки видео в реальном времени (с или без захвата видео), с обратным вызовом.

...