我无法在Android的Image Analysis用例中获得比960 * 720更高的分辨率

时间:2019-08-25 15:43:00

标签: android android-camerax

我正在研究用于扫描图像并对其进行处理的移动应用程序。我正在其中使用新的cameraxAPI和图像分析用例。 问题是我需要高分辨率的图像才能使模型正常工作,并且无法获得高于960 * 720的分辨率。

这是我用来构建分析器的代码:


        HandlerThread handlerThread = new HandlerThread("ImageAnalysis");
        handlerThread.start();

        ImageAnalysisConfig config = new ImageAnalysisConfig.Builder()
                .setCallbackHandler(new Handler(handlerThread.getLooper()))
                .setTargetResolution(new Size(2000,2000))
                .setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
                .build();

        mImageAnalysis = new ImageAnalysis(config);
        mImageAnalysis.setAnalyzer(new ImageAnalyzer());

NB:虽然没有2000 * 2000分辨率,但是根据文档,它应该带来最接近的更高分辨率。 更新:我正在使用API​​ 26进行HTC需求12+测试。

1 个答案:

答案 0 :(得分:0)

在我的CameraX示例中,我尝试将ImageAnalysisConfig设置为DisplayMetrics,将每个设备的动态分辨率设置为动态。

获取尺寸:

TextureView

// pull the metrics from our TextureView // textuewView size : height=match_parent, width=match_parent val metrics = DisplayMetrics().also { textureView.display.getRealMetrics(it) } // define the screen size val screenSize = Size(metrics.widthPixels, metrics.heightPixels) val screenAspectRatio = Rational(metrics.widthPixels, metrics.heightPixels) 中设置:

ImageAnalysisConfig

在我的示例中,我使用Firebase视觉API分析图像帧并使用OCR识别文本。

我还尝试了HTC要求的12+分辨率,即720x1440像素作为TargetResolution,因为我的情况很好。

这是我的应用代码:https://github.com/pranaypatel512/CameraXDemo

我希望动态分辨率可以为您提供帮助。