使用 opencv 或 opencv 从 Ar Drone 2.0 获取图像(流数据)

Getting an Image (Stream Data) from the ArDrone 2.0, using opencv2 or opencv

我想使用 opencv2 或 opencv 从 ArDrone 获取图像(流数据)。

#include <iostream>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>

using namespace std;
using namespace cv;

int main()
{
    cv::VideoCapture cap;
    cv::Mat image;

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

    while (1)
    {
        cap >> image;

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

    return 0;
}

AR.Drone 使用许多库和应用程序无法处理的 non-standard 视频格式。为获得最佳效果,您需要解码无人机发送的视频,该视频是 H264 视频与无人机的自定义 PaVE headers 相结合。有关详细信息,请参阅其他帖子,例如 Ardrone Video Stream decoding in Android

我刚刚发现了混合 AR Drone 2 和 OpenCV 的出色解决方案。 看看它可能会有所帮助: https://github.com/puku0x/cvdrone