Ask Your Question

Revision history [back]

VideoCapture.read

Hello everybody,

I have a problem with my soft but I don't know where the bug is. The purpose is only open the camera on my laptop then print every frame. I can open the camera but when I read with VideoCapture.read method, the output image seems to be "empty" because when I use imshow, it print a black image on the screen..

I tried to delay after initialization but it wasn't better.

Have you ever had the same problem ? Otherwise, do you have an idea ?

For information, I'm using Windows 10

The code is very simple:

int main(int argc, char** argv) {

    Mat image;
    VideoCapture capture;

    capture.open(0);
    if(capture.isOpened())
    {
        capture.set(CAP_PROP_FPS, 30);
        printf("Capture is open. fps = %f\n", capture.get(CAP_PROP_FPS));
        namedWindow("Cam", WINDOW_AUTOSIZE);
        while(true){
            capture.read(image);
            imshow("Cam", image);
            if(image.empty()){
                cout << "empty!" << endl;
            }else{
                cout << "image OK -> " << mean(image) << endl;
            }
            if(waitKey(10) == 27) break;
        }
    }

    return 0;

}

Thank you for reading me and for your help :)

VideoCapture.read

Hello everybody,

I have a problem with my soft but I don't know where the bug is. The purpose is only open the camera on my laptop then print every frame. I can open the camera but when I read with VideoCapture.read method, the output image seems to be "empty" because when I use imshow, it print a black image on the screen..

I tried to delay after initialization but it wasn't better.

Have you ever had the same problem ? Otherwise, do you have an idea ?

For information, I'm using Windows 10

The code is very simple:

int main(int argc, char** argv)
{

{

        Mat image;
     VideoCapture capture;

     capture.open(0);
     if(capture.isOpened())
     {
         capture.set(CAP_PROP_FPS, 30);
         printf("Capture is open. fps = %f\n", capture.get(CAP_PROP_FPS));
         namedWindow("Cam", WINDOW_AUTOSIZE);
         while(true){
             capture.read(image);
             imshow("Cam", image);
             if(image.empty()){
                 cout << "empty!" << endl;
             }else{
                 cout << "image OK -> " << mean(image) << endl;
             }
             if(waitKey(10) == 27) break;
         }
     }

     return 0;
}

}

Thank you for reading me and for your help :)