首页 > 解决方案 > 如何在 Android 的 Flutter/Dart 中重新缩放相机图像?

问题描述

我正在使用模型的 tflite 格式从 Android 中的 tensorflow API 进行对象检测。该模型在验证集上给出了很好的结果,并在该数据集中的任何图像上给出了很好的框。但是,如果我从我的 android 相机单击 PC 屏幕上显示的相同数据集图像,则预测会更糟。我认为这可能是由于图像的重新缩放。所以我想在android Dart / Flutter中重新缩放来自相机的点击图像。相机图像是使用 Flutter 中的 image_picker 库拍摄的。

提前致谢。

标签: flutterdartandroid-cameraobject-detectionobject-detection-api

解决方案


Flutter CamearPreview,图像将根据设备屏幕比例自动缩放,因此图像会被拉伸。尝试使用变换小部件来适应相机而无需缩放/拉伸。

 CameraController _controller;    
 final size = MediaQuery.of(context).size; 
 final deviceRatio = size.width / size.height;

      Transform.scale(       
                      scale: _controller.value.aspectRatio / deviceRatio,
                      child: Center(
                        child: AspectRatio(
                          aspectRatio: _controller.value.aspectRatio,
                          child: CameraPreview(_controller),
                        ),
                      ));

推荐阅读