原创
Java识别图像、验证码
温馨提示:
本文最后更新于 2018年06月14日,已超过 2,311 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
前言
这是一个学习案例,看最后一张图,识别率应该有90%以上吧!
提高识别度
代码处理,放大图像
不清晰的图像,像素不好的,如果已经是最好效果了,建议不要处理(放大),就这样子直接识别。
/** 对图片进行处理 - 提高识别度 **/
private static BufferedImage convertImage(BufferedImage image) throws Exception {
//按指定宽高创建一个图像副本
//image = ImageHelper.getSubImage(image, 0, 0, image.getWidth(), image.getHeight());
//图像转换成灰度的简单方法 - 黑白处理
image = ImageHelper.convertImageToGrayscale(image);
//图像缩放 - 放大n倍图像
image = ImageHelper.getScaledInstance(image, image.getWidth() * 3, image.getHeight() * 3);
return image;
}
图片倾斜处理
BufferedImage bi = ImageIO.read(imageFile);
ImageDeskew id = new ImageDeskew(bi);
double imageSkewAngle = id.getSkewAngle(); //获取倾斜角度
if ((imageSkewAngle > 0.05d || imageSkewAngle < -(0.05d))) {
bi = ImageHelper.rotateImage(bi, -imageSkewAngle); //纠偏图像
}
1.识别模糊图像
/**
* 模糊图像,像素不好,建议不放大。
*/
testMHYzm();
2.识别清晰图像
/**
* 清晰图像,建议放大,识别度更精准。
*/
testConvertYzm();
3.识别英文图像
/**
* 识别英文图像
*/
testConvertEn();
4.识别中文图像
/**
* 识别中文图像
*/
testConvertZh();
源代码地址
- 本文标签: Java
- 本文链接: http://www.lzhpo.com/article/41
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权