2017-05-24 1 views
0

Ich entwickle eine App mit Google-Gesichtserkennungs-API, ich habe das Beispielprojekt verwendet, was ich brauche, möchte ich das Overlay-Bild (Maske) hinzufügen basierend auf Änderungen der Gesichtsausrichtung, zB: wenn das Gesicht nach rechts oder links gedreht wird, möchte ich das überlagerte Bild aktualisieren, indem ich die Koordinatenwerte nehme. Wie geht das?. Kann jemand helfen. Vielen Dank im Voraus.So erkennen Sie Gesichtsausrichtung Änderungen in Live-Vorschau, Gesichtserkennung Android

Antwort

0

ich dieses Problem gelöst, indem Euler Z-Wert der erkannten face.I ist Entsendung meinen Code:

ich das Rechteck und den Maske Bitmap auf erkannte Gesicht, wenn Orientierungsänderungen gedreht habe;

RectF dest = new RectF((int) left, (int) top, (int) right, (int) bottom); 

     Matrix m = new Matrix(); 

     m.setRotate(face.getEulerZ(),dest.centerX(),dest.centerY()); 
     m.mapRect(dest); 

Gedrehte Bitmap.

public Bitmap rotate_bitmap(Bitmap bmp,float degree){ 
    Matrix matrix = new Matrix(); 

    matrix.postRotate(degree); 

    return Bitmap.createBitmap(bmp , 0, 0, bmp .getWidth(), bmp .getHeight(), matrix, true); 
} 

Gezeichnete Maske auf Leinwand zeichnen.

  canvas.drawBitmap(rotate_bitmap(faceTrackerActivity.getBitmapItem("face"),face.getEulerZ()), null, dest, null); 

Setzen Sie auch den SCHNELLMODUS auf den Detektor.

FaceDetector detector = new FaceDetector.Builder(context) 
      .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS) 


      .setMode(FaceDetector.FAST_MODE) 
      .build();` 
Verwandte Themen