首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视频AR无人机的随机帧为空,无法用OpenCV获得新的图像

视频AR无人机的随机帧为空,无法用OpenCV获得新的图像
EN

Stack Overflow用户
提问于 2014-05-16 18:36:25
回答 1查看 331关注 0票数 1

我正在做一个非常简单的程序,在我的电脑上打印飞行期间的AR.Drone视频。

它在几秒钟内运行良好,然后,随机地,程序中止,因为帧是空的。我决定测试它,但是现在,当一个帧为空时,下面的所有帧也都是空的。

以下是我的简单代码:

代码语言:javascript
复制
int main(void)
{
  cv::VideoCapture cap;
  cv::Mat image;

  if (!cap.open("tcp://192.168.1.1:5555"))
    {
      printf("AR.Drone ERROR CONNECT\n");
      return -1;
    }

  takeoff();

  while (42)
    {
      cap >> image;

      if (!image.empty())
        {
           cv::imshow("AR.Drone", image);
           std::cout << "OK" << std::endl;
        }
      else
        std::cout << "ERROR" << std::endl;
      cv::waitKey(1);
    }    
  return 0;
}

我的产出是:

代码语言:javascript
复制
>OK
>OK
>[...]
>OK
>ERR
>ERR
>ERR

但应该是:

代码语言:javascript
复制
>OK
>OK
>[...]
>OK
>ERR   // okay you got an error ? ...
>OK    // ... I give you a new frame :)
>OK

为什么它会永远失败?

如果我不保护它,我就会得到错误“OpenCV错误:坏标志”并中止。AR.Drone上的连接是TCP,所以我不能减慢waitKey.

知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 23:20:17

当我想用AR.Drone 2.0获得稳定的视频流时,我遇到了同样的问题--这需要一些时间,但我意识到缺少的帧是因为无人驾驶飞机在没有AT命令的情况下,2秒后就失去了连接。因此,如果您打开流而不做任何其他操作,这是好的(流将是好的),但在您发送任何AT命令,然后在2秒后,无人机将断开连接。因此,如果没有发送其他命令来保持连接正常,那么您所需要做的就是向无人机发送悬停命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23702419

复制
相关文章

相似问题

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