首页
社区
课程
招聘
[原创]OCR图片识别技术-可离线使用
发表于: 2022-6-18 16:04 8293

[原创]OCR图片识别技术-可离线使用

2022-6-18 16:04
8293

项目有些过时,但也可以用,可以自己训练字库,添加到替换到项目中,项目不大

更多工具https://bbs.pediy.com/user-home-854079.htm


有喜欢研究安卓安全方面的可加V


关键代码(如遇到引入代码上的错误删除即可):


项目下载https://wwb.lanzoub.com/iz1ow06ldidc


相关下载
https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/


字库下载:

https://github.com/tesseract-ocr/tessdata_best


识别率由算法和字库决定,项目中自带字库可离线使用


设置字库文件

//dataPath = getDataPath("eng.traineddata");

dataPath = getDataPath("chi_sim.traineddata");


/**

* 获得字典文件

* @param fileName

* @return

*/

private String getDataPath(String fileName){

File path = getFilesDir();

File filesDir = new File(path.getPath()+File.separatorChar+"tessdata"+File.separatorChar+fileName);

if(!filesDir.isFile()){//数据文件存在

try {

InputStream open = getAssets().open(fileName);

boolean writeFile = FileUtils.writeFile(filesDir, open);

System.out.println(writeFile);

} catch (Exception e) {

e.printStackTrace();

}

}

return path.getPath()+File.separatorChar;

}




/**

* 进行图片识别

* @param bitmap

*            待识别图片

* @param language

*            识别语言

* @return 识别结果字符串

*/

  public String doOcr(Bitmap bitmap, String language) {

TessBaseAPI baseApi = new TessBaseAPI();

baseApi.init(dataPath, language);


// 必须加此行,tess-two要求BMP必须为此配置

bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);


baseApi.setImage(bitmap);


String text = baseApi.getUTF8Text();


baseApi.clear();

baseApi.end();


return text;

}



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-6-18 16:12 被富到流油^-^编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//