мой вопрос может показаться повторным, но задавать вопрос здесь - моя последняя надежда.
я попытался сделать OCR для английских символов, используя tess-two , поэтому я сделал следующее: -
1 - я скачал все эти файлы данных eng.traineddata, eng.cube.bigrams, eng.cube.fold, eng.cube.lm, eng.cube.nn,
eng.cube.params, eng.cube.size, eng.cube.word-freq, eng.tesseract_cube.nn из здесь , и я поместил их в следующий путь к папке: -
Environment.getExternalStorageDirectory() + "/tesseract/+"tessdata"
2 - добавить в зависимости implementation 'com.rmtheis:tess-two:9.0.0'
3 - инициализировать API следующим образом: -
ReadIt = new TessBaseAPI();
ReadIt.init(datapath,"eng");
4 - асинхронная задача для обработки изображения
class ProcessImageAsync extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
try{
ReadIt.setImage(new File(currentPhotoPath));
return ReadIt.getUTF8Text();
}catch (Exception ex){
ex.printStackTrace();
return "";
}
}
@Override
protected void onPostExecute(String s) {
if(!s.equalsIgnoreCase("")){
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(s);
}else{
Utility.showToast(MainActivity.this, "invalid Data");
}
}
}
я сталкиваюсь с двумя основными проблемами
первый из которых приложение обрабатывает как навсегда.
второй, даже после того, как он возвращается, возвращается с неверным текстом.
так я что-то пропустил? или это нормальное поведение (я так не думаю)
Спасибо за вашу помощь, ребята.