Tesseract验证码图片预处理--去噪点和干扰线

在获取http://www.mayidaili.com/free 中的IP代理数据时候,发现里面的端口号是图片格式的,一些干扰线是随机生成的,并且端口号颜色单一。利用发现的规律和在NuGet获取的Tesseract,先对图片做了预处理。然后开始对图片识别。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    private static Bitmap removeLine(Bitmap img)
        {

            Bitmap bitmap = new Bitmap(img.Width, img.Height);

            for (int x = 0; x < img.Width; x++)
            {
                for (int y = 0; y < img.Height; y++)
                {
                    if (x == 0 || y == 0 || x == img.Width - 1 || y == img.Height - 1)
                    {
                        bitmap.SetPixel(x, y, Color.White);
                    }
                    else
                    {
                        Color color = img.GetPixel(x, y);
                        if (!isBlack(color.ToArgb()))
                           
                        {
                            bitmap.SetPixel(x, y, Color.White);
                        }
                        else
                            bitmap.SetPixel(x, y, color);
                    }

                }
            }

            return bitmap;


        }

        public static bool isBlack(int rgb)
        {
            Color c = Color.FromArgb(rgb);
            
            int b = c.B; 
            int r = c.R;
            int g = c.G;
            int sum = r + g + b;
        if (sum < 5)
            {
                return true;
            }
            return false;
            //sum的值越小(最小为零,黑色)颜色越重,
            //sum的值越大(最大值是225*3)颜色越浅,
            //sum的值小于10就算是黑色了.
        }

效果图
在这里插入图片描述

发布了54 篇原创文章 · 获赞 40 · 访问量 241万+

猜你喜欢

转载自blog.csdn.net/tomy2426214836/article/details/89763461