1. 程式人生 > >python 豆瓣驗證碼識別總結

python 豆瓣驗證碼識別總結

ops hold 成功 驗證碼識別 濾波 put else 函數 直接

總結: pytesseract 識別比較標準的圖片 識別成功率 還是不錯的。

驗證碼的圖片識別 需要先處理好 再用pytesseract 識別

from PIL import Image # 圖片處理
import pytesseract # 識別

im = Image.open(‘/home/yuexinpeng/profit.jpg‘)
out = im
aa = pytesseract.image_to_string(out)
print(aa)

# 濾波處理 去掉背景色
threshold = 37
width, height = im.size
for i in range(0, width):
for j in range(0, height):
p = im.getpixel((i, j))
r, g, b = p
if r > threshold or g > threshold or b > threshold:
# self.frame[i, j] = WHITE
im.putpixel((i,j),(255,255,255))
else:
# self.frame[i, j ] = BLACK
im.putpixel((i,j),(0,0,0))

# 保存和識別圖片

im = im.filter(ImageFilter.MedianFilter())
im.save(‘profit-filter.jpg‘)
aa = pytesseract.image_to_string(im)
print(aa)

參考:

image圖片處理函數

https://blog.csdn.net/l297969586/article/details/70240123

驗證處理思路

http://ju.outofmemory.cn/entry/162281

python 圖像處理模塊
1. 安裝 pytesseract模塊是會自動安裝Pillow模塊。
pillow 為標準圖像處理庫
pytesseract 模塊用於文字識別
pip3 install pytesseract
2. 安裝 tesseract-ocr 這個用於文字識別
pytesseract 需要調用它
https://github.com/tesseract-ocr/tesseract/wiki
參考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000
https://blog.csdn.net/dcba2014/article/details/78969658
https://blog.csdn.net/iodjSVf8U1J7KYc/article/details/79308086
常見錯誤:
1. 註意使用python版本和安裝模塊的版本
2. ImageOps 需要使用 from PIL import ImageOps
不能直接使用PIL.ImageOps
3. 先引入
from lxml import html
from pyquery import PyQuery as pq
在引入
# 圖片識別
from PIL import ImageOps
from PIL import Image
import pytesseract
發現報錯誤OSError: codec configuration error when reading image file
問題感覺比較奇葩
解決: 將圖片庫的引入在 pqquery 之前

python 豆瓣驗證碼識別總結