gpt4 book ai didi

camera - 如何在 flutter 中快速访问相机帧

转载 作者:IT老高 更新时间:2023-10-28 12:34:34 29 4
gpt4 key购买 nike

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

  1. CameraPreview 周围放置一个 RepaintBoundary 并创建一个 RenderRepaintBoundary,然后调用 boundary 来截取 CameraPreview .toImage()。此方法的问题在于 .toImage 方法似乎只捕获边界中绘制的小部件,而不是来自相机预览的数据。与此处描述的问题类似:https://github.com/flutter/flutter/issues/17687

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

有没有什么方法可以直接获取抓拍后的图片信息,做预处理和OCR之类的事情?

最佳答案

对于“近乎实时的 OCR”,您需要 CameraController#startImageStream

示例代码

import 'package:camera/camera.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: _MyHomePage()));

class _MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<_MyHomePage> {
dynamic _scanResults;
CameraController _camera;

bool _isDetecting = false;
CameraLensDirection _direction = CameraLensDirection.back;

@override
void initState() {
super.initState();
_initializeCamera();
}

Future<CameraDescription> _getCamera(CameraLensDirection dir) async {
return await availableCameras().then(
(List<CameraDescription> cameras) => cameras.firstWhere(
(CameraDescription camera) => camera.lensDirection == dir,
),
);
}

void _initializeCamera() async {
_camera = CameraController(
await _getCamera(_direction),
defaultTargetPlatform == TargetPlatform.iOS
? ResolutionPreset.low
: ResolutionPreset.medium,
);
await _camera.initialize();
_camera.startImageStream((CameraImage image) {
if (_isDetecting) return;
_isDetecting = true;
try {
// await doSomethingWith(image)
} catch (e) {
// await handleExepction(e)
} finally {
_isDetecting = false;
}
});
}
Widget build(BuildContext context) {
return null;
}
}

此功能已合并到 https://github.com/flutter/plugins但它没有很好的记录。

引用:

关于camera - 如何在 flutter 中快速访问相机帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085201/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com