public static void main(String[] args) throws Exception {
ITesseract instance = new Tesseract()
File imageFile = new File(
"jcaptcha.jpg")
BufferedImage bi = ImageIO
.read(imageFile)
BufferedImage textImage = ImageHelper
.convertImageToGrayscale(ImageHelper
.getSubImage(bi,
0,
0, bi
.getWidth(), bi
.getHeight()))
// 图片锐化,自己使用中影响识别率的主要因素是针式打印机字迹不连贯,所以锐化反而降低识别率
textImage = ImageHelper
.convertImageToBinary(textImage)
// 图片放大
5倍,增强识别率(很多图片本身无法识别,放大
5倍时就可以轻易识,但是考滤到客户电脑配置低,针式打印机打印不连贯的问题,这里就放大
5倍)
textImage = ImageHelper
.getScaledInstance(textImage, bi
.getWidth() *
10, bi
.getHeight() *
10)
ImageIO
.write(textImage,
"jpg", new File(
"jcaptcha0.jpg"))
String result = instance
.doOCR(new File(
"jcaptcha0.jpg"))
System
.out.println(result)
}
顺便说一句,如果不训练,效果很差。
转载请注明原文地址: https://ju.6miu.com/read-1202478.html