Подтвердить что ты не робот

Android FaceDetector.Face углы Эйлера равны 0

Я пытаюсь получить угол Эйлера лица, обнаруженный FaceDetector.

Вот что я использую для вывода в Logcat:

Log.v("debug", " X: " + face.pose(Face.EULER_X) + " Y: " + face.pose(Face.EULER_Y) + " Z: " + face.pose(Face.EULER_Z) );

Но он всегда возвращает 0.0 для всех трех, независимо от того, на каком углу находится лицо. Любые идеи, почему?

4b9b3361

Ответ 1

Да, FaceDetector из API 1 никогда не возвращает угол позы. Вы можете проверить исходный код .

Новый FaceDetectionListener из API 14 вернет угол позы, но он доступен только на ограниченном количестве устройств прямо сейчас. Не все устройства, использующие API 14, могут использовать его. Вы должны вызвать getMaxNumDetectedFaces(), чтобы узнать, поддерживает ли ваше устройство этот API.

Вы можете поочередно использовать OpenCV. Пара вариантов для этого http://code.opencv.org/projects/opencv/wiki/OpenCV4Android и http://code.google.com/p/javacv/. По моему опыту они не стоят хлопот, если вам действительно не нужен угол позы.