c++ dlib img 中的 Android ImageProxy 等效项

Posted

技术标签:

【中文标题】c++ dlib img 中的 Android ImageProxy 等效项【英文标题】:Android ImageProxy equivalent in c++ dlib img 【发布时间】:2021-01-05 03:28:02 【问题描述】:

我有用于分析的 android cameraX 流帧,用于分析我使用 dlib 人脸检测器。所以我将帧传递给调用 dlib 人脸检测器的 JNI。但我无法知道从 java 到 c++ img 的数据类型 ImageProxy。

【问题讨论】:

【参考方案1】:

ImageProxy 类型有一个 getPlanes 方法,该方法返回一个 planes(RGB 或 YUV)数组,每个数组都提供对 ByteBuffer 和一些元数据(如像素和行步长)的访问。

您可以在 JNI 中从这些 ByteBuffers 中提取像素数据。我对 dlib 了解得不够多,无法告诉您它是单独接受平面还是需要事先合并平面。

【讨论】:

基于 dlib 示例dlib.net/face_detection_ex.cpp.html,dlib 接受参数“array2d 听起来可能对灰度像素值矩阵感到满意。要么从相机中取出 Y 平面,要么通过平均 R、G 和 B 平面来重建它。 或许您应该考虑使用更现成的方法,例如 MediaPipe 或 MLKit,直到您对 AI 和 Android 有了更深入的了解。

以上是关于c++ dlib img 中的 Android ImageProxy 等效项的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 调用 C++ DLib 导致错误分配异常

OpenCV,dlib 地标旋转

c++:错误:无法识别的命令行选项“-std=c++17”

Dlib android实时人脸识别问题

opencv Mat和Dlib变量类型转换

dlib问题的Android人脸识别