【问题标题】:Where we put language files of tesseract ocr engine in an android app?我们将 tesseract ocr 引擎的语言文件放在哪里?
【发布时间】:2012-02-15 17:32:49
【问题描述】:
我正在编写一个使用 OCR 的 android 应用程序。我正在使用 tesseract ocr,我想问一下我应该将语言文件放在我的项目中的哪个位置,以便当我在手机(Samsung Galaxy S)中安装我的应用程序时,文件位于某个地方供应用程序使用它们ocr 过程。我认为它应该在这样的地方:/mnt/sdcard/tesseract/tessdata,但是如何在不将它们自己放入我的设备并让安装执行此操作的情况下完成此操作。
【问题讨论】:
标签:
android
ocr
tesseract
【解决方案1】:
您必须将文件与您的项目一起包含在 assets 文件夹中。
请参阅AssetManager,了解如何从您的活动中访问您的文件。另外我建议您不要将它们复制到 SDCard。不幸的是,由于您的文件必须包含在您的项目中,因此将出现在您的 apk 文件中,您最终将获得更大的应用程序大小。但也不幸的是,我不相信有一种方法可以在运行时从您的 apk 中删除文件,因此即使您将它们复制到 SD,您的应用程序仍将是相同的大小。出于这个原因,我认为没有理由将它们复制到 SD 卡,只需在需要时从 AssetManager 访问它们。这样做也意味着如果 SD 卡被移除/卸载,您的应用程序不会中断。
【解决方案2】:
只需将它们放在“tessdata”文件夹中的资产下。那是在你的项目中。
您可以使用 Xamarin 和 Tesseract for Xamarin nuget 包,它们非常易于使用,请记住,如果最新版本不起作用,您可能必须安装旧版本的 nugget。 (据我所知,2.10 是有效的)