簡體   English   中英

Android OCR使用Tesseract

[英]Android OCR Using Tesseract

我正在嘗試使用Tesseract Library在android中構建一個OCR應用程序。

這是附加的代碼:

public class TessOCR {
    private TessBaseAPI mTess;

public TessOCR() {
    // TODO Auto-generated constructor stub

    mTess = new TessBaseAPI();
    String datapath = Environment.getExternalStorageDirectory() + "/tesseract/";
    String language = "sseg";
    File dir = new File(datapath + "tessdata/");
    if (!dir.exists())
        dir.mkdirs();
    mTess.init(datapath, language);


}

public String getOCRResult(Bitmap bitmap) {

    mTess.setImage(bitmap);
    String result = mTess.getUTF8Text();

    return result;
}

public void onDestroy() {
    if (mTess != null)
        mTess.end();
}

當我在new TessOCR()調用new TessOCR() ,它給了我錯誤

09-02 16:10:56.677 14225-14225 / com.example.pulkitmital.swipetabtoolbar E / AndroidRuntime:FATAL EXCEPTION:main進程:com.example.pulkitmital.swipetabtoolbar,PID:14225 java.lang.IllegalArgumentException: 數據路徑必須包含子文件tessdata! com.googlecode.tesseract.android.TessBaseAPI.init(TessBaseAPI.java:344)at com.googlecode.tesseract.android.TessBaseAPI.init(TessBaseAPI.java:317)at com.example.pulkitmital.swipetabtoolbar.TessOCR。( TessOCR.java:22)位於com.example的com.example.pulkitmital.swipetabtoolbar.Tab1.access $ 000(Tab1.java:42)的com.example.pulkitmital.swipetabtoolbar.Tab1.doOCR(Tab1.java:326)。在Android.view.View $ PerformClick.run(View.java:19884)的android.view.View.performClick(View.java:4785)上的pulkitmital.swipetabtoolbar.Tab1 $ 3.onClick(Tab1.java:168)。 os.Handler.handleCallback(Handler.java:746)位於android.app.AtoT.Thread.main的android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:135) (ActivityThread.java:5343)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run(ZygoteInit.java:905)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700

但文件夾已經存在。

請幫我擺脫這個問題。

替換此行:

mTess.init(datapath, language);

用:

mTess.init(datapath + "tessdata/", language);

基本上錯誤是由於我忘記添加從清單文件中的外部存儲讀取的權限。

<uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="18" />

只需將此行添加到AndroidManifest即可解決。


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM