小编Edu*_*ser的帖子

如何快速访问相机帧

我想在我的颤动应用程序的相机上实现近乎实时的OCR.为此,我想快速访问摄像机数据.据我所知,我有两个选择,并且两个都遇到了障碍:

  1. CameraPreview通过RepaintBoundary围绕它创建一个RenderRepaintBoundary并调用来截取屏幕截图boundary.toImage().这种方法的问题在于.toImage方法似乎只捕获边界中绘制的小部件而不是摄像机预览中的数据.Simmilar对这里描述的问题:https://github.com/flutter/flutter/issues/17687

  2. 使用controller.takePicture(filePath)Camera 0.2.1 捕获图像,类似于示例文档.这里的问题是在图像可用之前需要超长时间(2-3秒).我想这是因为文件在捕获时保存到光盘,然后需要再次从文件中读取.

有什么方法可以在捕获后直接访问图片信息,做一些事情,比如预处理和OCR?

camera flutter flutter-plugin

7
推荐指数
1
解决办法
3045
查看次数

如何在Flutter中对CameraPreview进行截图?

我需要快速访问我的新 flutter 应用程序的 CameraPreview 数据。如果我用它拍照,controller.takePicture(filePath)文件需要几秒钟的时间才能保存到磁盘,以便我可以访问它。我不需要高质量的图像,因此获得与手机屏幕显示分辨率相同的分辨率就可以了。我尝试过这种方法,但它只捕获我自己绘制的叠加层和小部件,而不捕获相机预览数据。这是使用此方法时问题的最小工作示例:

https://www.youtube.com/watch?v=CWBLjCwH5c0

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'dart:async';
import 'package:camera/camera.dart';
import 'dart:ui' as ui;

List<CameraDescription> cameras;

Future<Null> main() async {
  debugPaintSizeEnabled = false;
  debugPaintLayerBordersEnabled = false;
  try {
    cameras = await availableCameras();
  } on CameraException catch (e) {
    logError(e.code, e.description);
  }

  runApp(new MaterialApp(
    home: new MyApp(),
  ));
}

void logError(String code, String message) =>
    print('Error: $code\nError Message: $message');

class MyApp extends StatefulWidget {
  @override
  _State createState() => new _State();
} …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

7
推荐指数
1
解决办法
3059
查看次数

标签 统计

flutter ×2

camera ×1

flutter-layout ×1

flutter-plugin ×1