1.首先进入Tess4J官网去下载最新的Ocr识别包,下载地址:https://sourceforge.net/projects/tess4j/files/tess4j/
405
2.下载完毕之后开始解压到你的本地,解压后的目录如下。
406
3.把/dist路径下面的tess4j-3.4.6.jar以及lib目录下面的所有jar包导入到你新建的项目里面去。
407
4. 开始编写代码,识别测试,源码如下。
package test;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import net.sourceforge.tess4j.util.ImageHelper;
public class CheckNodeTest {
public static void main(String args) {
try {
File imageFile = new File("D:\\Tesseract-OCR\\doc\\2.jpg");// 图片位置
ITesseract instance = new Tesseract(); // JNA Interface Mapping
instance.setDatapath("D:\\Tesseract-OCR\\Tess4J\\tessdata");// 设置tessdata位置
instance.setLanguage("eng");// 选择字库文件(只需要文件名,不需要后缀名)
String result = instance.doOCR(imageFile);// 开始识别
BufferedImage img = change(new File("D:\\Tesseract-OCR\\doc\\2.jpg"));
String rs = instance.doOCR(img);
System.out.println("图片实际为:xxxx" + "\t图片识别结果为:" + result);// 打印图片内容
System.out.println("图片实际为:xxxx" + "\t图片识别结果为:" + rs);// 打印图片内容
} catch (TesseractException e) {
e.printStackTrace();
}
}
public static BufferedImage change(File file) {
// 读取图片字节数组
BufferedImage textImage = null;
try {
InputStream in = new FileInputStream(file);
BufferedImage image = ImageIO.read(in);
textImage = ImageHelper
.convertImageToGrayscale(ImageHelper.getSubImage(image, 0, 0, image.getWidth(), image.getHeight())); // 对图片进行处理
textImage = ImageHelper.getScaledInstance(image, image.getWidth() * 5, image.getHeight() * 5); // 将图片扩大5倍
} catch (IOException e) {
e.printStackTrace();
}
return textImage;
}
}
测试效果如下:
408
图片实际为:xxxx 图片识别结果为:ASDFESA. DA54
图片实际为:xxxx 图片识别结果为:ASDF E 5A . DA54
409
图片实际为:xxxx 图片识别结果为:Mt
图片实际为:xxxx 图片识别结果为:mm这种方式识别对于普通的文字识别是有效的,但是对于一些网站的比较模糊一点的验证码识别基本上就失效了哈,大家可以看下有没有更好的方法去改进一下。
注意事项:
1.上面的测试实例中我写了一个将图片放大一定比例的函数,用于比对识别效果;
2.本项目我是使用Maven工具搭建的,但是这里直接将下载的jar包文件导入到了我的工程中去,因此没有必要再去pom.xml文件中去配置这个插件的版本信息。
评论
填写昵称与邮箱即可评论,无需登录。