PyOCRとは何か?
tesseract-ocrをpythonから使えるようにしたもの。pythonからtesseractを呼び出して画像から文字を認識する。
詳しくはhttps://github.com/openpaperwork/pyocr
前提
- tesseractをインストールしてあること
- pythonをインストールしてあること
- 私の環境はWindows10
Install
pip install pyocr
簡単使い方
GitHubにあるコードを見ながらtesseractをpythonから使えるかどうかの確認をする。パスはpythonのコードの中で通すことにした。
import sys
import os
import pyocr
import pyocr.builders
TESSERACT_PATH = 'C:\\Users\\username\\AppData\\Local\\Tesseract-OCR'
TESSDATA_PATH = 'C:\\Users\\username\\AppData\\Local\\Tesseract-OCR\\tessdata'
os.environ["PATH"] += os.pathsep + TESSERACT_PATH
os.environ["TESSDATA_PREFIX"] = TESSDATA_PATH
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'
langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))
(_venv) E:\projects\python_tess>python inst_test.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd
Will use lang 'eng'
文字認識
さっそく使ってみる。画像は使い回しimport sys
import os
import pyocr
import pyocr.builders
from PIL import Image
TESSERACT_PATH = 'C:\\Users\\username\\AppData\\Local\\Tesseract-OCR'
TESSDATA_PATH = 'C:\\Users\\username\\AppData\\Local\\Tesseract-OCR\\tessdata'
os.environ["PATH"] += os.pathsep + TESSERACT_PATH
os.environ["TESSDATA_PREFIX"] = TESSDATA_PATH
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'
langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))
txt = tool.image_to_string(
Image.open('imouto.png'),
lang='jpn',
builder=pyocr.builders.TextBuilder()
)
print(txt)
(_venv) E:\projects\python_tess>python inst_test.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd
Will use lang 'eng'
妹 が あ な た を 呼 ん で い る 。 ' お 兄 ち ゃ ん ?」
0 件のコメント:
コメントを投稿