使用OpenCV 2.4.1显示视频

时间:2012-07-17 17:54:08

标签: c++ opencv

您好我尝试使用以下基本命令使用网络摄像头显示视频 在opencv 2.4.1中: -

int main()

{ cv::Mat san;

  cv::VideoCapture san_cap(0);

  while(1)
  {
    san_cap.read(san);

    cv::imshow("gp",san);

    if(cv::waitKey(0) >=0)

      break;
  }

   return 1;

  }

在编译期间我没有收到任何错误,但在运行我的解决方案时,我的输出视频卡在固定的框架上,在我的控制台中我遇到了以下错误: -

VIDIOC_QUERYMENU:参数无效

逐行删除我的代码我发现我在这个特定的行中出错了

if(cv::waitKey(0) >= 0)

这行中的错误是什么???

1 个答案:

答案 0 :(得分:1)

我不知道您要对cv::waitKey()做什么,但我认为如果您将其更改为此示例应该可以使用。如上所述,waitKey应设置为10,你应该始终检查videoCapture是否实际打开。如果无法打开,则硬件/驱动程序/ os / OpenCV安装会出现问题。

int main() {

    int waitKeyValue = 10;
    cv::Mat san;

    cv::VideoCapture san_cap(0);
    if (san_cap.isOpened()) {
        while (1) {
            san_cap.read(san);
            cv::imshow("gp", san);
            int key = cv::waitKey(waitKeyValue);
            if(key!=-1)cout<<key<<endl;
            if (key == 27 || key == 1048586) {
                if (waitKeyValue == 10)waitKeyValue = 0;
                else waitKeyValue = 10;
            }
        }
    } else cout << "videoCapture not working" << endl;
    return 1;

}