Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中使用Tesseract?_Android_Ocr_Android Ndk_Tesseract - Fatal编程技术网

如何在Android中使用Tesseract?

如何在Android中使用Tesseract?,android,ocr,android-ndk,tesseract,Android,Ocr,Android Ndk,Tesseract,我在网上搜索了几个小时。我得到了很多答案,说我们需要在WINDOWS的“Tesseract”中使用NDK等 但我没有得到任何关于安装NDK时应该做什么的逐步/适当解释。如何获取.so文件? 我已经完成了NDK和Cygwin的安装。为了检查它是否正确完成,我输入了make-v,它给出了预期的输出 任何使用过“Tesseract”的人能告诉我他们是如何做到的吗? (我已经下载了“Mezzofanti”,但在那里我没有找到任何“Tesseract”文件。)您可以参考此文档,它一步一步地给出了答案,但您

我在网上搜索了几个小时。我得到了很多答案,说我们需要在WINDOWS的“Tesseract”中使用NDK等

但我没有得到任何关于安装NDK时应该做什么的逐步/适当解释。如何获取.so文件? 我已经完成了NDK和Cygwin的安装。为了检查它是否正确完成,我输入了
make-v
,它给出了预期的输出

任何使用过“Tesseract”的人能告诉我他们是如何做到的吗?
(我已经下载了“Mezzofanti”,但在那里我没有找到任何“Tesseract”文件。)

您可以参考此文档,它一步一步地给出了答案,但您需要做的是在Eclipse中将Tesseract android tools项目设置为库项目,并告诉您的项目参考库项目。所以在Eclipse中需要两个项目

我希望这对……有帮助。

这是一个循序渐进的教程

您需要使用project在Android上使用Tesseract
TESS2包含用于编译Tesseract和Leptonica库以在Android平台上使用的工具。它提供了一个Java API,用于访问本机编译的Tesseract和Leptonica API

将tess 2添加到项目中: 添加到build.gradle:

dependencies {
    compile 'com.rmtheis:tess-two:5.4.1'
}
使用Tesseract:
你可以看着我的眼睛。它只包含200行Java代码

这段视频向您展示了它是如何完成的

确保: 1.创建文件夹 2.您必须将traineddata文件放在该文件夹中(您可以从此处以所需语言下载) 3.引用traineddata文件所在文件夹的路径,并说明语言: tessBaseApi.init(数据路径,“eng”)


希望能有所帮助

我的问题已经有所改变。。。我在WINDOWS XP操作系统上需要它。我读了“READ ME”,但它给出了一个错误“克隆到libjpeg…android.git.kernel.org[0:149.20.4.77]:errno=没有到主机的路由致命:无法连接套接字(没有到主机的路由)”在这一步之后,“git clone”git://android.git.kernel.org/platform/external/jpeg.git libjpeg“在readmeFound问题中:这是另一个镜像“”@Pallavi确实使用git克隆git://github.com/android/platform_external_jpeg.git libjpeg@Pallavi你也可以看看这个。美好的你应该以api 22为目标,因为你的应用程序没有向用户发出请求。试图澄清一些疑问。我认为OCR是CPU密集型的,你不认为在用户手持设备上执行OCR会导致设备速度变慢吗。我想在服务器级别执行OCR,然后将信息返回给用户会很好。你觉得怎么样?@Lokesh尝试使用Google Vision OCR而不是Tesseract。它不是免费的,而是便宜的。它为多语言和任何角度提供了极好的结果。@Lokesh虽然OCR是本地设备上的CPU和内存密集型任务,但使用服务器解决方案有其自身的缺点。您必须将图片数据上载到服务器(图片的大小从几十KB到要上载的几兆字节,具体取决于分辨率和预处理=上载需要时间)。而且你必须确保你的解决方案是合理安全的(例如,如果你试图扫描人们的身份证,你应该在解决方案的安全性上花费大量的预算,因为泄露照片会非常敏感)。最终,在设备上进行OCR可能会更安全、更快。@Lokesh实际上很大程度上取决于图片数据的来源。如果您正在对来自Internet的某些数据进行OCR,则可能会更快地将请求与所需的url放在服务器服务上,让服务器下载图像,运行OCR并将文本结果发送到应用程序。。如果图像的来源是设备摄像头,那么将原始数据上传到服务器可能会有问题(耗时太长+数据太多),但经过一些繁重的预处理后,您可能只能上传50-200kB的图片数据,这对于一些拥有良好数据服务的国家来说可能没问题。您发布的视频链接只是指向此线程本身的链接。
import com.googlecode.tesseract.android.TessBaseAPI;

private String extractText(Bitmap bitmap) throws Exception{
    TessBaseAPI tessBaseApi = new TessBaseAPI();
    tessBaseApi.init(DATA_PATH, "eng");
    tessBaseApi.setImage(bitmap);
    String extractedText = tessBaseApi.getUTF8Text();
    tessBaseApi.end();
    return extractedText;
}