获取检测到的人脸位图

Posted

技术标签:

【中文标题】获取检测到的人脸位图【英文标题】:Get detected face bitmap 【发布时间】:2016-05-05 13:31:17 【问题描述】:

我正在试验以下 Google 示例:https://github.com/googlesamples/android-vision/tree/master/visionSamples/FaceTracker

该示例使用 Play Service 新的人脸检测 API,并在摄像头视频流中检测到的人脸上绘制一个正方形。

我试图弄清楚是否可以保存检测到人脸的帧,根据代码,人脸检测器的处理器似乎是执行“保存”的好地方,但它只提供检测元数据而不是实际帧。

我们将不胜感激。

【问题讨论】:

【参考方案1】:

您可以通过以下方式获取:

    Bitmap source = ((BitmapDrawable) yourImageView.getDrawable()).getBitmap();
    // detect faces
    Bitmap faceBitmap = createBitmap(source, 
                                     face.getPosition().x, 
                                     face.getPosition().y, 
                                     face.getWidth(), 
                                     face.getHeight());

【讨论】:

【参考方案2】:

是的,这是可能的。我回答了有关从 CameraSource here 获取帧的问题。最棘手的部分是访问 CameraSource 帧并将 Frame 数据类型转换为位图。然后将帧作为位图,您可以将它们传递给 FaceGraphic 类,并在 draw() 方法中保存这些位图,因为仅在检测到人脸时才会调用 draw()。

【讨论】:

以上是关于获取检测到的人脸位图的主要内容,如果未能解决你的问题,请参考以下文章

android mobile vision api自定义检测器未检测到人脸

如何在捕获的照片 android 上进行人脸检测?

将相机图像作为位图 Android 示例

将位图(RGB_565)转换为灰度(8位)Android

位图碰撞检测(AS3)

检测“位图”中的形状