Ich habe OpenCV 2.2 installiert und jetzt kann ich Webcam Capture nicht funktionieren. Es funktionierte in 2.1. OpenCV erkennt eine Webcam, meldet keine Fehler oder Warnungen, aber jedes Bild ist ein graues Bild. Ich probierte sogar ein Codebeispiel von OpenCV Wiki:OpenCV Webcam Capture-Problem
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;
Hat jemand in dieses Problem laufen? Ich verwende 64bit Win7 und Visual Studio 2010.
Was meinen Sie mit " ein graues Bild "? Solides Grau, ohne Struktur? Oder nur ein Graustufenbild? Sie rufen cvtColor() auf, um das Bild zu graustufen, und der Aufruf von imshow() zeigt die Graustufenversion an ... – jtdubs
Solides Grau, keine Graustufen. – Figaro
Manchmal ist dieses ib ein bisschen langsam. Fügen Sie vor Mat-Kante ein 'sleep (1)' oder 'cv :: waitKey (100)' hinzu und fügen Sie dasselbe innerhalb der for-Schleife hinzu. Das sollte funktionieren. Und vergiss nicht, zu prüfen, ob "frame" ein proper Bild ist. – nutario