J'ai une simple configuration:

preview = new Preview.Builder().build();
preview.setSurfaceProvider(mPreviewView.createSurfaceProvider());
imageAnalysis = new ImageAnalysis.Builder().setTargetResolution(new Size(mPreviewView.getWidth(),mPreviewView.getHeight())).build();
imageAnalysis.setAnalyzer(executor, new PaperImageAnalyser());

Imageanalyzer:

@SuppressLint("UnsafeExperimentalUsageError")
@Override
public void analyze(@NonNull ImageProxy imageProxy) {
    Image mediaImage = imageProxy.getImage();

    if (mediaImage != null) {
        InputImage image = InputImage.fromMediaImage(mediaImage, imageProxy.getImageInfo().getRotationDegrees());
        Log.e("madieaimage",mediaImage.getHeight() + " and with" + mediaImage.getWidth()); //480 and with640
        Log.e("inputimage", image.getHeight() + " and width" + image.getWidth()); //480 and width640
        Log.e("imageproxy", image.getHeight() + " and width" + image.getWidth()); //480 and width640
        Log.e("cameraimp previewview ", CameraImp.mPreviewView.getBitmap().getHeight() + " and widht" +  CameraImp.mPreviewView.getBitmap().getWidth()); //2145 and widht1080
        image =  InputImage.fromBitmap(CameraImp.mPreviewView.getBitmap(),0); //analyzes much better cause resolution is set but its not good practise right?
    }
    
    //analyze with image...
}

La question est que la résolution de l'image que j'ai reçue de la méthode d'analyse est beaucoup plus petite que la résoltion d'AperviewView (widht / hauteur), de sorte que les images ne soient pas vraiment bonnes recongernes.

Si j'utilise le bitmap de l'aperçuview, je reçois la totalité de l'écran de l'écran, ce qui fonctionne mieux pour l'analyse, mais c'est une mauvaise pratique, je suppose?

Donc, ma question est la suivante: est-il possible de définir la résolution de l'imagant que j'ai essayé ci-dessus?

Ou quelle serait la meilleure façon de faire face à un tel problème?

3
Nummer Eins 3 mai 2021 à 00:04

1 réponse

Meilleure réponse

Si j'utilise le bitmap de l'aperçuview, je reçois la totalité de l'écran de l'écran, ce qui fonctionne mieux pour l'analyse, mais c'est une mauvaise pratique, je suppose?

Oui c'est une mauvaise pratique performance-sage car la copie tampon coûte très cher.

Donc, ma question est la suivante: est-il possible de définir la résolution de l'imagant que j'ai essayé ci-dessus?

Il est possible sur certains des appareils si vous par exemple. Définissez les deux résolution à 1080p. Cependant, il n'y a aucune garantie qu'il fonctionnera partout car il pourrait ne pas être pris en charge par le matériel de la caméra. De plus, en fonction de votre scénario d'utilisation, une analyse d'image haute résolution pourrait également être une mauvaise pratique, car l'analyse n'exige généralement pas une telle résolution.

Puis-je vous demander pourquoi avez-vous besoin de la résolution de la prévisualisation et de l'analyse de l'analyse pour être la même?

1
Xi 张熹 3 mai 2021 à 17:02