網上有很多種圖片文字識別方法,我這選了幾種,做下比較
代碼在這:
import tesserocr
from PIL import Image
import pytesseract
def a():
#這是一種辦法,使用tesserocr
image=Image.open('xxx.jpg')
result=tesserocr.image_to_text(image)
print('使用tesserocr:',result)
print('*'*50)
def b():
# tesserocr更簡便的方法
print('使用tesserocr簡便方法:',tesserocr.file_to_text('xxx.jpg'))
print('*'*50)
def c():
# 這是另一種辦法,pytesseract
image=Image.open('xxx.jpg')
# result = pytesseract.image_to_string(image ,lang='chi_sim')
result = pytesseract.image_to_string(image)
print('使用pytesseract:',result)
print('*' * 50)
a()
b()
c()
首先,漢字的識別,網上最多的是用pytesseract來識別
def c():
# 這是另一種辦法,pytesseract
image=Image.open('xxx.jpg')
result = pytesseract.image_to_string(image ,lang='chi_sim')
print(result)
print('*' * 50)
c()
第一次,我們選擇的是黑白比較分明的圖片
識別效果:
總結:總體來說還行
第二次,使用黑白不那麼分明的圖片:
識別效果:
總結,似乎跟第一次差不太多
第三次,用黑白分明更弱些的圖片:
識別效果:
總結:可以說是一塌糊塗了
然後,咱們試下識別英文,三種方法都可以,正好做下比較
第一次,使用顏色比較重的圖片:
識別效果:
總結:可以看到,全對,由此可見,這些方法對英文的支持真不錯
第二次,用顏色稍淡些的圖片:
識別效果:
總結:tesserocr的簡便寫法出了點問題,其他兩個還是全對
第三次,我們用一個帶顏色的圖片試試:
識別效果:
總結:顯而易見,沒問題
實驗效果僅供參考,另外實驗中發現數字的識別率和英文差不多,所以也就沒寫上來。其次,有干擾線或字母扭曲的識別率很差