根据图片自动识别其中的内容

话不多说先上依赖
引入 Tess4J

<dependency>
			<groupId>net.sourceforge.tess4j</groupId>
			<artifactId>tess4j</artifactId>
			<version>3.2.1</version>
		</dependency>

需要安装tesseractt 并且配置环境

第一步:下载安装包

根据https://github.com/tesseract-ocr/tesseract/wiki,我找到非官方的安装包,好像我只看到64位的安装包http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe,下载后直接安装即可,但是要记得你的安装目录,我们等会配置环境变量要用。

第二步:安装

直接执行下载好的tesseract-ocr-setup-4.00.00dev.exe,下一步、下一步安装。

第三步:配置环境变量

注意:我的系统是win7,其他系统应该差不多,跟配置java变量一样

复制你的安装地址,我的是安装在C:\Program Files (x86)\Tesseract-OCR,界面如下:

复制安装路径“C:\Program Files (x86)\Tesseract-OCR”,进入“控制面板\系统和安全\系统”,点击

“系统保护”

进入到以下界面:

点击环境变量,进入配置以下界面:

把刚才的安装路径“C:\Program Files (x86)\Tesseract-OCR”添加到红线划的PATH和Path,注意,添加时候开头用“;”跟之前的变量隔开,结尾以“;”结尾。下面是我的配置信息样本:

C:\Users\Administrator\AppData\Roaming\Composer\vendor\bin;C:\Users\Administrator\AppData\Roaming\npm;C:\Program Files (x86)\Tesseract-OCR;

配置好了点击保存。

打开命令终端,输入:tesseract -v,可以看到版本信息

如果出现报错,估计是环境变量没配置好。

到这里,我们就算安装完成了,但是,我们的系统还是无法识别中文的,我们要去下载简体汉字、繁体汉字语言包(上文给了地址了),下载好之后放到安装目录的tessconfigs目录下即可。

补充:因为没有配置全局变量,无法跨盘执行数据转换,这里我们在环境变量那增加一个配置信息

系统变量—->新建:

增加一个TESSDATA_PREFIX变量名,变量值还是我的安装路径C:\Program Files (x86)\Tesseract-OCR;

配置完成后下载对应的中文包
https://github.com/tesseract-ocr/tessdata
找到chi_sim.traineddata 这个文件下载后复制到
C:\Program Files (x86)\Tesseract-OCR\tessdata

这些都搞定后.进入idea编写代码

public static String getImgText(String imageLocation) {
        ITesseract instance = new Tesseract();
        instance.setDatapath("所存放的语言包的路径");
        try
        {
            String imgText = instance.doOCR(new File(imageLocation));
            return imgText;
        }
        catch (TesseractException e)
        {
            e.getMessage();
            return "Error while reading image";
        }
    }

    public static void main(String[] args) {

        System.out.println(getImgText("想要识别的图片地址"));
    }

接下来我们就能使用 Java 进行图片识别了。例如下面一张图片

Android 根据图片地址获得Bitmap 根据图片识别地址_配置环境变量

控制台信息如下

Android 根据图片地址获得Bitmap 根据图片识别地址_java_02