Я установил OpenCV 2.2, и теперь я не могу заставить захват веб-камеры работать. Он работал нормально в 2.1. OpenCV обнаруживает веб-камеру, не сообщает о каких-либо ошибках или предупреждениях, но каждый кадр представляет собой серое изображение. Я даже попробовал образец кода из OpenCV wiki:Проблема с захватом веб-камеры OpenCV
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
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;
Кто-нибудь сталкивался с этой проблемой? Я использую 64-битные Win7 и Visual Studio 2010.
Что вы имеете в виду под " серое изображение "? Твердо серый, без структуры? Или просто изображение в оттенках серого? Вы вызываете cvtColor() в оттенки серого изображения, а вызов imshow() показывает версию в градациях серого ... – jtdubs
Твердый серый, а не оттенки серого. – Figaro
Иногда этот ib немного медленный. Добавьте 'sleep (1)' или 'cv :: waitKey (100)' перед краем Mat и добавьте то же самое внутри цикла for. Это должно сработать. И не забудьте chekc, если «frame» - это изображение prper. – nutario