OCR識別-python版(一)


需求:識別圖片中的文字信息
環境:windows系統

開發語言:python

使用工具類:1.pyocr
      2.PIL
      3.tesseract-ocr

步驟:

1.pyocr

網絡通直接使用命令:
pip install pyocr

網絡不通,轉至https://pypi.python.org/pypi/pyocr/0.4.1下載安裝

2.安裝pil
網絡通直接使用命令:
pip install PIL

網絡不通,轉至http://www.pythonware.com/products/pil/index.htm下載安裝

3.安裝tesseract-ocr

http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe

exe文件,下載后直接安裝,建議默認安裝過程中的選項,安裝目錄默認C:\Program Files (x86)\Tesseract-OCR,(嘗試安裝D盤后,在cmd中調用可以,但是在python中會出現找不到tesseract的配置目錄的問題,后續再研究)

 

代碼:

# coding=utf-8
__author__ = 'syq'

#https://github.com/tesseract-ocr
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
try:
    from pyocr import pyocr
    from PIL import Image
except ImportError:
    print '模塊導入錯誤,請使用pip安裝,pytesseract依賴以下庫:'
    print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'
    print 'http://code.google.com/p/tesseract-ocr/'
    raise SystemExit
tools = pyocr.get_available_tools()[:]
if len(tools) == 0:
    print("No OCR tool found")
    sys.exit(1)
print("Using '%s'" % (tools[0].get_name()))
print tools[0].image_to_string(Image.open('D:\\123.png'),lang='eng')
print tools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')
#print tools[0].image_to_string(Image.open('D:\\3535.png'),lang='chi_sim')

文件內容:

123.png

3434.png

輸出:

Using 'Tesseract (sh)'
7364
求彰只另UoCR第 1代

 

可以看到,在使用英文字庫(eng)情況下,對數字識別挺准確的,但是在使用中文簡體字庫(chi_sim)情況下,對中文文字識別結果有點不盡人意。

 

在整個過程中可能會遇到的問題

1.如果控制台直接輸出:“No OCR tool found”,說明未成功安裝tesseract-ocr,debug查看get_available_tools,在該方法中回去查看本機已經安裝有的ocr識別庫,有三種,

libtesseract,
tesseract,
cuneiform,

 本文使用的是第二種tesseract,

tesseract具體安裝請轉至。

2.在識別帶中文的圖片,會遇到報“allow_blob_division”的錯誤,

需要下載tesseract-ocr的中文庫,地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,里面包含tesseract多有的文字庫,chi_sim.traineddata為簡體中文庫,將該文件放至C:\Program Files (x86)\Tesseract-OCR\tessdata目錄下接下來的具體處理方法,轉至:http://www.cnblogs.com/syqlp/p/5460971.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM