【发布时间】:2015-09-04 09:44:10
【问题描述】:
我是 android 开发新手 - 我正在使用 Xamarin。
我正在尝试编写一个启动相机预览的应用程序,然后不断扫描传入帧中的文本(我正在使用来自 NuGet 的 Xamarin.Tesseract)。
换句话说,我不想让用户拍照然后进行 OCR 分析,而是希望他们只是将摄像机对准一些上面有文字的纸,我会不断地做OCR 分析,直到我检测到我正在搜索的特定文本)在这一点上,我会给用户一个大拇指。
这是我到目前为止所采用的方法:
-
初始化相机并设置预览回调
_Camera = Android.Hardware.Camera.Open(); _Camera.SetPreviewCallback(this); _Camera.StartPreview(); -
在回调中,获取表示当前帧的字节并将其作为 Xamarin.Tesseract 的输入图像字节传递
public void OnPreviewFrame(byte[] data, Android.Hardware.Camera 相机) { 等待 _TesseractApi.SetImage(data); /// 这个挂了 字符串文本 = _Api.Text; 返回文本; }
当前在将 byte[] 传递到 Tesseract API 时会挂起。我很确定这将是因为数组中的字节编码错误,或者我根本不了解相机 api!
谁能在写作方向上给我指点一下?
【问题讨论】:
-
看起来 Android 在回调中返回了相机的原始位图,我希望 Tesseract 可以使用特定的图像格式
-
您是如何在没有内存问题的情况下实现这一目标的?我目前也在做同样的事情,但现在卡住了
标签: xamarin xamarin.android android-camera ocr tesseract