2011-07-13 27 views
0

我需要爲我的Android應用程序使用Tesseract OCR(光學字符識別)的「.so」文件。任何人都可以解釋我如何獲得Tesseract OCR的「.so」文件嗎?用於Tesseract OCR的「.SO」文件

我試圖導入不工作的完整項目。

回答

0

您需要安裝Android NDK,將Tesseract東西轉換爲NDK擴展名,並通過JNI將其添加到Java應用程序中。這不太容易。你不能只拿一個.so,比如Linux,並把它放到你的項目中。

2

tesseract-android-tools自帶的自述文件將成爲您最好的朋友。我在VirtualBox中使用了Ubuntu 11.04。在Ubuntu的(我假設你會想這些後來轉移到Windows):

1)下載Android NDK

2)SVN的正方體,Android的工具項目。我使用tesseract-android-tools-read-only/tesseract-android-tools/作爲FYI的$ PROJECT目錄。

3)使用ndk-build(詳見自述文件)構建tesseract。這樣做將在$ PROJECT中創建一個libs文件夾,並創建您需要的三個.so文件。

我相信有一種方法可以用Cygwin來做,但我不知道如何,因爲我已經準備好使用VM了。

從那裏(在http://code.google.com/p/tesseract-android-tools/updates/list使用說明):

4)正方體工具實際上是一個圖書館,有一個日食的.project只需要導入該項目建設後NDK這樣的,並建立它。在同一個工作區http://developer.android.com/guide/developing/projects/projects-eclipse.html#SettingUpLibraryProject

6)現在創建一個新的Android項目,即你的應用程序:

5)設置爲庫。轉到屬性,並從第3步(http://developer.android.com/guide/developing/projects/projects-eclipse.html#ReferencingLibraryProject

7)引用該庫的構建基於Android 2.2(分)您的應用程序:http://code.google.com/p/tesseract-android-tools/issues/detail?id=5#c16

,它應該工作!

請注意,您必須使用Android 2.2或更高版本。希望幫助!

1

@raju:我遇到了和你一樣的問題。在找到解決方案後,我發現這個:http://gaut.am/making-an-ocr-android-app-using-tesseract/

不知道如果你的情況是我的!但我正在使用Windows操作系統下的Eclipse進行開發。博客(之前的鏈接)說這不能在windows下完成,所以你必須使用Linux(例如:在虛擬機內的Ubuntu)。另外,博客還詳細解釋了應該完成的步驟。

@jmiles 我試過在Ubuntu下執行「ndk-build」,然後將結果傳輸到Windows。我已經構建了tesseract,並將其作爲「圖書館」;但是,在嘗試識別字符時,我總是遇到錯誤:這些是一些日誌消息:04-04 14:32:28.569:E/2130968577(561):java.lang.IllegalArgumentException:數據路徑必須包含子文件夾tessdata ! 04-04 14:32:28.569:E/2130968577(561):at com.googlecode.tesseract.android.TessBaseAPI.init(TessBaseAPI.java:167)

您對@jmiles或@CommonsWare有什麼想法嗎?問題??

0

您需要下載語言數據文件的正方體,並把它放入「tessdata」文件夾,然後初始化正方體它像

TessBaseAPI.init("your language file tessdata folder","language mostly 'eng'"); 

這將現在的工作。