2015-06-21 45 views
0

我正在使用tesseract工具制作Android OCR应用程序。我尝试了一些在线发现的链接。然而,对于所有他们,我的应用程序崩溃后
baseApi.init(DATA_PATH,郎)初始化中的Android Tesseract数据路径

我已经尝试过在网上找到的Data_Path的各种值。我有资产/ tessdata中的eng.traineddata。

//DATA_PATH = Environment.getExternalStorageDirectory().toString() + "/MyOCRApp/tessdata"; 


AssetManager assetManager = getAssets(); 
     String[] files = new String[0]; 
     try { 
      files = assetManager.list(""); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     for (String currPath:files){ 
      if (currPath.equals("tessdata")){ 
       DATA_PATH = "///android_asset/"+ currPath; 
      } 
     } 

这些是我尝试使用的几个示例。另外,我不认为我的应用程序正在安装在SD卡中,它正在安装在内部存储器中。我希望这不是问题。

回答

0

语言数据必须位于设备的存储器中,而不是应用资产内。

所以,如果你把它放在SD卡上/MyOCRApp/tessdata你会使用:

final String datapath = Environment.getExternalStorageDirectory() + "/MyOCRApp"; 
final boolean initialised = api.init(datapath, "eng")); 
// ... 
+0

但我不想单独放在SD卡上。我希望它能从应用程序本身工作。 – Aditya

+1

它必须在设备的存储器上。我会尝试在应用程序启动时将其从资产文件夹复制到SD卡。 – nmw