使用 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
我想使用 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