首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV:相机选择-奇怪的行为(2个相机)

OpenCV:相机选择-奇怪的行为(2个相机)
EN

Stack Overflow用户
提问于 2011-07-26 19:20:03
回答 2查看 1.6K关注 0票数 0

我的系统里只有几个摄像头。我这样初始化它们

代码语言:javascript
复制
cap1 = cvCreateCameraCapture(0); 
cap2 = cvCreateCameraCapture(1); // or -1

但在每次执行后,它们的行为是不同的:它们一起工作,或者两者都不工作,或者其中一个捕获良好,而另一个显示绿色屏幕。有时系统会显示用于选择设备的对话框。

以下是这部分源代码:

代码语言:javascript
复制
    CvCapture* cap2;
    CvCapture* cap1;
    printf("- Searching first cam : \n");

    for (i; i < LASTCAM; i++)
    {
        cap1 = cvCreateCameraCapture(i);
        if (!cap1)
        {
            printf("-- Camera %d is empty \n", i);
        }
        else
        {
            printf("-- Camera %d is OK \n", i);
            i++;
            break;
        }
    }
    printf("- Searching second cam : \n");
    for (; i < LASTCAM; i++)
    {
        cap2 = cvCreateCameraCapture(i);
        if (!cap2)
        {
            printf("-- Camera %d is empty \n", i);
        }
        else
        {
            printf("-- Camera %d is OK \n", i);
            break;
        }
    }        printf("Frame propeties:\n");
    double width = cvGetCaptureProperty(cap1, CV_CAP_PROP_FRAME_WIDTH);
    double height = cvGetCaptureProperty(cap1, CV_CAP_PROP_FRAME_HEIGHT);
    printf("First cam : %.0f x %.0f\n", width, height );

    double width2 = cvGetCaptureProperty(cap2, CV_CAP_PROP_FRAME_WIDTH);
    double height2 = cvGetCaptureProperty(cap2, CV_CAP_PROP_FRAME_HEIGHT);
    printf("Second cam : %.0f x %.0f\n\n", width2, height2 );

    IplImage* frame1=0;
    IplImage* frame2=0;

    cvNamedWindow("cam1", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("cam2", CV_WINDOW_AUTOSIZE);

    int counter=0;
    char filename[512];

    while(true){
             frame1 = cvQueryFrame( cap1 );
            frame2 = cvQueryFrame( cap2 );
            cvShowImage("cam1", frame1);
            cvShowImage("cam2", frame2);
    ...

它有什么问题?

1-9个凸轮是空的;10 -第一个凸轮,11-无穷大-返回“绿色屏幕”的凸轮。

事先谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2011-07-26 19:24:10

你看过stereo mode了吗?如果你想运行多个摄像头,它看起来是必需的。

票数 0
EN

Stack Overflow用户

发布于 2011-07-27 02:16:09

USB摄像头(至少通过windows上的directshow )可能有点困难。

以下是一些值得尝试的东西:

代码语言:javascript
复制
// A small delay between the captures 
cap1 = cvCreateCameraCapture(0); 
Sleep(100);
cap2 = cvCreateCameraCapture(1); 

代码语言:javascript
复制
// call all the setup functiosn for camera0 before capturing camera1     
cap1 = cvCreateCameraCapture(0); 
cvGetCaptureProperty(cap1,......)
cap2 = cvCreateCameraCapture(1); 
cvGetCaptureProperty(cap2,......)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6829221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档