Python實現簡單驗證碼的轉文字
宣告:本文章中的驗證碼爬取和識別僅用作試驗!
1.首先就是驗證碼的爬取,這裡我爬取的是學校oj的註冊驗證碼。背景基本沒有噪聲,容易處理。
2.在獲得驗證碼圖片的二進位制資料後,我們使用以下程式碼實現對圖片的本地儲存:
def save_img(content):
'''
os.getcwd()方法用於返回當前的工作目錄;
md(content).hexdigest()根據圖片的二進位制程式碼產生md5碼;
wb為寫入二進位制資料
'''
file_path = '{0}/{1}.{2}'.format(os.getcwd(), md5(content).hexdigest(), 'jpg')
print(file_path)
if not os.path.exists(file_path):
with open(file_path, 'wb') as f:
f.write(content)
f.close()
3.使用BytesIO對二進位制檔案進行封裝,並用Image.open()開啟。
def picture_to_string(content):
#使用BytesIO對二進位制進行封裝
file_like = BytesIO(content)
img = Image.open(file_like)
return img
4.圖片轉文字
def get_string(img):
#轉化為灰度
gray = img.convert('L')
#二值化演算法,閾值為140
out = get_bin_table(gray,140)
#儲存處理後的圖片
out.save('example','png')
#使用pytesseract.image_to_string()方法提取處理後圖片的文字
word = pytesseract.image_to_string(out)
ascii_word = ''.join(c for c in word if c in string.ascii_letters or c in string.digits)
return ascii_word
def get_bin_table(img,threshold):
"""
獲取灰度轉二值的對映table
:param threshold:
:return:
"""
pixdata = img.load()
w,h = img.size
print(w,h)
for x in range(w):
for y in range(h):
if pixdata[x,y] < threshold:
pixdata[x,y] = 0
else:
pixdata[x,y] = 255
return img
5.效果
相關文章
- [Python]實現簡訊驗證碼的傳送Python
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- 使用 ActionScript 實現簡單滑動驗證碼識別
- jquery 實現滑動條的簡單驗證jQuery
- vue實現簡訊驗證碼登入Vue
- SpringSceurity(4)---簡訊驗證碼功能實現Spring
- uniapp 實現簡訊驗證碼登入APP
- 【總結】Java實現簡訊驗證碼Java
- 簡單的數字驗證碼破解
- 使用TensorFlow 來實現一個簡單的驗證碼識別過程
- 在 SpringBoot 專案中簡單實現 JWT 驗證Spring BootJWT
- javascript實現文字框標籤驗證JavaScript
- 簡訊驗證實現方式
- 如何實現直播間原始碼重要的簡訊驗證碼功能原始碼
- easy-captcha實現驗證碼驗證APT
- ACCESS 密碼驗證/文字驗證中的小坑密碼
- Django實現驗證碼Django
- python hex轉ascii轉換Python程式碼的簡單方法PythonASCII
- 簡單的python程式碼實現語音朗讀Python
- 簡訊驗證碼“最佳實踐”
- 使用 Tcl 實現簡單的文字識別程式
- 使用 Fantom 實現簡單的文字識別程式
- 使用 Elixir 實現簡單的文字識別程式
- TP5 實現簡訊驗證碼註冊功能
- 純CSS實現表單驗證CSS
- 實現elementUI表單的全域性驗證UI
- web動態驗證碼的實現Web
- 網路驗證碼的進化:從簡單圖文到無感驗證
- Flutter花式玩轉TextField,寫一個驗證碼輸入框超簡單!Flutter
- Flutter上你需要一個簡單實用的驗證碼輸入WidgetFlutter
- Spring Security Oauth2.0 實現簡訊驗證碼登入SpringOAuth
- JS實現簡單的判斷文字框長度JS
- 利用jQuery實現表單驗證功能jQuery
- KgCaptcha驗證碼實現筆記GCAPT筆記
- java圖形驗證碼實現Java
- 簡單幾行程式碼輕鬆實現大文字平行計算行程
- 阿里雲簡訊服務實現網站手機簡訊驗證碼阿里網站
- Python3阿里大魚簡訊驗證碼Python阿里