Python 的OCR机制分析验证码


在用QTP做automation的时候总会遇到烦人的验证码,尝试从技术角度出发去解决,不知为什么QTP10之后对OCR的识别能力有所下降,无奈考虑其他的办法

今天搜索了大量的网站,终于有了一些小成就,不过还是只能识别一些简单的验证码,当验证码中的干扰素多的情况下识别能力还是不够给力

以下为代码+测试片段:

from PIL import Image
from pytesser import *

def captcha(inputPic):
    
    img = Image.open(inputPic) # Your image here!
    img = img.convert("RGBA")

    pixdata = img.load()

    # Make the letters bolder for easier recognition

    for y in xrange(img.size[1]):
        for x in xrange(img.size[0]):
             if pixdata[x, y][0] < 90:
                 pixdata[x, y] = (0, 0, 0, 255)

    for y in xrange(img.size[1]):
        for x in xrange(img.size[0]):
             if pixdata[x, y][1] < 136:
                 pixdata[x, y] = (0, 0, 0, 255)

    for y in xrange(img.size[1]):
        for x in xrange(img.size[0]):
            if pixdata[x, y][2] > 0:
                pixdata[x, y] = (255, 255, 255, 255)

    img.save("c:\\input-black.gif", "GIF")

    #   Perform OCR using tesseract-ocr library
    return image_file_to_string('c:\\input-black.gif')

if __name__ == '__main__':
    print captcha('c:\\untitled.bmp')


注:需要依赖于PIL和pyTesser

PIL:http://www.pythonware.com/products/pil/

pyTesser:http://code.google.com/p/pytesser/


有兴趣的朋友也欢迎一起讨论,加我微博:http://www.weibo.com/quicktest?lang=zh-cn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值