affdex frame.getOriginalBitmapFrame()在分析相机Feed

时间:2016-07-21 19:41:41

标签: android affdex-sdk

所以我正在使用affdex sdk编写一些面部标记代码,我正试图通过我从图像监听器收到的帧来获取其位图中的某些像素,当我发送时我回到了null尝试获取此位图。任何帮助弄清楚为什么会这样的情况真的会有所帮助!另外,我正在使用CameraDetector。

@Override
public void onImageResults(List<Face> faces, Frame frame, float v) {
    if (faces == null|| frame == null)
        return; //frame was not processed

    if (faces.size() == 0)
        overlayView.adjustFaces(null, null);
    //final Bitmap b = Bitmap.createBitmap(cameraView.getMeasuredWidth(), cameraView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

    overlayView.adjustFaces(faces, frame);

    final Bitmap frameF = frame.getOriginalBitmapFrame();
    final List<Face> facesF = faces;

    extractorThread.addToRunnableQueue(new Runnable() {
        @Override
        public void run() {
            float data = regionVal(facesF, frameF);
            System.out.println(data);
            extractorThread.updateBuffer(data);
            extractorThread.computeHR();
        }
    });
}

我得到的frameF位图始终是null,我不知道为什么

1 个答案:

答案 0 :(得分:1)

如果Frame是BitmapFrame,

getOriginalBitmapFrame()仅返回位图。如果Frame是ByteArrayFrame,则返回null。

CameraDetector与ByteArrayFrames一起使用,因为相机的onPreviewFrame回调提供了一个字节数组。因此,您可以通过getByteArray()获取图像数据。