我的问题听起来很重复,但问这是我最后的希望。 我尝试使用tess-two对英文字符进行OCR,所以我做了以下工作:-
1-我下载了所有这些数据文件eng.traineddata,eng.cube.bigrams,eng.cube.fold,eng.cube.lm,eng.cube.nn,
here中的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-用于处理图像的asynctask
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");
}
}
}
我正面临两个主要问题 第一个应用程序就像永远处理图像一样。 第二个即使返回也返回错误的文本。 所以我错过了什么吗?还是正常的行为(我不这么认为) 感谢您的帮助。