Я пытаюсь заставить распознавание лиц работать в режиме предварительного просмотра в реальном времени, используя аппаратный Camera.faceDetectionListener, новый в ICS. Я пробовал с Nexus 4, Nexus 7 и планшетом Samsung Galaxy 10.1, и ВСЕ эти устройства возвращают 0 для передней камеры, когда я вызываю getMaxNumDetectedFaces. Однако все устройства поддерживают разблокировку лица, поэтому я не понимаю, почему ни одно из них не поддерживает распознавание лиц. Кто-нибудь получил это работает с одним из этих устройств?
Обнаружение лица камерой getMaxNumDetectedFaces возвращает 0 для Nexus 4, Nexus 7, Samsung Galaxy 2
Ответы (1)
Поддерживается, начиная с API 14 (ICS), getMaxNumDetectedFaces возвращает максимальную длину массива, содержащего результаты обнаружения лица камерой после его запуска с помощью startFaceDetection. Если возвращенное значение равно 0, это означает, что устройство не поддерживает этот метод обнаружения лиц. В этом случае распознавание лиц должно быть реализовано каким-то другим способом (например, с помощью FaceDetector доступно начиная с API 1).
Я проверил значение, возвращаемое getMaxNumDetectedFaces для передней и задней камер на нескольких устройствах:
- Nexus 4: возвращает 2 для обеих камер.
- Nexus 5: возвращает очень большое число (5308421) для обеих камер.
- Nexus 7: возвращает 0 для обеих камер.
- Nexus 10: возвращает 16 для обеих камер
- Sony Xperia Z1: возвращает 5 для обеих камер.
Подводя итог, можно сказать, что OEM-поддержка распознавания лиц камерой работает на совесть.
person
John Doedoe
schedule
05.06.2014