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
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- javascript實現的簡單驗證碼效果程式碼例項JavaScript
- jquery 實現滑動條的簡單驗證jQuery
- python生成驗證碼,文字轉換為圖片Python
- js實現的驗證表單文字框和密碼框是否為空程式碼JS密碼
- Python驗證碼識別:利用pytesser識別簡單圖形驗證碼Python
- vue實現簡訊驗證碼登入Vue
- 【總結】Java實現簡訊驗證碼Java
- 簡單的數字驗證碼破解
- 一個簡單的驗證碼工具
- javascript實現文字框標籤驗證JavaScript
- SpringSceurity(4)---簡訊驗證碼功能實現Spring
- uniapp 實現簡訊驗證碼登入APP
- 使用TensorFlow 來實現一個簡單的驗證碼識別過程
- 超簡單的PHP驗證碼識別PHP
- 簡訊驗證實現方式
- easy-captcha實現驗證碼驗證APT
- 如何實現直播間原始碼重要的簡訊驗證碼功能原始碼
- Django實現驗證碼Django
- java實現驗證碼Java
- rails實現驗證碼AI
- ACCESS 密碼驗證/文字驗證中的小坑密碼
- javascript實現的身份證號碼驗證程式碼JavaScript
- 利用Dll實現通用密碼驗證框 (轉)密碼
- 夢網科技--手機簡訊驗證碼實現
- Kafka 簡單實驗二(Python實現簡單生產者消費者)KafkaPython
- PHP算式驗證碼和漢字驗證碼的實現方法PHP
- jQuery表單驗證簡單程式碼例項jQuery
- jquery登陸表單簡單驗證程式碼jQuery
- 簡訊驗證碼“最佳實踐”
- java 實現的XML schema 驗證(轉)JavaXML
- jQuery實現的表單註冊驗證程式碼例項jQuery
- Ext實現的身份證格式驗證程式碼
- js實現身份證號碼驗證JS
- 純CSS實現表單驗證CSS
- 實現elementUI表單的全域性驗證UI
- 在 SpringBoot 專案中簡單實現 JWT 驗證Spring BootJWT