user3411687
user3411687

Reputation: 21

opencv videocapture c++ not working 2 times

I tried the following code for capturing a video from my webcam:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap(0); // open the video camera no. 0

    if (!cap.isOpened())  // if not success, exit program
    {
        cout << "Cannot open the video cam" << endl;
        return -1;
    }


    double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video
    double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video

    cout << "Frame size : " << dWidth << " x " << dHeight << endl;

    namedWindow("MyVideo", CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
    namedWindow("Changed", CV_WINDOW_AUTOSIZE);

    while (1)
    {
        Mat frame;

        bool bSuccess = cap.read(frame); // read a new frame from video

        if (!bSuccess) //if not success, break loop
        {
            cout << "Cannot read a frame from video stream" << endl;
            break;
        }

        Mat imgH = frame + Scalar(75, 75, 75);
        imshow("MyVideo", frame); //show the frame in "MyVideo" window
        imshow("Changed", imgH);

        if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
        {
            cout << "esc key is pressed by user" << endl;
            break;
        }
    }

    return 0;

}

Now here's my problem: After debugging that program for the first time everything works as expected. But when debugging for a second time (after changing some lines in the code) it cannot read from the camera.

Does anyone have a hint for me how to solve that problem?

Thanks!

Upvotes: 1

Views: 585

Answers (1)

mlearner
mlearner

Reputation: 31

The code you posted seems to be working absolutely fine in my case, and the output is as intended. However please make sure that your webcam is switched on before you run the program, this is important. Since i have a YouCam client in my computer for the webcam, therefore it shows that i need to start youcam.

Since i dont have enough reputation to post an image, so please see the following link in order to view the output i got when webcam not already switched on.

https://i.sstatic.net/vGXGw.png

Hope this helps!!

Upvotes: 1

Related Questions