所以我正在使用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
,我不知道为什么
答案 0 :(得分:1)
getOriginalBitmapFrame()
仅返回位图。如果Frame是ByteArrayFrame,则返回null。
CameraDetector与ByteArrayFrames一起使用,因为相机的onPreviewFrame回调提供了一个字节数组。因此,您可以通过getByteArray()
获取图像数据。