欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python3中識別圖形驗證碼的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

為休寧縣等地區(qū)用戶提供了全套網頁設計制作服務,及休寧縣網站建設行業(yè)解決方案。主營業(yè)務為成都網站建設、成都做網站、休寧縣網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

小編給大家分享一下Python3中識別圖形驗證碼的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

本節(jié)我們首先來嘗試識別最簡單的一種驗證碼,圖形驗證碼,這種驗證碼出現(xiàn)的最早,現(xiàn)在也很常見,一般是四位字母或者數(shù)字組成的,例如中國知網的注冊頁面就有類似的驗證碼,鏈接為:http://my.cnki.net/elibregister/commonRegister.aspx,頁面如圖 8-1 所示:

Python3中識別圖形驗證碼的方法

                                                                                圖 8-1 知網注冊頁面

表單的最后一項就是圖形驗證碼,我們必須完全輸入正確圖中的字符才可以完成注冊。

1.本節(jié)目標

本節(jié)我們就以知網的驗證碼為例,講解一下利用 OCR 技術識別此種圖形驗證碼的方法。

2. 準備工作

識別圖形驗證碼需要的庫有 Tesserocr,如果沒有安裝可以參考第一章的安裝說明。

3. 獲取驗證碼

為了便于實驗,我們先將驗證碼的圖片保存到本地,以供測試。

打開開發(fā)者工具,找到驗證碼元素,可以看到這是一張圖片,它的 src 屬性是 CheckCode.aspx,在這里我們直接將這個鏈接打開:http://my.cnki.net/elibregister/CheckCode.aspx,就可以看到一個驗證碼,直接右鍵保存下來即可,將名稱命名為 code.jpg,如圖 8-2 所示:

Python3中識別圖形驗證碼的方法

    圖 8-2 驗證碼

這樣我們就可以得到一張驗證碼圖片供下面測試識別使用了。

4. 識別測試

接下來我們新建一個項目,將驗證碼圖片放到項目根目錄下,用 Tesserocr 庫來識別一下該驗證碼試試,代碼如下:

import tesserocr
from PIL import Image
image = Image.open('code.jpg')
result = tesserocr.image_to_text(image)
print(result)

在這里我們首先新建了一個 Image 對象,然后調用了 Tesserocr 的 image_to_text() 方法,傳入該 Image 對象即可完成識別,實現(xiàn)過程非常簡單,識別結果如下:

JR42

另外 Tesserocr 還有一個更加簡單的方法直接將圖片文件轉為字符串可以達到同樣的效果,代碼如下:

import tesserocr
print(tesserocr.file_to_text('image.png'))

不過經測試此種方法的識別效果不如上一種方法好。

5. 驗證碼處理

如上的圖片識別基本沒有難度,只是新建一個 Image 對象,然后調用 image_to_text() 方法即可得出圖片的識別結果。

接下來我們換一個驗證碼試一下,命名為 code2.jpg,如圖 8-3 所示:

Python3中識別圖形驗證碼的方法

     圖 8-3 驗證碼

重新用下面的代碼測試一下:

import tesserocr
from PIL import Image
image = Image.open('code2.jpg')
result = tesserocr.image_to_text(image)
print(result)

這時可以看到如下輸出結果:

FFKT

發(fā)現(xiàn)這次識別和實際的結果有所偏差,這是因為驗證碼內的多余線條干擾了圖片的識別。

對于這種情況,我們還需要做一下額外的處理,如轉灰度、二值化等操作。

我們可以利用 Image 對象的 convert() 方法參數(shù)傳入 L 即可將圖片轉化為灰度圖像,代碼如下:

image = image.convert('L')
image.show()

傳入 1 即可將圖片進行二值化處理:

image = image.convert('1')
image.show()

另外我們還可以指定二值化的閾值,上面的方法采用的是默認閾值127,不過我們不能用原圖直接轉化,可以先轉為灰度圖像,然后再指定二值化閾值轉化,代碼如下:

image = image.convert('L')
threshold = 80
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
image = image.point(table, '1')
image.show()

在這里我們指定了一個變量 threshold 代表二值化閾值,閾值設置為 80,處理之后我們看一下結果,如圖 8-4 所示:

Python3中識別圖形驗證碼的方法

   圖 8-4 處理結果

經過處理之后我們發(fā)現(xiàn)原來的驗證碼中的線條已經被去除了,而且整個驗證碼變得黑白分明,這時重新識別驗證碼,代碼如下:

import tesserocr
from PIL import Image
image = Image.open('code2.jpg')
image = image.convert('L')
threshold = 127
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
image = image.point(table, '1')
result = tesserocr.image_to_text(image)
print(result)

即可發(fā)現(xiàn)運行結果變成了:

PFRT

識別正確。

可見對于一些有干擾的圖片,我們做一些灰度和二值化處理,會提高其識別正確率。

以上是Python3中識別圖形驗證碼的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道!

網站欄目:Python3中識別圖形驗證碼的方法-創(chuàng)新互聯(lián)
網站地址:http://aaarwkj.com/article36/pjdsg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網頁設計公司、關鍵詞優(yōu)化App開發(fā)、企業(yè)建站、網站制作虛擬主機

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網頁設計公司
中文字幕二区三区人妻| 日本三卡=卡无人区| 人妻熟女一区二区aⅴ在线视频| 成人午夜激情在线免费观看| 欧美视频免费一级黄片| 日本在线免费观看91| 久久成人激情免费视频| 日韩 高清 一区二区| 丝袜美腿美女日韩在线| 国产精品美女自拍视频| 中文字幕人妻丝乱一区三区| 91午夜福利视频免费播放| 精品在线免费视频观看| 熟女俱乐部五十路六十路| 在线亚洲av不卡一区二区三区| 日本美女阴部毛茸茸视频| 日本东京一区二区三区| 中文字幕乱码日韩一二三区| 在线观看男人的天堂av| 日本中文字幕免费一区| 欧美日韩精品综合国产| 人人看男人的天堂东京| 欧美黄片不用下载在线观看| 日本在线一区二区视频麻豆 | 97在线视频观看视频在线| 麻豆午夜视频免费在线观看| 欧美黄片在线免费观看视频| 国产三级三级精品久久| 自偷自拍亚洲综合精品| 亚洲少妇熟女一区二区三区| 久久国产精品乱码电影| 亚洲一区麻豆文化传媒| 中文字幕人妻丝袜二区| 亚洲精品一区二区三区高潮| 夜福利国产视频大屁股| 国产亚洲欧美精品久久久久久| 成人性生交视频免费看| 99久久精品免费国产一区| 四虎在线观看免费资源| 日韩 高清 一区二区| 国内自拍韩国资源在线|