1

我正在使用 MagicLeap Headset 和 MLCamera API 来捕获输出为 YUV_420_888 的 rawvideocapture,我假设它是 YUV420P。API 分别返回 yBuffer、uBuffer 和 vBuffer。我在没有位图的情况下在 c# 上组合这些通道时遇到了麻烦,因为我使用的是统一我使用的是 Mono。我正在尝试做的是组合这些通道并将其发送到我的远程 python 服务器以处理我捕获的图像。要处理图像,它需要是完整的图像。我尝试只使用 Y 平面并创建灰度图像,但服务器无法处理它,所以我需要在客户端上组合所有 3 个通道,然后将其压缩为更可取的 jpeg,因为尺寸急剧减小并且我正在处理尽管相机输出为 1920x1080,但图像尺寸为 420x420。我在过去一周半尝试不同的方法,但找不到像样的东西。有几种方法特别适用于 Android,但如果我不需要,我不想将其转换为 NV21。我也看到了一个带有 ARCore 的,但我也不能使用那个,因为我使用的是 MagicLeap。

PS:延迟和处理时间非常重要,所以如果有一种方法可以直接将 YCbCr 转换为 jpeg 而无需将其转换为 RGB,我认为它会更好地帮助我的情况,但我不知道这是否可能。总的来说,我认为我缺乏一些阻碍我走得更远的基本知识。

任何帮助是极大的赞赏!

4

1 回答 1

1

我过去尝试过类似的事情,在 YUV420 的东西上打了几个星期,但无法解决。最后,我为 Unity 购买了这个库OpenCV。它有专门为 MagicLeap 定制的部件,包括从相机读取帧以降低分辨率以加快速度。我不确定它是否可以实时管理。也许在降低的分辨率下,是的。

于 2021-06-12T12:27:44.250 回答