關於python進行驗證碼識別解決辦法

2022-05-22 22:09:08 字數 2807 閱讀 7683

python-tesseract

pip install pytesseract

2.1、ubuntu 系統 

sudo apt install tesseract-ocr

2.2、win 系統

1、選擇適合的版本(32位 64位)

tesseract的exe安裝檔案

2、配置環境變數(預設安裝位置)

ps:安裝時可以將語言包選上(比如不選擇的話,預設的只能解析英文)

c:\program files\tesseract-ocr

3、測試 [有正常返回未成功]

tesseract

tesseract -v

tesseract --list-langs 檢視支援的語言

try

:

from pil import

image

except

importerror:

import

image

import

pytesseract

img = image.open("路徑"

)img.show()

resp =pytesseract.image_to_string(img)

print(resp)

try

:

from pil import

image

except

importerror:

import

image

import

pytesseract

defconvert_img(img,threshold):

"""灰度加二極化

"""img = img.convert("

l") #

處理灰度

pixels =img.load()

for x in

range(img.width):

for y in

range(img.height):

if pixels[x, y] >threshold:

pixels[x, y] = 255

else

: pixels[x, y] =0

return

imgimg = image.open("路徑"

)img = convert_img(img ,150)

img.show()

resp =pytesseract.image_to_string(img)

print(resp)

try

:

from pil import

image

except

importerror:

import

image

import

pytesseract

defconvert_img(img, threshold):

img = img.convert("

l") #

處理灰度

pixels =img.load()

for x in

range(img.width):

for y in

range(img.height):

if pixels[x, y] >threshold:

pixels[x, y] = 255

else

: pixels[x, y] =0

data =img.getdata()

w, h =img.size

count =0

for x in range(1, h - 1):

for y in range(1, h - 1):

#找出各個畫素方向

mid_pixel = data[w * y +x]

if mid_pixel ==0:

top_pixel = data[w * (y - 1) +x]

left_pixel = data[w * y + (x - 1)]

down_pixel = data[w * (y + 1) +x]

right_pixel = data[w * y + (x + 1)]

if top_pixel ==0:

count += 1

if left_pixel ==0:

count += 1

if down_pixel ==0:

count += 1

if right_pixel ==0:

count += 1

if count > 4:

img.putpixel((x, y), 0)

return

imgimg = image.open("路徑"

)img = convert_img(img,150)

img.show()

resp =pytesseract.image_to_string(img)

print(resp)

是原始碼找不到安裝的tesseract程式

點選 image_to_string 進入搜尋 tesseract_cmd 關鍵字 將值修改為安裝位置

例 tesseract_cmd = r'

c:\program files\tesseract-ocr\tesseract.exe

'

Python 驗證碼識別

使用pip安裝pytessseract,如圖所示 例項 識別該中的字元 指令碼 import os os.chdir c python34 lib site packages pytesser from pytesser import from pytesseract import image to...

python 驗證碼識別

一 python識別簡單驗證碼 1 2 func 實現簡單驗證碼獲取 3 4import pytesseract 5from pil import image67 首先通過image開啟乙個 9 然後通過方法將image物件轉化為字串10 code pytesseract.image to stri...

python驗證碼識別

驗證碼識別 識別驗證碼的操作 人工肉眼的識別 第三方自動識別 雲打碼 模擬登入 爬取基於某些基於使用者的使用者資訊.需求 對人人網進行模擬登入 點選登入按鈕之後會發起乙個post請求 post請求中會攜帶登陸之前錄入的相關的登入資訊 使用者名稱,密碼,驗證碼.驗證碼 每次請求都會變化 需求 爬取當前...