2011-10-10 61 views
13

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

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

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

回答

13

您可以参考这个文档,它给出了一步一步的步骤但您需要做的是设置tesseract-android-tools项目作为Eclipse中的库项目,并告诉您的项目参考库项目。所以,你需要在Eclipse中的两个项目,

http://rmtheis.wordpress.com/2011/08/06/using-tesseract-tools-for-android-to-create-a-basic-ocr-app/

我希望这有助于.....

+0

我已经对我的问题进行了修改......我需要它用于WINDOWS XP操作系统。 – Pallavi

+0

我经历了“读我”,但它给出了一个错误“克隆到libjpeg ... android.git.kernel.org [0:149.20.4.77]:errno =没有路由到主机 致命:无法连接套接字(没有路由到主机)“,在这一步之后,在自述文件”git clone git://android.git.kernel.org/platform/external/jpeg.git libjpeg“中找到 – Pallavi

+0

发现问题:这是替代镜像”https: //github.com/android/platform_external_jpeg“ – Pallavi

11

您需要使用tess-two在Android上与Tesseract合作的项目。
tess-two包含用于编译Android平台上使用的Tesseract和Leptonica库的工具。它提供了用于访问本机编译的Tesseract和Leptonica API的Java API。

添加苔丝两到您的项目:

添加到build.gradl E:

dependencies { 
    compile 'com.rmtheis:tess-two:5.4.1' 
} 

采用正方体

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; 
} 

你可以找我simple one-class example of using Tesseract for Android。它只包含200行Java代码。

+1

不错!您应该定位api 22,因为您的应用程序不会向用户请求[运行时权限](https://developer.android.com/training/permissions/requesting.html)。 – rmtheis

+0

试图清除一点怀疑。我认为OCR是CPU密集型的,你不认为在用户手持设备上执行OCR可能会导致他们的设备变慢。我猜想在服务器级执行OCR,然后用信息恢复到用户身上会很好。你怎么看 ? – Lokesh

+0

@Lokesh是的,你是对的。 OCR需要时间。它将在服务器上运行速度提高3倍。 –