python 豆瓣驗證碼識別總結
總結: 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 豆瓣驗證碼識別總結