I'm using tesseract for android and dont know how to include trainned data languages in to my application. I'm seeing that most people use static path to the tessdata. The code below show this:
TessBaseAPI ocrManager = new TessBaseAPI();if(!ocrManager.init("/mnt/sdcard/", "eng")){Log.e(TAG, "Error on tesseract...");}It's not good because if I install my app in another device must copy manually the trained language to the /mnt/sdcard/tessdata/.Another approach is to include language data to the app AssetManager. But if not mistaken its not possible to gets path from AssetManager. A workaround is to copy trained language to an statical path that i showed in code above. Again it's bad because app generates files outside your memory space.It's possible to include somehow the trained data in my app and use it in tesseract initialization without any workaround(statical path or copy to statical path)?Thanks--
You received this message because you are subscribed to the Google
Groups "tesseract-ocr" group.
To post to this group, send email to tesser...@googlegroups.com
To unsubscribe from this group, send email to
tesseract-oc...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/tesseract-ocr?hl=en
You can't get the path to asset manager as it is packed in the application file. The best solution as I said is to try to copy the file in your application directory through the "getFilesDir" function: http://developer.android.com/reference/android/content/Context.html#getFilesDir()
2012/9/12 Napalm <gabriel.no...@gmail.com>Using getExternalStorageDirectory not resolves the problem, in the source code he copies trained data from assetManager to the root folder of android. For me it's not good solution. If I can pass path from the tessdata directory direct from my AssetManager or using another approach that not uses statical paths(including external paths from the app such as getExternalStorageDirectory ) or do copies would better.The better solution would add trained languages in the app and use them without any copy or acessing external paths. The AssetManager would be a good solution, i can create a tessdata folder and insert all trained data. But i don't know how to get path from AssetManager that i can put to the tesseract initialization.if anyone has any ideas would greatly help my progress, thanks.
Using getExternalStorageDirectory not resolves the problem, in the source code he copies trained data from assetManager to the root folder of android. For me it's not good solution. If I can pass path from the tessdata directory direct from my AssetManager or using another approach that not uses statical paths(including external paths from the app such as getExternalStorageDirectory ) or do copies would better.The better solution would add trained languages in the app and use them without any copy or acessing external paths. The AssetManager would be a good solution, i can create a tessdata folder and insert all trained data. But i don't know how to get path from AssetManager that i can put to the tesseract initialization.if anyone has any ideas would greatly help my progress, thanks.Em quarta-feira, 12 de setembro de 2012 10h37min15s UTC-3, Hrk escreveu:
I modified my project using GetFilesDir(), it's solution is not ideal because i do copies at app execution. Now I will try to modify tesseract source code to read trainneddatas from the tessdata directory on api. For me is the last chance.Other ideas?Thanks