Я использую Google Vision для обнаружения лиц на Android. В настоящее время мой код:Как правильно перевести обнаруженные координаты лица с передней камеры
public void onPreviewFrame(byte[] data, Camera camera) {
// creating Google Vision frame from a camera frame for face recognition
com.google.android.gms.vision.Frame frame = new com.google.android.gms.vision.Frame.Builder()
.setImageData(ByteBuffer.wrap(data), previewWidth,
previewHeight, ImageFormat.NV21)
.setId(frameId++)
.setRotation(com.google.android.gms.vision.Frame.ROTATION_270)
.setTimestampMillis(lastTimestamp).build();
// recognize the face in the frame
SparseArray<Face> faces = detector.detect(frame);
// wrong coordinates
float x = faces.valueAt(0).getPosition().x;
float y = faces.valueAt(0).getPosition().y;
}
Проблема заключается в том, что x
и y
не являются правильными и даже отрицательные иногда. Я знаю, что для того, чтобы получить правильные координаты, нужно как-то повернуть, но как именно?
http://stackoverflow.com/questions/39281320/how-to-detect-the-corners-center-xy-coordinates-using-googles- face-api Это имеет смысл. – bvk256