我最近看到一个简历上写了OCR文字识别,心血来潮就搜了java有没有相关的包。
然后,写了个 Tess4j 的 demo(其实是通义灵码生成的,哈哈)。
// 图像文件路径
String imagePath = "D:\\旧F盘\\desktop\\0.png";
// Tesseract语言数据文件路径
String languagePath = "D:\\tess4j";
try {
// 初始化Tesseract实例,设置语言和数据文件路径
ITesseract instance = new Tesseract();
instance.setDatapath(languagePath);
instance.setLanguage("chi_sim");
//改为中文简体,正常识别,这里的chi_sim包含中英文字符,不要被其他博客误导
// 执行OCR识别
File imageFile = new File(imagePath);
String result = instance.doOCR(imageFile);//默认字符集为UTF-8
/*byte[] bytes = result.getBytes("ISO-8859-1");
String string = new String(bytes, "UTF-8");*/
// 输出识别结果
System.out.println("Recognized text:\n" + result);
} catch (TesseractException e) {
System.err.println("Error during OCR processing: " + e.getMessage());
}
识别结果如下:
ecognized text:
喜改进的地方: 所
(1) 章节之间内容衡接性不强,需加强讨论的深入性,建议重组各章节研究内容以强
化全文的思路。e
(2) 对图表的分析不够,需分析数据之间的关联度,与他人研究的关联度。e
“喜改进的地方: 所”应该是“需改进的地方”,怎么提高文字识别率呢?
就是改错别字,暂时是没有功夫去自己训练识别的(在赶大论文,交叉专业,研三)。
有没有开源老哥愿意分享自己的训练集?