Вопрос

Я нашел Пример для доступа к веб-камере в C #. В этом примере используется библиотека DirectShow.NET . Я пытался понять код, но пока единственное, что я мог понять, это то, что каким-то образом usercontrol вызывает directshow для рисования непосредственно на поверхность пользовательского элемента управления.

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

Ответ на этот вопрос может быть простым, если вы знакомы с DirectShow.NET.

Это было полезно?

Решение

Вам нужно будет использовать ISampleGrabber Интерфейс. В сети есть много примеров c ++ о том, как его использовать, он предоставит вам данные в необработанном формате RGB, которые вы можете передать в класс Bitmap.

Существует также библиотека с открытым исходным кодом, которая называется Touchless , в ней есть проект с кодом, который берет веб Cam и перезвонит вам каждый раз, когда приходит новый кадр.

Другие советы

Обязательно ознакомьтесь с этой статьей - http: // www.codeproject.com/Articles/125478/Versatile-WebCam-C-library ; он основан на компоненте захвата Touchless WebCam (но без других компонентов из Touchless SDK).

Если вы нашли Touchless полезным, но хотели бы использовать последний DirectX SDK, попробуйте получить последний источник после изменения 31008 по адресу http://touchless.codeplex.com/SourceControl/ListDownloadableCommits.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top