Я использую OpenCV 2.2 с Visual Studio 2010 на 64-битном ПК с выигрышем 7
Я могу отображать изображения и воспроизводить AVI-файлы через OpenCV, как указано в книге «Изучение OpenCV», но не могу захватывать изображения с веб-камеры. Даже образцы, данные вместе с файлами OpenCV, не могут получить доступ к веб-камере.
Меня спрашивают «источник видео -> источник захвата», и есть два варианта: веб-камера HP Splitter и веб-камера HP. Если я выберу веб-камеру HP, окно закроется сразу же, без каких-либо ошибок. (Я думаю, что любое сообщение об ошибке слишком быстро, чтобы увидеть, прежде чем оно закрывается). Если я выберу разделитель веб-камеры HP, то новое окно, куда должны поступать изображения с веб-камеры (видео), будет заполнено равномерным серым цветом. Индикатор веб-камеры включен, но видео не видно. Моя веб-камера отлично работает со вспышкой (www.testmycam.com) и с DirectShow http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx
Я попытался получить сообщение об ошибке, используя это:
#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace cv;
using namespace std;
int main(int, char**)
{
VideoCapture cap("0"); // open the default camera
if(!cap.isOpened()) // check if we succeeded
{
cout << "Error opening camera!";
getchar();
return -1;
}
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
И сообщение об ошибке, которое я получил, было:
warning: Error opening file (C:\Users\vp\work\ocv\opencv\modules\highgui\src\cap
_ffmpeg.cpp:454)
Error opening camera!
Я не знаю, что это за "cap_ffmpeg.cpp", и я не знаю, если это какая-то проблема с любопытным "HP Media Smart".
Любая помощь будет принята с благодарностью.