1

I am a beginner to use OpenCV right now. I am trying to stream video from a webcam (eye toy webcam) using OpenCV libraries. I know that the webcam is working fine because I used VLC to stream video and it was working fine. I have the following program:

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

    if (!cap.isOpened())  // if not success, exit program
    {
        cout << "Cannot open the video file" << 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"

    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 file" << endl;
             break;
        }

        imshow("MyVideo", frame); //show the frame in "MyVideo" window

        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;
}

When I run this I get the following output:

HIGHGUI ERROR: V4L/V4L2: VIDIOC_CROPCAP
Frame size: 640x480
select timeout

I am sure that the the error is thrown when the device is being attached using VideoCapture. I have searched a lot on the net but could not find explanation for this specific error.

Any help will be appreciated.

Kartik
  • 11
  • 1
  • 1
  • 4
  • Your code runs fine on my machine. Are you sure you have configured your openCV library properly. – Sohaib Oct 05 '13 at 18:56
  • http://stackoverflow.com/questions/16287488/runtime-opencv-highgui-error-highgui-error-v4l-v4l2-vidioc-s-crop-opencv-c – Sohaib Oct 05 '13 at 18:59
  • open a terminal type gstreamer-properties click enter click video try v4l1 and v4l2 click the bottom test buton for each 1 and do not open cheese Source: http://ubuntuforums.org/showthread.php?t=1455700 – Sohaib Oct 05 '13 at 19:06
  • Thanks a lot for your reply Sohaib. I ran gstreamer-properties and it seemed to do something with the webcam (I could again see the activity LED glowing), but there was no video stream. Is that supposed to happen. I am now inclining towards re configuring the OpenCV libraries. Will let you know how that works out. – Kartik Oct 06 '13 at 17:45
  • There was no video stream when you ran your program? – Sohaib Oct 06 '13 at 17:53

3 Answers3

2

I fixed this by installing: libv4l-dev then recompiling opencv. Check your cmake output to make sure that V4L is actually being linked in properly.

TheBat
  • 1,006
  • 7
  • 25
0

Please have a look at the following links:

1. Stackoverflow

2. Ubuntu Forums

The problem could be with your webcam.

Community
  • 1
  • 1
Sohaib
  • 4,556
  • 8
  • 40
  • 68
0

I haved the some error when trying to execute a code that does facedetection , i solved it by adding the files needed in my working folder (source folder). you can show us the entire code to find out what exactly you need .

The Beast
  • 1,629
  • 2
  • 29
  • 42