tessdata(github语言包下载有问题,页面打不开,估计文件过大的原因)
参考:https://github.com/alexcohn/tess-two
tessdata语言包下载
tessdata 语言包百度云盘下载
demo
提取码:5m92
1·添加远程依赖
build.gradle文件 中将tess-two添加为外部依赖项
dependencies {
implementation 'com.rmtheis:tess-two:9.1.0'
}
2·功能代码
public class MainActivity extends AppCompatActivity {
static final String TAG="图片识别";
private TessBaseAPI tessBaseAPI;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tessBaseAPI= new TessBaseAPI();
/*
参数一:路径下 需要有tessdata 语言包
(例如:/sdcard/Download/tessdata/eng.traineddata)
参数二: 设置识别语言包
chi_sim:简体中文
eng:英文
* */
boolean bl=tessBaseAPI.init("/sdcard/Download/", "eng");
if(!bl){
Toast.makeText(this,"初始化失败",Toast.LENGTH_LONG).show();
return;
}
findViewById(R.id.ts).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "/sdcard/Pictures/test.png";
Bitmap bitmap = BitmapUtil.uriToBitmap(url);//获取 本地图片
// bitmap=BitmapUtil.lineGrey(bitmap);//
// String url3 = "/sdcard/Download/线性灰度化.png";//
// BitmapUtil.bitmapToUri(bitmap,url3);//保存图片
bitmap = BitmapUtil.getGrayBitmap(bitmap);//灰度化图片 ,提高 识别准确率
String url1 = "/sdcard/Download/灰度化图片.png";
BitmapUtil.bitmapToUri(bitmap,url1);//保存图片
// bitmap = BitmapUtil.bitmapTwoValue(bitmap); //二值化 后 识别 效果 不好
// String url2 = "/sdcard/Download/二值化处理.png";
// BitmapUtil.bitmapToUri(bitmap,url2);//保存图片
/*设置模式 提高 识别率:
PSM_SINGLE_BLOCK:垂直对齐
PSM_AUTO:全自动页面分割,但没有OSD。
PSM_SINGLE_COLUMN:大小可变的文本
PSM_SINGLE_BLOCK:假设一个统一的文本块。(默认设置)
* */
tessBaseAPI.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_COLUMN);
//传入等待识别的图片
tessBaseAPI.setImage(new File(url1));
//识别结果
String utf8Text = tessBaseAPI.getUTF8Text();
Log.i(TAG, "识别结果:" + utf8Text);
//释放识别结果
tessBaseAPI.clear();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
//释放tessBaseApi
tessBaseAPI.end();
}
}