在获取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就算是黑色了.
}
效果图