打开cv用我的USB相机给出一个空白窗口

时间:2014-03-27 09:36:17

标签: opencv

到目前为止,我正在使用我的acer水晶眼睛相机。它给了我确切的输出,但是当我开始使用我的罗技相机时,它只给了我一个黑色的窗口。

我的Logitech相机没有什么问题我用它来进行skyping,甚至我也尝试过在线镜像。

任何人都可以帮助我。这个问题有很多解决方案,但没有任何帮助。

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

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

  CvCapture *video = cvCaptureFromCAM(1);

     IplImage * img = NULL

     if(!cvGrabFrame(video)){
     printf("could not grab a frame\n");
     exit(0);
     }

     cvNamedWindow("original_image",0);

     while(1){
        img = cvQueryFrame(video);
        cvShowImage("original_image",img);
        if (cvWaitKey(0)==27){
        break;
        }

     cvReleaseImage(&img);

     cvReleaseCapture(&video);

     return (EXIT_SUCCESS);
     }

2 个答案:

答案 0 :(得分:4)

尝试使用if (cvWaitKey(30)==27)而不是if (cvWaitKey(0)==27)

highgui需要一些时间来更新框架。

答案 1 :(得分:1)

你确定你的USB相机有索引1吗?

CvCapture *video = cvCaptureFromCAM(1);

您可以尝试在设备管理器中禁用acer网络摄像头(如果您使用的是Windows),然后将以上行替换为:

CvCapture *video = cvCaptureFromCAM(CV_CAP_ANY);

这样,您确保只启用了1个摄像头(USB摄像头),并使用CV_CAP_ANY确保使用了一个摄像头。如果这仍然给你一个黑/空白屏幕,你知道其他的错误。