Как я могу захватить кадр с устройства video-4-linux (например:/dev/video0) с помощью Mono и C#? ОС - Angstrom Linux работает на BeagleBoard.Как захватить с веб-камеры в Linux с помощью Mono?
ответ
Я сделал v4l2 захват с использованием C. Это, пожалуй, единственный язык, который я бы предпочел сделать это, как хорошо. В драйвере есть много вызовов низкого уровня. Вам необходимо сопоставить память ядра с вашим приложением и буферами копирования. Вы также должны установить тонну конфигурации для устройства. Если вам нужно, я бы подумал о написании библиотеки C и использовании Platform Invoke. Другой вариант - написать две программы и отправить данные в ваше приложение C# через какой-то IPC.
Я не знаком с Mono или C# на linux, но вам, возможно, придется написать интерфейсный модуль, который предоставляет API-интерфейс дайвера или разумную абстракцию. Я думаю, что тогда вы сможете импортировать модуль в код C#. Похоже, Mono поддерживает DLLImport.
Вы можете использовать Emgu CV для этого, он специально рекламирует, что его можно скомпилировать с помощью Mono.
Главная сайта: http://www.emgu.com/wiki/index.php/Main_Page
Компиляция в Mono: http://www.emgu.com/wiki/index.php/Compiling_with_Monodevelop
Пример кода для веб-камеры Захват видео: http://www.emgu.com/wiki/index.php/Camera_Capture_in_7_lines_of_code
+1 написать библиотеку низкого уровня на C и приложение высокого уровня на C# – abatishchev
@Nate привет Нейт есть ли возможность поделиться своим кодом. я пытаюсь сделать что-то подобное –
@FloodGravemind извините, что так долго у меня нет доступа к этому коду. – Nate