2

我正在尝试使用 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);
        }
    }

但事实证明文字=====是在头顶上绘制的,我不知道为什么。
如果有人需要更多代码,请告诉我

4

1 回答 1

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

于 2015-09-02T14:52:15.533 回答