Захватить изображение с веб-камеры в приложении WPF?

Я использую веб-камеру в приложении WPF. Я использую Expression Encoder для захвата видео. для захвата видео я создал Job и он работает правильно. Пока я хочу получить изображение с тем же разрешением, что и видео. для этого я использую ffmpeg для извлечения первого кадра из видео. но качество изображения очень низкое. приоритетом является то, что качество изображения должно быть лучшим, чем у подключенной веб-камеры, а разрешение должно быть таким же, как у видео.

Либо у нас есть лучший вариант в Expression Encode для съемки, либо любезно помогите мне с любой альтернативой.


person Akhilesh Chaturbedi    schedule 09.07.2014    source источник


Ответы (3)


Вы можете взглянуть на этот элемент управления:

Управление обеспечивает следующие функции:

  • Получает список доступных устройств веб-камеры в системе.

  • Отображает видеопоток с устройства веб-камеры.

  • Получает текущее захваченное изображение.

Требования

  • Версия элемента управления WPF реализована с использованием клиентского профиля .NET Framework 4.

  • Элемент управления использует фильтр визуализации VMR-9, доступный начиная с Windows XP SP2.

  • Элемент управления поддерживает целевые платформы x86 и x64.

person Sasha Yakobchuk    schedule 12.03.2016
comment
Исходный код недоступен - person Rans; 26.01.2021

По какой-то причине доступ к изображениям с веб-камеры намного сложнее, чем должен быть. Хотя я не использовал приложение Expression Encode, я могу предоставить вам две ссылки на CodePlex, где вы можете найти две разные библиотеки, которые могут помочь вам решить вашу проблему. См. следующие страницы:

Библиотека веб-камеры для WinForm и WPF с C# и VB.NET

WPF MediaKit — поддержка веб-камеры, DVD и пользовательского видео в WPF

В качестве альтернативы, если вы довольны использованием Expression Encode, вы можете взглянуть на следующие ссылки:

Извлечение неподвижных изображений из видеофайлов с помощью C#
Извлечение кадров из видеофайлов – The Code Project – Мультимедиа

person Sheridan    schedule 09.07.2014
comment
Спасибо за помощь. но я перепробовал все ссылки, но главное требование - качество изображения. и если мы извлечем изображение из видео, качество будет очень низким. - person Akhilesh Chaturbedi; 10.07.2014
comment
Если качество видео низкое, то любые изображения, взятые из него, также будут низкого качества. - person Sheridan; 10.07.2014
comment
Просто обратите внимание, что Expression Encode больше не находится в разработке, а основная поддержка прекратилась в прошлом году. - person Peter; 19.05.2016

Я бы порекомендовал AForge.Net, он работает безупречно, бесплатно и под лицензией LGPL v3, он также работает как в 32-битной, так и в 64-битной версии.

Единственным недостатком является то, что вам нужно около 400 КБ dll, чтобы получить управление веб-камерой.

person Peter    schedule 19.05.2016
comment
может ли AForge сохранять звук с видео? - person daniel; 22.11.2016
comment
@daniel Понятия не имею, я захватывал только один кадр за раз, и мне не нужен был звук… но у них есть отличная документация на их домашней странице, поэтому я предлагаю вам проверить это. - person Peter; 22.11.2016
comment
Разве AForge не предназначен для Windows Forms, а не для WPF? Он получает данные веб-камеры в виде объектов Bitmap. Как вы отображаете их в изображении WPF? Также AForge не воспроизводит звук. - person Kyle Delaney; 15.05.2017
comment
@KyleDelaney да, это winforms, но это не стопор шоу, просто используйте <WindowsFormsHost>, а затем сохраните растровое изображение в потоке памяти и загрузите его как BitmapImage. - person Peter; 16.05.2017
comment
@KyleDelaney: я знаю, что это старо, но для будущих читателей Bitmap можно легко преобразовать в BitmapSource или ImageSource. У SO есть несколько сообщений об этом, которые вы можете найти в Google. - person dotNET; 14.03.2020