【发布时间】:2015-04-08 17:44:01
【问题描述】:
我进入了一个我想摆脱的验证码网站。这是一些示例图像
由于背景是静态的,而且这个词是计算机生成的非扭曲字符,我相信它是非常可行的。由于将图像直接传递给 Tesseract(OCR 引擎)不会产生积极的结果。我想在 OCR 之前移除验证码背景。
我使用 Python-PIL 尝试了多种背景去除方法
- 删除所有非黑色像素,这会删除线条,但不会删除小的实心黑框。
- 应用提到的过滤器another StackOverflow post,它不会删除小的实心黑框。也比方法 1 效果差。
方法 1 和 2 会给我这样的图像
看起来很接近,但 Tesseract 无法识别该字符,即使删除了顶部和底部的点行。
- 创建背景蒙版,并将背景蒙版应用于图像。
这是蒙版图片
这是应用了蒙版并移除了灰线的图像
但是,盲目地应用此蒙版会在验证码字符中产生一些“白洞”。而 Tesseract 仍然无法找出这些单词。
有没有更好的去除静态背景的方法?
最后,我如何将过滤后的图像拆分为 6 个具有单个字符的图像?非常感谢。
【问题讨论】:
标签: python image-processing captcha