1

因此,我正在使用 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,我不知道为什么

4

1 回答 1

1

getOriginalBitmapFrame()仅当 Frame 是 BitmapFrame 时才返回 Bitmap。如果 Frame 是 ByteArrayFrame,则返回 null。

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

于 2016-07-22T15:57:40.203 回答