flutter - 如何在 Android 的 Flutter/Dart 中重新缩放相机图像?
问题描述
我正在使用模型的 tflite 格式从 Android 中的 tensorflow API 进行对象检测。该模型在验证集上给出了很好的结果,并在该数据集中的任何图像上给出了很好的框。但是,如果我从我的 android 相机单击 PC 屏幕上显示的相同数据集图像,则预测会更糟。我认为这可能是由于图像的重新缩放。所以我想在android Dart / Flutter中重新缩放来自相机的点击图像。相机图像是使用 Flutter 中的 image_picker 库拍摄的。
提前致谢。
解决方案
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),
),
));
推荐阅读
- linux - 在 for 循环中输出到不同文件期间使用 basename 函数
- asp.net - 如何在asp.net中的两侧之间移动数据
- java - 适用于 SNMP 和 PPTP 的最低 Android 版本
- react-native - 急速模块地图中不存在急速模块“nodemailer”
- python - Pandas 添加基于多个标准的评分列
- visual-studio - Xamarin Firebase 包在 Visual Studio 中不存在
- c++ - 使用移动语义正确返回 std::string
- python - 从数据框中只选择分类列?
- android - 在 Google 登录后从用户帐户发送电子邮件
- function - 点源函数调用不允许我调用我的函数,为什么会这样?