実行環境
OS : Windows7 64bit
python : 3.6.3
tesseract : tesseract-ocr-setup-3.05.01
pyocr : たしか0.6
準備
1. Windows版tesseract-ocrのインストール
tesseract-ocrのインストーラーを使ってインストールする。
2. tesseract-ocrのpathを通す
なぜかよくわからないがpathが通っていないので、インストール後、”C:\Program Files (x86)\Tesseract-OCR”をPathに追加する。
また、TESSDATA_PREFIXの値をC:\Program Files (x86)\Tesseract-OCR\tessdataにする。
3. PCの再起動
一度再起動しないとpyocrがtesseractを認識してくれなかった。
4. Aanaconda promptからpyocrのインストール
以上で準備は完了。
実際にPythonでOCRスクリプトを作ってみた。
PythonでOCRをするためにここを参考に以下のコードを実行した。
from PIL import Image import sys import pyocr import pyocr.builders tools = pyocr.get_available_tools() if len(tools) == 0: print("No OCR tool found") sys.exit(1) tool = tools[0] print("Will use tool '%s'" % (tool.get_name())) langs = tool.get_available_languages() print("Available languages: %s" % ", ".join(langs)) lang = langs[0] print("Will use lang '%s'" % (lang))
結果
Will use tool 'Tesseract (sh)' Available languages: eng, equ, jpn, osd Will use lang 'eng'(解決済み、ただし原因はよくか判らない)
'Tesseract (sh)'はあるのに、'unable to get languages'?というエラーが出た。エラー内容
Will use tool 'Tesseract (sh)' Traceback (most recent call last):</code> File "<ipython-input-2-9c8beca4f5b7>", line 1, in <module> runfile('G:/Python/OCR/test.py', wdir='G:/Python/OCR') File "C:\ProgramData\Anaconda3\envs\opencv\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile execfile(filename, namespace) File "C:\ProgramData\Anaconda3\envs\opencv\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "G:/Python/OCR/test.py", line 23, in <module> langs = tool.get_available_languages() File "C:\ProgramData\Anaconda3\envs\opencv\lib\site-packages\pyocr\tesseract.py", line 406, in get_available_languages raise TesseractError(ret, "unable to get languages") TesseractError: (1, 'unable to get languages')一度、Windowsにインストールしたtesseractをアンインストールして、再度上記コードを実行。
No OCR tool found An exception has occurred, use %tb to see the full traceback.</code> SystemExit: 1 C:\ProgramData\Anaconda3\envs\opencv\lib\site-packages\IPython\core\interactiveshell.py:2918: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)tesseractをアンインストールすると'No OCR tool found'となったので、tesseractは一応認識されていた模様。
おそらく、TESSDATA_PREFIXの値をC:\Program Files (x86)\Tesseract-OCR\tessdataにすることで解決できたと勝手に思っている。