简单的验证码识别
Posted wtujvk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的验证码识别相关的知识,希望对你有一定的参考价值。
这里只介绍最简单的4位数字不太复杂的验证码。
1. 生成验证码图片。(随机数直接使用数字。 new Random().Next(10) 。 )
生成图片的代码
/// <summary> /// 获取含验证码字符串的图片。 /// </summary> /// <param name="validateCode">验证码字符串。</param> /// <returns>图片对象。</returns> public static Image CreateCaptchaSimpleImage(string validateCode) Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 16.0), 27); using (Graphics g = Graphics.FromImage(image)) var font = new Font(FontFamily.GenericMonospace, 13); var brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(validateCode, font, brush, 3, 2); return image;
2. 识别部分,
使用nuget安装 使用Tesseract +data 或者直接使用 Tesseract.Net.SDK
调用方法识别验证码
/// <summary> /// 识别字符串。 /// </summary> /// <param name="bitmap">bitmap图片。</param> /// <returns>识别结果。</returns> public string GetStringFromImage(Bitmap bitmap) using (var ocrApi = OcrApi.Create()) ocrApi.Init(Languages.English); return ocrApi.GetTextFromImage(bitmap);
3. 测试识别率。
可以看到 数字识别率是最高的。 字母识别率比较低。
4 其他验证码
其他方式的验证码,需要对图片进行处理。涉及到比较复杂的处理流程和原理。
以上是关于简单的验证码识别的主要内容,如果未能解决你的问题,请参考以下文章
Python验证码识别:利用pytesser识别简单图形验证码
验证码识别与生成类API调用的代码示例合集:六位图片验证码生成四位图片验证码生成简单验证码识别等