使用OpenCV 2.4.1.显示视频

Displaying a video using OpenCV 2.4.1

本文关键字:显示 视频 OpenCV 使用      更新时间:2023-10-16

嗨,我尝试使用以下基本命令使用网络摄像头显示视频在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)

这行有什么错误???

我不知道你想用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;
}