Python驗證碼識別處理執行個體

來源:互聯網
上載者:User
一、準備工作與代碼執行個體
(1)安裝PIL:下載後是一個exe,直接雙擊安裝,它會自動安裝到C:\Python27\Lib\site-packages中去,
(2)pytesser:下載解壓後直接放C:\Python27\Lib\site-packages(根據你安裝的Python路徑而不同),同時,建立一個pytheeer.pth,內容就寫pytesser,注意這裡的內容一定要和pytesser這個檔案夾同名,意思就是pytesser檔案夾,pytesser.pth,及內容都要一樣!
(3)Tesseract OCR engine下載:下載後解壓,tessdata檔案夾,用其替換掉pytesser解壓後的tessdata檔案夾即可。

二、驗證
(1)原理:
驗證碼影像處理

驗證碼Image Recognition技術主要是操作圖片內的像素點,通過對圖片的像素點進行一系列的操作,最後輸出驗證碼映像內的每個字元的文本矩陣。

  • 1、讀取圖片
  • 2、圖片降噪
  • 3、圖片切割
  • 4、映像文本輸出

(2)驗證字元識別

驗證碼內的字元識別主要以機器學習的分類演算法來完成,目前我所利用的字元識別的演算法為KNN(K鄰近演算法)和SVM (支援向量機演算法),後面我 會對這兩個演算法的適用情境進行詳細描述。

  • 1、擷取字元矩陣
  • 2、矩陣進入分類演算法
  • 3、輸出結果

要驗證的圖片如下:

(3)、簡單的命令:

from pytesser import * image = Image.open('1.jpg') # Open image object using PIL print image_to_string(image)  # Run tesseract.exe on image 

然後運行:


或者直接:

print image_file_to_string('fnord.tif') 

同樣能輸出結果!
(4)、複雜一點的
上面的只能對一些比較簡單的做處理,一
原理:彩色轉灰階,灰階轉二值,二值Image Recognition

# 驗證碼識別,此程式只能識別資料驗證碼 import Image import ImageEnhance import ImageFilter import sys from pytesser import * # 二值化 threshold = 140 table = [] for i in range(256):  if i < threshold:   table.append(0)  else:   table.append(1)  #由雩都是數字 #對於識別成字母的 採用該表進行修正 rep={'O':'0',  'I':'1','L':'1',  'Z':'2',  'S':'8'  };  def getverify1(name):    #開啟圖片  im = Image.open(name)  #轉化到灰階圖  imgry = im.convert('L')  #儲存映像  imgry.save('g'+name)  #二值化,採用閾值分割法,threshold為分割點  out = imgry.point(table,'1')  out.save('b'+name)  #識別  text = image_to_string(out)  #識別對嗎  text = text.strip()  text = text.upper();   for r in rep:   text = text.replace(r,rep[r])   #out.save(text+'.jpg')  print text  return text getverify1('1.jpg') #注意這裡的圖片要和此檔案在同一個目錄,要不就傳絕對路徑也行 

運行後效果:


以上就是本文的全部內容,希望對大家的學習有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.