罗技摄像头与Beaglebone黑色和opencv。它工作几次然后我得到错误

时间:2014-05-27 15:31:41

标签: c++ image opencv beagleboneblack

我有一个Beaglebone Black(Ångström发行版),并连接了Logitech网络摄像头。它到目前为止一直很好,但有时却没有。我有一个程序,需要拍几张照片(我将它保存在Mat对象中)然后它会经历一些过程。每当它工作正常,我得到这个:

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
It works... processing...

正如我所提到的,尽管有Invalid argument的信息,但它仍然有效。问题是,在运行我的程序几次后,我得到了这个:

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
libv4l2: error setting pixformat: Input/output error
HIGHGUI ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Input/output error
libv4l1: error setting pixformat: Input/output error
libv4l2: error setting pixformat: Input/output error
libv4l1: error setting pixformat: Input/output error
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT

Error: webcam connection
Failed to capture an image

所以我收到了少量Invalid argument消息和那些错误。最后两条消息来自我的函数:

void takePicture()
{
  VideoCapture capture(0);
  capture.set(CV_CAP_PROP_FRAME_WIDTH,1920);
  capture.set(CV_CAP_PROP_FRAME_HEIGHT,1080);

  // This is done because of some focus problems I've been having
  for(int i=0; i < 20; i++)
  {
    capture >> image;
  }

  if (!capture.isOpened())
    cout << "Error: webcam connection" << endl;

  // This is done because of some focus problems I've been having
  for(int i=0; i < 20; i++)
  {
    capture >> image;
  }

  if(image.empty())
    cout << "Failed to capture an image" << endl;

  // Save image
  sprintf(filename2,"qr.jpg");
  imwrite(filename2, image);
}

在此之后,如果我再试一次,我会得到相同的,直到我重新启动Beaglebone。知道这里发生了什么吗?

0 个答案:

没有答案