我正在研究用于扫描图像并对其进行处理的移动应用程序。我正在其中使用新的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+测试。
答案 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
我希望动态分辨率可以为您提供帮助。