Какой метод вы используете для захвата изображения с камеры в вашем приложении? - PullRequest
1 голос
/ 30 июля 2010

Я использую C # для разработки, я хочу использовать камеру для захвата изображения в моем приложении.
Насколько я знаю, есть два варианта: Веб-камера с

[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindowA")]  

И используйте эту функцию для захвата изображения в буфер обмена, и тогда наше приложение сможет получить изображение.

Выбор 2: Используйте DirectX для захвата изображения, и я нашел пример проекта для codeproject.
У меня вопрос: какое решение выбрать?
Что я должен рассмотреть, прежде чем сделать выбор?
Пожалуйста, укажите мне правильное направление, спасибо!

1 Ответ

0 голосов
/ 31 июля 2010

Я думаю, что с DirectX мы можем получить больше контроля с аппаратным обеспечением.Загрузка ЦП обычно представляется в виде простого процента времени ЦП, затрачиваемого на незанятые задачи.Но это немного упрощение.В любой современной операционной системе ЦП фактически проводит время в двух совершенно разных режимах:

Режим ядра В режиме ядра исполняемый код имеет полный и неограниченный доступ к базовому оборудованию.Он может выполнить любую инструкцию процессора и ссылаться на любой адрес памяти.Режим ядра обычно зарезервирован для самых надежных функций операционной системы самого низкого уровня.Сбои в режиме ядра являются катастрофическими;они остановят весь ПК.

Режим пользователя В режиме пользователя исполняемый код не имеет возможности прямого доступа к аппаратной или эталонной памяти.Код, работающий в пользовательском режиме, должен делегировать системным API для доступа к оборудованию или памяти.Благодаря защите, обеспечиваемой такого рода изоляцией, сбои в пользовательском режиме всегда исправимы.Большая часть кода, выполняемого на вашем компьютере, будет выполняться в пользовательском режиме.

...