Wie ist es möglich, Android-Kamera-APIs in Nicht-Kamera-Anwendungen zu verwenden?

Ich möchte einige Android 4 APIs in einer Nicht-Kamera-Anwendung verwenden.

Die API enthält einige sehr schöne Gesichtserkennungsklassen, einschließlich der Camera.Face Klasse, die seit API 14 verfügbar ist. Ich möchte die gleichen Gesichtserkennungsklassen anwenden, um die Gesichtserkennung auf auf dem Gerät gespeicherten Bildern zu implementieren. Ich würde es vorziehen, dies zu verwenden, um Bilder zu verarbeiten, die auf dem Gerät selbst gespeichert sind (zB: soziale Tagging, Gesichtsbildmanipulation usw.)

  • Kotlin für Android. Toast
  • Wie füge ich Effekte in Android hinzu?
  • So setzen Sie die Benutzerauthentifizierung in eine mobile Anwendung
  • Setzen Sie den Hintergrund als Null
  • Android-Volley, wie der Unit-Test in Listener passiert ist
  • Android-In-App-Kauf - RESULT_ITEM_UNAVAILABLE
  • Ich verlange eine Anleitung, wie diese Wiederverwendungsaufgabe zu erledigen ist.

  • Ausblenden aus Popupmenu
  • Gibt es eine Möglichkeit, Abfrage-Parameter zu jeder Anfrage mit Retrofit 2 hinzufügen?
  • PCM-Audioamplitudenwerte?
  • Android genaue Alarm ist immer 3 Minuten aus
  • Wie man faltet, wenn / else-Subblöcke in Eclipse
  • Wie zu unterdrücken Push-Benachrichtigung aus angezeigt wird, wenn App läuft?
  • 3 Solutions collect form web for “Wie ist es möglich, Android-Kamera-APIs in Nicht-Kamera-Anwendungen zu verwenden?”

    Der FaceDetectionListener ist das, was du verwenden möchtest, um Gesichter zu erkennen, aber es hört nur die Kamera an. Das ist seine einzige native Funktion. Wenn Sie es wirklich auf Bilder auf dem Gerät des Benutzers verwenden möchten, würde ich vorschlagen, nur den Quellcode für die Kamera-API herunterzuladen und die gewünschte Methode an Ihre Bedürfnisse anzupassen.

    Sie finden die Quelle für alle Aktien-Android-Code hier: https://android.googlesource.com/

    Viel Glück!

    Wenn das, was Sie brauchen, um Gesichter in Bildern auf dem Gerät gespeichert zu erkennen, können Sie dies auf jeden Fall tun, ohne den Quellcode von Android zu hacken!

    Es gibt eine FaceDetector API, die unter dem Paket android.media seit API 1 verfügbar ist, die Bitmap als Eingabe akzeptiert ( formatiert im Format 565 ) und dir die Position der Gesichter in diesem Bild gibt.

    Hier sind die Schritte, die Sie benötigen:

    1 Laden Sie die Bitmap und konvertieren sie in das 565 format (vorausgesetzt, Sie haben facesPicture unter Ihren ausziehbaren Ressourcen)

     Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.facesPicture); Bitmap bitmap = originalBitmap .copy(Bitmap.Config.RGB_565, true); originalBitmap .recycle(); // allow the GC to collect this object 

    2- Definieren Sie das Face , um die erkannten Gesichterinformationen zu FaceDetector und den FaceDetector initialisieren

     int MAX_FACES = 20; // assuming that the image will have maximum 20 faces FaceDetector.Face[] faces = new FaceDetector.Face[MAX_FACES]; FaceDetector faceDetector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), MAX_FACES); 

    3- Suche nach den Gesichtern und Prozessresultaten

     int facesCount = faceDetector.findFaces(bitmap, faces); for(int i=0; i<facesCount; i++) { FaceDetector.Face face = faces[i]; float detectionConfidence = face.confidence(); // over 0.3 is OK PointF eyesMidPoint = new PointF(); face.getMidPoint(eyesMidPoint); float eyesDistance = face.eyesDistance(); float rotationX = face.pose(FaceDetector.Face.EULER_X); float rotationY = face.pose(FaceDetector.Face.EULER_Y); float rotationZ = face.pose(FaceDetector.Face.EULER_Z); // Do something with these values } 

    Sie können ein komplettes Projektbeispiel hier herunterladen , das in diesem Artikel erklärt wird. Gesichtserkennung mit Android-APIs

    Wenn Sie etwas Fortgeschrittener wollen, sollten Sie OpenCV verwenden

    Sind Sie sich der FaceDetector- Klasse bewusst? Es ist da seit API v1 und es funktioniert ganz gut. Wenn Sie etwas mehr Fortgeschrittene benötigen, können Sie immer einige dedizierte Frameworks verwenden, wie OpenCV (auch mit einigen Java-Bindungen ausgestattet, um in Android Apps einfach integriert zu werden)

    Sie können ein paar (kleine veraltete, aber immer noch nützliche) Artikel, die ich irgendwann mit einem Kollegen gemacht habe, überprüfen:

    1. Gesichtserkennung auf Andriod Teil-I
    2. Gesichtserkennung auf Andriod Teil-II
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.