TesseractApi Xamarin 无限冻结
TesseractApi Xamarin Infinite Freeze
我正在使用 Tessaract 的 Xamarin Forms Nuget(https://github.com/halkar/Tesseract.Xamarin),并尝试扫描 Android 设备拍摄的照片。这是我正在使用的代码:
private async System.Threading.Tasks.Task<string> OCRAsync(byte[] bytes)
{
TesseractApi api;
api = new TesseractApi(this, AssetsDeployment.OncePerInitialization);
await api.Init("bul");
await api.SetImage(bytes);
var detectedText = api.Results(PageIteratorLevel.Block);
result = string.Empty;
if (detectedText != null)
{
foreach (var annotation in detectedText)
{
result = FindWordInDictionary(annotation.Text);
}
}
return result;
}
该方法是从这样的同步方法调用的:
var task = OCRAsync(data);
result = task.Result;
每当编译器到达 "await api.Init("bul");"该应用程序无限期冻结。你知道什么可能导致这个问题吗?谢谢。
问题是我需要在 .init 函数中给出一个文件位置:
await api.Init(pathToDataFile, "bul");
我正在使用 Tessaract 的 Xamarin Forms Nuget(https://github.com/halkar/Tesseract.Xamarin),并尝试扫描 Android 设备拍摄的照片。这是我正在使用的代码:
private async System.Threading.Tasks.Task<string> OCRAsync(byte[] bytes)
{
TesseractApi api;
api = new TesseractApi(this, AssetsDeployment.OncePerInitialization);
await api.Init("bul");
await api.SetImage(bytes);
var detectedText = api.Results(PageIteratorLevel.Block);
result = string.Empty;
if (detectedText != null)
{
foreach (var annotation in detectedText)
{
result = FindWordInDictionary(annotation.Text);
}
}
return result;
}
该方法是从这样的同步方法调用的:
var task = OCRAsync(data);
result = task.Result;
每当编译器到达 "await api.Init("bul");"该应用程序无限期冻结。你知道什么可能导致这个问题吗?谢谢。
问题是我需要在 .init 函数中给出一个文件位置:
await api.Init(pathToDataFile, "bul");