华体会官网:Java使用OCR技术识别图形和图像的文本信息

2021-04-02 02:14:33 浏览: 157次 来源:【jake】 作者:-=Jake=-

OCR技术

OCR技术是光学字符识别(Optical Character Recognition)的缩写,它使用文本识别技术将图像信息转换为文本信息。它适用于钞票java 开源图像文字识别,大量文本数据,文件文件和文案写作的输入和处理领域乐鱼官网 ,例如:自动识别身份证号码,将AI引入审核场景以及与风险控制规则集成以减少手动查看图片并大大提高查看效果。

OCR开发套件

由于图像技术的高门槛,特别是中文图书馆需要大量的培训才能达到很高的识别率。目前乐鱼官网 ,许多OCR软件通常是通过借鉴大公司的API接口来实现的鸭脖官网 ,例如百度OCR接口。在线界面的识别率比较高,但是受网络和通话次数的限制。在某些情况下,必须考虑离线使用。

HP Labs开发并由Google维护的开源OCR识别框架Tesseract-OCR()可以不断训练语言库java 开源图像文字识别,以不断增强图像转换文本的能力。该SDK包括libtesseract和命令行程序,支持跨平台开发乐鱼体育网 ,支持Java爱游戏 ,Python和其他语言调用。建议选择4. 0或更高版本。准确率大大提高。如果需要识别中文信息,可以单独添加中文词库。

Tess4J是libtesseract的Java包装器。 Tess4J用于识别图片信息。

介绍Tess4j开发套件


    net.sourceforge.tess4j
    tess4j
    4.5.1

Java代码

/**
 * 根据图片文件进行识别
 * 
 * @param imageFile 图片文件
 * @param lang 指定语言库
 * @return 识别文本信息
 */
public static String doOCRFromFile(File imageFile,String lang) throws Exception {
    ITesseract instance = new Tesseract();
    instance.setDatapath(DATA_PATH); //指定语言库目录 
    instance.setTessVariable("user_defined_dpi", "300");
    instance.setLanguage(lang);
    String result = instance.doOCR(imageFile);
    return result;
}

/**
 * main method
 */
public static void main(String[] args) {
    //SpringApplication.run(OxOcrApp.class, args); //测试不用启用springboot
    System.out.println("OxOcrApp 已启动");
    try {
        //设置训练库的位置
        OCRUtils.DATA_PATH=System.getProperty("user.dir")+"/config";
        OCRUtils.DEFAULT_LANG="eng"; //eng :英文  chi_sim :简体中文
        String ocrText = OCRUtils.doOCRFromFile(new File("d:/temp/java.jpg")); //指定要识别的图片文件
        System.out.println("识别文本信息:"+ocrText); //OCR识别结果:图像转文本
        //testCapture();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

识别效果

图片:

图片

识别结果:

图片

高级示例:Java指定的窗口来识别文本信息

老王