2011-10-10 7 views
13

Tôi đã tìm kiếm trên mạng trong vài giờ. Tôi nhận được nhiều câu trả lời cho biết chúng tôi cần sử dụng NDK, v.v. cho "Tesseract" cho WINDOWS.Làm cách nào để sử dụng Tesseract trong Android?

Nhưng tôi đã không nhận được bất kỳ lời giải thích từng bước/thích hợp nào về những gì nên được thực hiện khi NDK được cài đặt. Làm thế nào để có được các tập tin .so? Tôi đã hoàn tất cài đặt NDK và Cygwin. Để kiểm tra xem nó đã được thực hiện đúng chưa, tôi đã nhập make -v và nó đã đưa ra kết quả mong đợi.

Có ai đã sử dụng "Tesseract" cho tôi biết họ đã làm như thế nào không? (Tôi đã tải xuống "Mezzofanti", nhưng ở đó tôi không tìm thấy bất kỳ tệp "Tesseract" nào.)

Trả lời

13

Bạn có thể tham khảo tài liệu này, Nó cung cấp từng bước Nhưng bạn cần làm là thiết lập dự án tesseract-android-tools như là một dự án thư viện trong Eclipse, và cho dự án của bạn tham khảo dự án thư viện. Vì vậy, bạn sẽ cần hai dự án trong Eclipse,

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

Tôi hy vọng điều này giúp đỡ .....

+0

Tôi đã thực hiện các thay đổi trong câu hỏi của mình ... Tôi cần nó cho WINDOWS XP OS. – Pallavi

+0

Tôi đã đi qua "ĐỌC ME" nhưng nó đưa ra một lỗi "Nhân bản vào libjpeg ... android.git.kernel.org [0: 149.20.4.77]: errno = Không có tuyến đường để lưu trữ gây tử vong: không thể kết nối socket (No route to host) "sau bước này," git clone git: //android.git.kernel.org/platform/external/jpeg.git libjpeg "trong readme – Pallavi

+0

Tìm thấy vấn đề: Đây là gương thay thế" https: //github.com/android/platform_external_jpeg " – Pallavi

11

Bạn cần phải sử dụng tess-two dự án để làm việc với Tesseract trên Android.
Tess-two chứa các công cụ để biên dịch các thư viện Tesseract và Leptonica để sử dụng trên nền tảng Android. Nó cung cấp một API Java để truy cập các API Tesseract và Leptonica được biên dịch tự nhiên.

Thêm tess-hai để dự án của bạn:

thêm vào build.gradl e:

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

Sử dụng Tesseract

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

Bạn có thể tìm kiếm trên simple one-class example of using Tesseract for Android tôi. Nó chỉ chứa 200 dòng mã Java.

+1

Đẹp! Bạn nên nhắm mục tiêu api 22 thay vì ứng dụng của bạn không yêu cầu [quyền thời gian chạy] (https://developer.android.com/training/permissions/requesting.html) từ người dùng. – rmtheis

+0

Cố gắng xóa một chút nghi ngờ.Tôi nghĩ rằng OCR là CPU chuyên sâu, bạn không nghĩ rằng thực hiện OCR tại các thiết bị cầm tay người dùng có thể làm chậm thiết bị của họ. Tôi đoán preforming OCR ở cấp độ máy chủ và sau đó trở lại cho người dùng với thông tin sẽ là tuyệt vời. Bạn nghĩ sao ? – Lokesh

+0

@Lokesh Vâng, bạn nói đúng. OCR cần có thời gian. Nó sẽ làm việc nhanh hơn gấp 3 lần trên máy chủ. –