2016-07-21 4 views
1

私はaffdex sdkでいくつかの顔のランドマークコードを書いていますが、画像リスナーから受信したフレームを渡してビットマップから特定のピクセルを取得しようとしています。このビットマップを取得しようとすると、私はnullに戻ります。なぜこれが本当に役に立つのか理解する助けとなります!さらに、私はCameraDetectorを使用しています。affdex frame.getOriginalBitmapFrame()はカメラのフィードを解析するときにnullを返します

@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ある、と私はフレームがBitmapFrameある場合

答えて

1

getOriginalBitmapFrame()だけビットマップを返す理由を知りません。 FrameがByteArrayFrameの場合、nullを返します。

CameraDetectorは、カメラのonPreviewFrameコールバックがバイト配列を提供するため、ByteArrayFramesと連動します。したがって、getByteArray()で画像データを取得できます。

関連する問題