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 を返します。

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

于 2016-07-22T15:57:40.203 に答える