歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python 的OCR機制分析驗證碼

Python 的OCR機制分析驗證碼

日期:2017/3/1 10:22:33   编辑:Linux編程

在用QTP做automation的時候總會遇到煩人的驗證碼,嘗試從技術角度出發去解決,不知為什麼QTP10之後對OCR的識別能力有所下降,無奈考慮其他的辦法

今天搜索了大量的網站,終於有了一些小成就,不過還是只能識別一些簡單的驗證碼,當驗證碼中的干擾素多的情況下識別能力還是不夠給力

以下為代碼+測試片段:

  1. from PIL import Image
  2. from pytesser import *
  3. def captcha(inputPic):
  4. img = Image.open(inputPic) # Your image here!
  5. img = img.convert("RGBA")
  6. pixdata = img.load()
  7. # Make the letters bolder for easier recognition
  8. for y in xrange(img.size[1]):
  9. for x in xrange(img.size[0]):
  10. if pixdata[x, y][0] < 90:
  11. pixdata[x, y] = (0, 0, 0, 255)
  12. for y in xrange(img.size[1]):
  13. for x in xrange(img.size[0]):
  14. if pixdata[x, y][1] < 136:
  15. pixdata[x, y] = (0, 0, 0, 255)
  16. for y in xrange(img.size[1]):
  17. for x in xrange(img.size[0]):
  18. if pixdata[x, y][2] > 0:
  19. pixdata[x, y] = (255, 255, 255, 255)
  20. img.save("c:\\input-black.gif", "GIF")
  21. # Perform OCR using tesseract-ocr library
  22. return image_file_to_string('c:\\input-black.gif')
  23. if __name__ == '__main__':
  24. print captcha('c:\\untitled.bmp')

注:需要依賴於PIL和pyTesser

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

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

Copyright © Linux教程網 All Rights Reserved