开发者

access webcam fail

开发者 https://www.devze.com 2023-02-19 20:35 出处:网络
i am still new on opencv, i make simple program based on sample to access webcam but always fails. i change variable id to 0,1,2...100 but i got same result. this is my program:

i am still new on opencv, i make simple program based on sample to access webcam but always fails. i change variable id to 0,1,2...100 but i got same result. this is my program:

#include "cv.h"
#include "highgui.h"

#include "stdio.h"
#include "iostream"

// A Simple Camera Capture Framework
int main()
{
IplImage* img = NULL;
CvCapture* cap = NULL;
int id=0;

cap = cvCaptureFromCAM(id);
cvNamedWindow("Images",CV_WINDOW_AUTOSIZE);

if ( !cap )
printf("ERROR\n\n");
else
for(;;)
{
img = cvQueryFrame(cap);
cvShowImage("Imagenes", img);
cvWaitKey(10);
}

cvReleaseImage(&img);
cvReleaseC开发者_开发知识库apture(&cap);

return 0;
}

thank you for your help


Do yourself a favor and check the return of the functions. Maybe some of them are failing and you'll never know why.

Another tip: try with id = -1.

#include <iostream>
#include <sstream>
#include <string>

#include <cv.h>
#include <highgui.h>

int main()
{
    CvCapture* capture = NULL;
    if ((capture = cvCaptureFromCAM(-1)) == NULL)
    {
        fprintf(stderr, "ERROR: capture is NULL \n");
        return -1;
    }

    cvNamedWindow("mywindow", CV_WINDOW_AUTOSIZE);

    cvQueryFrame(capture); // Sometimes needed to get correct data

    IplImage* frame  = NULL;
    while (1)
    {
        if ((frame = cvQueryFrame(capture)) == NULL)
        {
            fprintf( stderr, "ERROR: cvQueryFrame failed\n");
            break;
        }

        if (frame == NULL)
        {
            usleep(100000);
            continue;
        }

        cvShowImage("mywindow", frame); // Do not release the frame!

        int key = cvWaitKey(10);
        if (key  == 27)  // ESC was pressed
            break;
    }

    cvReleaseCapture(&capture);
    cvDestroyWindow("mywindow");

    return 0;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消