Android tessdata识别本地图片
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;@Overrideprotected 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() {@Overridepublic 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();}});}@Overrideprotected void onDestroy() {super.onDestroy();//释放tessBaseApitessBaseAPI.end();}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
