gpt4 book ai didi

android - NV21 ByteArray 到 array2d

转载 作者:行者123 更新时间:2023-11-30 05:09:28 27 4
gpt4 key购买 nike

您好,我正在尝试在 android 中实现 dlib 面部标志检测。我知道,但我需要尽可能多的 fps。我面临两个问题,

  • 转化链
  • 调整大小

目前,我正在从 preview callback 中获取数据设置为 camera .它输出 byte[] NV21 图片。由于 dlib 不知道 image只知道array2d<dlib::rgb_pixel> ,我需要使数据符合它。我得到的实现使用位图,当我尝试使用那里的代码时,我有一个转换链 byte[]->bmp->array2d , 我想实现一个 byte[]->array2d转换。

现在,我需要通过控制输入图像的大小来利用 dlib 的性能。我的用例虽然不涉及小脸,所以我可以缩小输入图像以提高性能,但可以说我成功制作了 byte[]->array2d转换,如何调整图像大小?在位图中调整大小虽然有许多快速实现,但我需要减少位图参与以提取更多 fps。我可以选择调整 byte[] 的大小或转换后的 array2d ,但是又……怎么办?我猜想在转换后调整大小是件好事,因为它现在将在 native 而不是 java 上运行。

编辑

缩减应该取 byte[] (不是 dlib::arrray2d )形式作为输入,因为我需要对缩小的 byte[] 做一些事情.

所以我最后的问题是在jni上实现这个

byte[] resize(ByteArray img, Size targetSize);

dlib::array2d<rgb_pixel> convert(ByteArray img);

最佳答案

This这个问题对我帮助很大,让我理解了 nv21 结构。使用问题中的代码,我能够从 nv21 byte[] to array2d<rgb> 开发一个转换器.

现在还没有解决的是调整大小。

关于android - NV21 ByteArray 到 array2d<rgb_pixel>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com