Как использовать ImageAnalysis.Analyzer в Android Studio ⇐ JAVA
-
Гость
Как использовать ImageAnalysis.Analyzer в Android Studio
Для выполнения задания для моего класса мне нужно реализовать приложение, которое сканирует QR-коды с помощью Android Studio. Я бы хотел, чтобы пользователь сканировал QR-код с помощью своей камеры (а не фотографировал QR-код, а затем сканировал его). Я использую библиотеки ML Kit и CameraX.
Я следую этим инструкциям по комплекту ML, но застрял на втором шаге. Точнее, я не умею анализировать каждый кадр с камеры. Я создал InputImage, но не знаю, как использовать интерфейс ImageAnalyzer.Analyzer для анализа каждого изображения, как предложено в инструкциях.
Ниже приводится краткое описание ImageAnaанализ.Analyzer из документации:
Интерфейс для анализа изображений.
Реализуйте анализатор и передайте его в setAnalyzer для получения изображений и выполнить пользовательскую обработку, реализовав функцию анализа.
Что это значит??
Кроме того, приведен пример кода, использующего ImageAnaанализ.Analyzer:
Частный класс YourAnalyzer реализует ImageAnaанализ.Analyzer { @Override общественный недействительный анализ (ImageProxy imageProxy) { Изображение mediaImage = imageProxy.getImage(); если (mediaImage != ноль) { Изображение входного изображения = InputImage.fromMediaImage(mediaImage, imageProxy.getImageInfo().getRotationDegrees()); // Передаем изображение в API ML Kit Vision // ... } } Что я сделал на данный момент:
Примечание. Я создал класс Activty для обработки всего сканирования QR-кода. Этот класс реализует ImageAnaанализ.Analyzer.
[*]Я запрашиваю у пользователя соответствующие разрешения для доступа к камере [*]Я инициализирую камеру, т. е. устанавливаю для PreviewView значение cameraController в методе startCamera [*]Внутри моей реализации analyze() я получаю объект InputImage, который будет анализироваться. После этого я застрял.
Куда мне идти дальше? Я считаю, что документация очень расплывчата, поэтому я не понимаю, как реализовать analyze() и где на самом деле вызывать setAnalyzer(). Что такое объект Analyzer, упомянутый в документации? Я прочитал это, но это все равно не имеет смысла.
Я предполагаю, что мне следует вызвать setAnalyzer() непосредственно перед инициализацией камеры, но я не уверен. Мне хотелось бы внести некоторые разъяснения и указать правильное направление.
Для выполнения задания для моего класса мне нужно реализовать приложение, которое сканирует QR-коды с помощью Android Studio. Я бы хотел, чтобы пользователь сканировал QR-код с помощью своей камеры (а не фотографировал QR-код, а затем сканировал его). Я использую библиотеки ML Kit и CameraX.
Я следую этим инструкциям по комплекту ML, но застрял на втором шаге. Точнее, я не умею анализировать каждый кадр с камеры. Я создал InputImage, но не знаю, как использовать интерфейс ImageAnalyzer.Analyzer для анализа каждого изображения, как предложено в инструкциях.
Ниже приводится краткое описание ImageAnaанализ.Analyzer из документации:
Интерфейс для анализа изображений.
Реализуйте анализатор и передайте его в setAnalyzer для получения изображений и выполнить пользовательскую обработку, реализовав функцию анализа.
Что это значит??
Кроме того, приведен пример кода, использующего ImageAnaанализ.Analyzer:
Частный класс YourAnalyzer реализует ImageAnaанализ.Analyzer { @Override общественный недействительный анализ (ImageProxy imageProxy) { Изображение mediaImage = imageProxy.getImage(); если (mediaImage != ноль) { Изображение входного изображения = InputImage.fromMediaImage(mediaImage, imageProxy.getImageInfo().getRotationDegrees()); // Передаем изображение в API ML Kit Vision // ... } } Что я сделал на данный момент:
Примечание. Я создал класс Activty для обработки всего сканирования QR-кода. Этот класс реализует ImageAnaанализ.Analyzer.
[*]Я запрашиваю у пользователя соответствующие разрешения для доступа к камере [*]Я инициализирую камеру, т. е. устанавливаю для PreviewView значение cameraController в методе startCamera [*]Внутри моей реализации analyze() я получаю объект InputImage, который будет анализироваться. После этого я застрял.
Куда мне идти дальше? Я считаю, что документация очень расплывчата, поэтому я не понимаю, как реализовать analyze() и где на самом деле вызывать setAnalyzer(). Что такое объект Analyzer, упомянутый в документации? Я прочитал это, но это все равно не имеет смысла.
Я предполагаю, что мне следует вызвать setAnalyzer() непосредственно перед инициализацией камеры, но я не уверен. Мне хотелось бы внести некоторые разъяснения и указать правильное направление.
Мобильная версия