使用人脸检测在鼻子底部绘制文本 API

draw a text on nose base with face detection 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);
        }
    }

结果=====的文字是画在头顶上的,不知道为什么。
如果有人需要更多代码,请告诉我

如果您在实时相机预览上绘制图形,则需要考虑以下几点:

  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