2009-06-26 2 views
2

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

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

Проблема в том, что всегда установлены «2» веб-камеры, настоящие, и наш пользовательский драйвер.

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

Кто-нибудь знает, как это сделать?

Мы используем VC++.

Благодаря

ответ

1

Ознакомьтесь с библиотеками OpenCV. В нем есть куча примеров и библиотек учебников, которые делают именно то, о чем вы просите. Это немного сложно установить, но я уже начал работать.

2

Как сказал bkritzer, OpenCV легко делает то, что вы хотите.

IplImage *image = 0; // OpenCV type 
CvCapture *capture = 0; // OpenCV type 

// Create capture 
capture = cvCaptureFromCAM (0); 
assert (capture, "Can't connect webcam"); 

// Capture images 
while (stilCapturing) 
{ 
    // Grab image 
    cvGrabFrame (capture); 
    // Retrieve image 
    image = cvRetrieveFrame (capture); 
    // You can configure refresh time 
    if (image) cvWaitKey (refreshTime); 
    // Process your image here 
    //... 
} 

Вы можете инкапсулировать эти OpenCV звонки в класс C++ и выделить конкретный поток для него - это будет ваш драйвер.

0

Ну, я думаю, что есть 2 ключевые понятия в этом вопросе, которые были неправильно поняты:

1) Как крючка вебкамеры захвата
2) ... любого приложения, которое использует веб-камеру. ..

Если я правильно понял, OpenCV полезен для написания собственного приложения, что означает, что он откроет камеру и обработает изображения. Так что это не удовлетворило бы пункт 2), что я понимаю как относящееся к другому приложение (а не ваше!), Открывающее камеру, и ваше приложение обрабатывает изображения.

Пункт 1), похоже, подтверждает это, потому что «крючок» - это слово, обычно означающее перехват какого-либо другого процесса, который не является частью вашего собственного приложения. Так что я сомневаюсь, ответили на этот вопрос или нет. Меня это тоже интересует.

Смежные вопросы