У меня есть стандартный com.google.android.gms.vision.Tracker example успешно работает на моем устройстве Android, и теперь мне нужно обработать изображение, чтобы найти радужную оболочку текущего лица, которое было уведомлено в методах события Tracker.Как получить текущий фрейм (как растровое изображение) для андеграунда-андеграунда в событии Tracker?
Итак, как мне получить растровое изображение, которое соответствует именно com.google.android.gms.vision.face.Face, полученному в событиях Tracker? Это также означает, что окончательное растровое изображение должно соответствовать разрешению веб-камеры, а не разрешению экрана.
Одним из плохих альтернативных решений является вызов takePicture каждые несколько мс на моем CameraSource и обработка этого изображения отдельно с помощью FaceDetector. Хотя это работает, я столкнулся с проблемой, что поток видео зависает во время takepicture, и я получаю много сообщений GC_FOR_ALLOC из-за одиночной потери памяти bmp frontetector.
То, что вы ищете, похоже, доступно в 'FaceDetector.SparseArray detect (Frame var1)'. Как только вы удержите объект Frame, у вас есть getBitmap(), который звучит очень многообещающе. К сожалению, этот класс является окончательным, что означает, что перехват Frame должен быть возможен с использованием отражения. –
Fabio
Я не уверен, что получаю то, что вы предлагаете. Правильно ли, что вы предполагаете, что у меня есть объект Frame? Потому что это проблема, с которой я сталкиваюсь. У меня есть обнаруженный объект лица без текущего кадра, и мне нужен кадр, соответствующий данному объекту Face. Например, ссылка i, указанная в моем вопросе, имеет метод onUpdate() внизу. Учитывая этот метод, как я могу получить текущий кадр, соответствующий аргументу Face метода? –
У нас нет доступа к кадру, если вы не обернете все методы в FaceDetector и метод обнаружения перехвата (отражение, по-видимому, не поможет, потому что оно окончательное). Сохраните фрейм и создайте геттер, а затем вызовите его в других местах в нужный момент. – Fabio