简单的验证码识别

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 验证码识别示例 简单验证码识别 » 立即查看

Python验证码识别:利用pytesser识别简单图形验证码

验证码识别其实很简单,python图像处理识别验证码

验证码识别与生成类API调用的代码示例合集:六位图片验证码生成四位图片验证码生成简单验证码识别等

Python验证码识别:利用pytesser识别简单图形验证码

简单的图片验证码识别