今天闲来无聊,尝试了一下OCR识别,尝试了以下三种方案:

1.直接使用业界使用最广泛的Tesseract-OCR。

Tesseract项目最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Tesseract由惠普公司宣布开源。2006年到现在,都由Google公司开发及维护。

2.使用基于Tesseract-OCR封装的Tess4j

3.调用百度云OCR服务实现(AT两家太贵,百度云文字识别服务提供每个月15000次的免费调用)。

先说测试结果:

毫无意外的,百度识别率最高,如果要自己实现,原生tesseract-ocr比tess4j识别率高出很多。


具体实现:

1.百度云OCR地址:https://cloud.baidu.com/product/ocr.html

JAVA开发指南:https://cloud.baidu.com/doc/OCR/OCR-Java-SDK.html

2.直接使用Tesseract-OCR,还有一个好处就是可以进行针对性的训练,提高识别率,我没有尝试过。

参考:

Windows环境安装tesseract-ocr 4.00并配置环境变量

注意:可以去github下载最新语言包文件,语言包是放在 tessdata文件夹,文件比较大,下载比较慢。

java文字识别技术(亲测,识别率很高)

java 图片文字识别 ocr

备注:截止到笔者写文时已发布4.00版本。

3.使用Tess4j,(不建议使用,我在试用过程中发现错误率极高)

不过目前网上能找到的比较多的资料都是Tess4j。

有以下可参考:

直接可运行的项目:https://gitee.com/zhaohuihbwj/Tess4JDemo

注意:该项目可直接运行测试。建议在maven中将tess4j升级到最新版本。

该项目直接包含了语言包,tess4j依赖包比较多,克隆过程会比较漫长。

若本地已有语言包chi_sim.traineddata,eng.traineddata,osd.traineddata

可克隆我fork的版本,https://gitee.com/huanghongbo/Tess4JDemo,将以上语言包放入/src/resources/tessdata目录。

其他参考资料:

1.官方参考:http://tess4j.sourceforge.net/

最新官方Tess4j包中已包含了对应dll文件,无需再单独配置。

2.Java OCR tess4j 图片识别技术(三)

3.验证码识别(Tess4J初体验)

4.tess4j正确的使用 OCR

JAVA OCR图片识别的更多相关文章

  1. WindowsAPI调用和OCR图片识别

    傻了吧唧的装双系统.成功的干崩了原本的系统.现在重装VS.闲的没事胡扯几句. WindowsAPI在每一台Windows系统上开放标准API供开发人员调用.功能齐全.在这里只介绍三个部分. 1.利用A ...

  2. python实现百度OCR图片识别

    一.直接上代码 import base64 import requests class CodeDemo: def __init__(self,AK,SK,code_url,img_path): se ...

  3. Android开发学习之路-GSON使用心得(OCR图片识别)

    在安卓中解析JSON串可以使用的方法有很多,比如说用官方提供的JSONObject或者谷歌提供的开源库GSON,以及一些第三方开源库. 这里用的是GSON,为了测试方便,借助了一个百度的api,一个图 ...

  4. 利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字

    序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...

  5. OCR图片识别引擎

    OCR引擎 OCR(Optical Character Recognition)是指使用扫描仪或数码相机对文本资料进行扫描成图像文件,然后对图像文件进行分析处理,自动识别获取文字信息及版面信息的软件. ...

  6. java实现的身份证照片脸部识别(头像截图) 以及OCR字体识别

    断断续续地折腾了大半个月,终于把身份证照片脸部识别以及OCR字体识别功能用Java实现了,需求很简单:通过摄像头所照的一张放在黑色底板上的身份证照,识别照片上身份证里面的人名和地址(OCR中文),再截 ...

  7. 使用阿里云的图片识别成表格ocr(将图片表格转换成excel)

    为了简便财务总是要对照着别人发来的表格图片制作成自己的表格 图片识别 识别成表格 表格识别 ocr 使用阿里云api 购买(印刷文字识别-表格识别) https://market.aliyun.com ...

  8. 腾讯云OCR图片文字识别

    一. OCR OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别 ...

  9. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码11.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.11.3. 二维码的样例:21.4. 定位图案21.5. 数 ...

随机推荐

  1. RabbitMQ学习之延时队列

    原帖参考:http://www.cnblogs.com/telwanggs/p/7124687.html?utm_source=itdadao&utm_medium=referral http ...

  2. poi导出excel 并处理插入网络图片 范例 处理文件下载中文乱码

    package com.inborn.inshop.controller.product; import com.inborn.inshop.common.util.DateUtils;import ...

  3. 2、Python函数详解(0601)

    函数的基础概念 1.函数是python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构: 2.函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件: 3.函数用于将相关功能打包并参 ...

  4. 【译】第10节---数据注解-Key

    原文:http://www.entityframeworktutorial.net/code-first/key-dataannotations-attribute-in-code-first.asp ...

  5. 51nod 1672 区间交(贪心)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1672 题意: 思路:其实这就是一个经典的区间贪心问题,只需要按照左端点排 ...

  6. springmvc后台接前端的参数,数组,集合,复杂对象等

    springmvc后台接前端的参数,数组,集合,复杂对象等 参考地址:https://blog.csdn.net/feicongcong/article/details/54705933  常用的几种 ...

  7. git代码回滚的两种选择

    回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...

  8. sql存储过程基本语法

    一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 declare @user1 nvarchar() select @user1='张三' pr ...

  9. Intent 类型

    Intent 分为两种类型: 显式 Intent:按名称(完全限定类名)指定要启动的组件. 通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务 ...

  10. java之双缓冲的代码粘贴

    private Image offScreenImage = null; public void update(Graphics g) { if(offScreenImage == null) off ...