2015-09-02 2 views
2

Я пытаюсь нарисовать текст на лице, используя API обнаружения лица Android.
Прямо сейчас, я сделал этонарисовать текст на носовой базе с распознаванием лиц API

for(Landmark landmark : face.getLandmarks()){ 
     if(landmark.getType() == Landmark.NOSE_BASE){ 
      Bitmap moustache = BitmapFactory.decodeResource(resources, R.drawable.moustache); 
      canvas.drawText("=====", landmark.getPosition().x, landmark.getPosition().y, mIdPaint); 
     } 
    } 

, но оказывается, что текст ===== это сделать на верхней части головы, и я не знаю, почему.
Если кто-то нужно больше кода, просто дайте мне знать

+0

Вы можете оставить результат? – Blackbelt

+0

@Blackbelt http://imgur.com/nuUVDPI –

+0

где вы рисуете другие ориентиры? – Blackbelt

ответ

1

Если вы рисуете графики над живой камеры предварительного просмотра, вам нужно сделать несколько вещей во внимание:

  1. вращение устройства
  2. в масштаб просмотра относительно размера изображения предварительного просмотра
  3. ли вы с помощью передней панели камеры (которая будет отражать изображение)

Пример кода для лица трекера демо имеет вспомогательные методы (translateX, translateY, Scalex, ScaleY), чтобы помочь с этим:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/FaceTracker/app/src/main/java/com/google/android/gms/samples/vision/face/facetracker/FaceGraphic.java#L99

https://github.com/googlesamples/android-vision/blob/master/visionSamples/FaceTracker/app/src/main/java/com/google/android/gms/samples/vision/face/facetracker/ui/camera/GraphicOverlay.java#L100

Смежные вопросы