EasyAr访问摄像头框架作为OpenCV垫子

EasyAR access Camera Frames as OpenCV Mat

本文关键字:OpenCV 垫子 框架 访问 摄像头 EasyAr      更新时间:2023-10-16

我使用easyar使用C &我正在尝试使用OpenCV,我正在尝试实现的目标是:获取从相机作为垫子获得的easyar框架,并使用OpenCV进行一些处理,然后将框架返回查看。

为什么这样做?简而言之,我只有在Easyar摄像头框架交叉访问之后(我认为它真的很快,我刚刚构建了示例Helloar)

在示例中,有一条线自动框架=流媒体 -> peek();

  1. 是否有一种将其转换为OpenCV中使用的方法?

  2. 是否有另一种方法可以从iOS&中访问C 的相机帧。Android(min api 16)?

感谢您的帮助,谢谢。

这是样本链接,我正在使用Helloarhttp://s3-us-west-2.amazonaws.com/easyar/sdk/easyar_sdk_2.0.0.0_basic_samples_android_2017-05-29.tar.xz

好吧,我设法为此找到了解决方案因此,简单的框架(earlyar中的类框架)包含图像的向量(可能是同一帧的图像不同),访问该向量的矢量返回一个名为数据(字节数组)的图像对象,并且可以用来初始化垫子在OpenCV

这是阐明任何搜索相同

的代码
unsigned char* imageBuffer = static_cast<unsigned char*>(frame->images().at(0)->data());
int height = frame->images()[0]->height(); // height of the image
int width = frame->images()[0]->width(); // width of image
// Obtained Frame is YUV21 by default, so convert that to RGBA
cv::Mat _yuv(height+height/2, width, CV_8UC1, imageBuffer);
cv::cvtColor(_yuv, _yuv, CV_YUV2RGBA_NV21);