最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Python驗證碼識別處理實例

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 14:35:02
文檔

Python驗證碼識別處理實例

Python驗證碼識別處理實例:一、準(zhǔn)備工作與代碼實例 (1)安裝PIL:下載后是一個exe,直接雙擊安裝,它會自動安裝到C:\Python27\Lib\site-packages中去, (2)pytesser:下載解壓后直接放C:\Python27\Lib\site-packages(根據(jù)你安裝的Python路徑而不同),同時,新建一個py
推薦度:
導(dǎo)讀Python驗證碼識別處理實例:一、準(zhǔn)備工作與代碼實例 (1)安裝PIL:下載后是一個exe,直接雙擊安裝,它會自動安裝到C:\Python27\Lib\site-packages中去, (2)pytesser:下載解壓后直接放C:\Python27\Lib\site-packages(根據(jù)你安裝的Python路徑而不同),同時,新建一個py
一、準(zhǔn)備工作與代碼實例
(1)安裝PIL:下載后是一個exe,直接雙擊安裝,它會自動安裝到C:Python27Libsite-packages中去,
(2)pytesser:下載解壓后直接放C:Python27Libsite-packages(根據(jù)你安裝的Python路徑而不同),同時,新建一個pytheeer.pth,內(nèi)容就寫pytesser,注意這里的內(nèi)容一定要和pytesser這個文件夾同名,意思就是pytesser文件夾,pytesser.pth,及內(nèi)容都要一樣!
(3)Tesseract OCR engine下載:下載后解壓,tessdata文件夾,用其替換掉pytesser解壓后的tessdata文件夾即可。

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

驗證碼圖像識別技術(shù)主要是操作圖片內(nèi)的像素點,通過對圖片的像素點進(jìn)行一系列的操作,最后輸出驗證碼圖像內(nèi)的每個字符的文本矩陣。

  • 1、讀取圖片
  • 2、圖片降噪
  • 3、圖片切割
  • 4、圖像文本輸出
  • (2)驗證字符識別

    驗證碼內(nèi)的字符識別主要以機(jī)器學(xué)習(xí)的分類算法來完成,目前我所利用的字符識別的算法為KNN(K鄰近算法)和SVM (支持向量機(jī)算法),后面我 會對這兩個算法的適用場景進(jìn)行詳細(xì)描述。

  • 1、獲取字符矩陣
  • 2、矩陣進(jìn)入分類算法
  • 3、輸出結(jié)果
  • 要驗證的圖片如下:

    (3)、簡單的命令:

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

    然后運(yùn)行:


    或者直接:

    print image_file_to_string('fnord.tif') 
    

    同樣能輸出結(jié)果!
    (4)、復(fù)雜一點的
    上面的只能對一些比較簡單的做處理,一
    原理:彩色轉(zhuǎn)灰度,灰度轉(zhuǎn)二值,二值圖像識別

    # 驗證碼識別,此程序只能識別數(shù)據(jù)驗證碼 
    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) 
     
    #由于都是數(shù)字 
    #對于識別成字母的 采用該表進(jìn)行修正 
    rep={'O':'0', 
     'I':'1','L':'1', 
     'Z':'2', 
     'S':'8' 
     }; 
     
    def getverify1(name): 
     #打開圖片 
     im = Image.open(name) 
     #轉(zhuǎn)化到灰度圖 
     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') #注意這里的圖片要和此文件在同一個目錄,要不就傳絕對路徑也行 
    

    運(yùn)行后效果:


    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Python驗證碼識別處理實例

    Python驗證碼識別處理實例:一、準(zhǔn)備工作與代碼實例 (1)安裝PIL:下載后是一個exe,直接雙擊安裝,它會自動安裝到C:\Python27\Lib\site-packages中去, (2)pytesser:下載解壓后直接放C:\Python27\Lib\site-packages(根據(jù)你安裝的Python路徑而不同),同時,新建一個py
    推薦度:
    標(biāo)簽: 處理 驗證碼 識別
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top