affdex frame.getOriginalBitmapFrame() возвращает null при анализе камеры

Итак, я пишу некоторый код ориентировки лица с помощью 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, и я не знаю, почему


person Rohan Yadav    schedule 21.07.2016    source источник


Ответы (1)


getOriginalBitmapFrame() возвращает Bitmap только в том случае, если Frame является BitmapFrame. Если Frame является ByteArrayFrame, он возвращает null.

CameraDetector работает с ByteArrayFrames, поскольку обратный вызов камеры onPreviewFrame предоставляет массив байтов. Таким образом, вы можете получить данные изображения через getByteArray().

person Andy Dennie    schedule 22.07.2016