2011-10-10 35 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倍。 –

相關問題