我进入了一个我想摆脱的验证码网站。这是一些示例图像
由于背景是静态的,而且这个词是由计算机生成的非扭曲字符,我相信它是非常可行的。由于直接将图像传递给Tesseract(OCR引擎)并不会产生积极的结果。我想在OCR之前删除验证码背景。
我尝试使用Python-PIL
进行多种背景删除方法方法1和2会给我一个像这样的图像
看起来很接近,但即使在删除了顶部和底部的点行之后,Tesseract也无法识别该角色。
这是掩模图像
这是应用蒙版并删除灰线的图像
然而,盲目地应用这个掩码会在验证码字符中产生一些“白洞”。而Tesseract仍未能找到这些词语。
有没有更好的方法去除静态背景?
最后,我怎样才能将过滤后的图像分割为单个字符的6个图像?非常感谢。
答案 0 :(得分:0)
我可以给你一些想法试试。
应用步骤3后,您可以使用PIL加厚图像中的黑色边缘,以填充白色孔。我猜你正在使用python-tesseract。如果是,请参阅https://code.google.com/p/python-tesseract/wiki/CodeSnippets
中的示例4为了提取字符,您可以参考Numpy PIL Python : crop image on whitespace or crop text with histogram Thresholds。有一些方法可以分析图像的直方图,以便找到可以推断出边界的空白位置。