Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Analisar imagens

O caso de uso de análise de imagem oferece ao seu app uma imagem acessível por CPU para realizar processamento de imagens, visão computacional ou interferência de aprendizagem de máquina. O aplicativo implementa um método Analyzer executada em cada quadro.

Implementação

As imagens são processadas por meio de um método que usa um parâmetro ImageProxy e um parâmetro de rotação ao método setAnalyzer().

O exemplo de código a seguir mostra como fazer isso e como vincular o caso de uso de análise de imagem e um caso de uso de visualização ao LifecycleOwner. Para ler sobre a criação de casos de usos de visualização, consulte Implementar uma visualização.

Quando esse método for retornado, a referência da imagem será fechada. Portanto, o método completará a análise ou fará uma cópia em vez de passar a referência da imagem para além do método de análise.

Kotlin

    val imageAnalysisConfig = ImageAnalysisConfig.Builder()
        .setTargetResolution(Size(1280, 720))
        .build()
    val imageAnalysis = ImageAnalysis(imageAnalysisConfig)

    imageAnalysis.setAnalyzer({ image: ImageProxy, rotationDegrees: Int ->
        // insert your code here.
    })

    CameraX.bindToLifecycle(this as LifecycleOwner, imageAnalysis, preview)
    

Java

    ImageAnalysisConfig config =
        new ImageAnalysisConfig.Builder()
            .setTargetResolution(new Size(1280, 720))
            .build();

    ImageAnalysis imageAnalysis = new ImageAnalysis(config);

    imageAnalysis.setAnalyzer(
        new ImageAnalysis.Analyzer() {
            @Override
            public void analyze(ImageProxy image, int rotationDegrees) {
                // insert your code here.
            }
    });

    CameraX.bindToLifecycle((LifecycleOwner) this, imageAnalysis, preview);
    

O CameraX produz imagens no formato YUV_422_888.

Outros recursos

Para saber mais sobre CameraX, consulte os recursos adicionais a seguir.

Codelabs

  • Introdução ao CameraX
  • Adicionar um fragmento CameraView ao seu app
  • Amostra de código

  • App de amostra oficial do CameraX