プログラミング勉強中の初心者です。
anaconda環境のPycharmにてconda経由でPytesseract,tesseract,pyocrをインストールし、
動作確認のため下記のコードを実行したのですが
Will use tool 'Tesseract (sh)'
Available languages: Traceback (most recent call last):
File "C:\Users.....\PycharmProjects\PysimpleGUI\XXXX.py", line 18, in <module>
lang = langs[0]
IndexError: list index out of range
と表記され実行できません
色々調べましたがごちゃごちゃになってわからないので解決策を教えてほしいです。
python
1from PIL import Image 2import sys 3 4import pyocr 5import pyocr.builders 6 7tools = pyocr.get_available_tools() 8if len(tools) == 0: 9 print("No OCR tool found") 10 sys.exit(1) 11tool = tools[0] 12print("Will use tool '%s'" % (tool.get_name())) 13 14 15langs = tool.get_available_languages() 16print("Available languages: %s" % ", ".join(langs)) 17lang = langs[0] 18print("Will use lang '%s'" % (lang))
試したこと
・anaconda promptにてconda listにてPytesseract,tesseract,pyocrをインストールされているか、バージョンが最新かの確認
→すべてインストール済、最新版(いずれもconda install -c conda-forge~ でインストール)
・anaconda環境のプロジェクトか確認→そう
・anaconda promptにてtesseract versionからtesseract --list-langsから言語を確認
→ jpnとjpn_vertの両方を確認
・試しに日本語がはっきり書かれている画像をカレントディレクトリに置き下記のコードでテキストを読み取らせる
python
1from PIL import Image 2import sys 3 4import pyocr 5import pyocr.builders 6pyocr.tesseract.TESSERACT_CMD = r'<full_path_to_your_tesseract.exe>' 7(pyocr.tesseract.TESSERACT_CMD = r'<full_path_to_your_pytesseract.exe>'としても同じ結果) 8tools = pyocr.get_available_tools() 9if len(tools) == 0: 10 print("No OCR tool found") 11 sys.exit(1) 12tool = tools[0] 13print("Will use tool '%s'" % (tool.get_name())) 14 15txt = tool.image_to_string(Image.open('test.png'),lang="jpn",builder=pyocr.builders.TextBuilder(tesseract_layout=6)) 16print(txt)
環境変数などの設定は行っていません。
実行の際TESSERACT_CMDの行抜きですと下記のようにエラーが出ました
python
1C:\Users\ユーザ名\anaconda3\python.exe C:\Users\fユーザ名\PycharmProjects\PysimpleGUI\....\....\XXX.py 2Will use tool 'Tesseract (sh)' 3Traceback (most recent call last): 4 File "C:\Users\ユーザ名\PycharmProjects\PysimpleGUI\....\....\XXX.py", line 15, in <module> 5 txt = tool.image_to_string(Image.open('test.png'),lang="jpn",builder=pyocr.builders.TextBuilder(tesseract_layout=6)) 6 File "C:\Users\ユーザ名\anaconda3\lib\site-packages\pyocr\tesseract.py", line 372, in image_to_string 7 raise TesseractError(status, errors) 8pyocr.error.TesseractError: (1, b'Error opening data file ./jpn.traineddata\r\nPlease make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.\r\nFailed loading language \'jpn\'\r\nTesseract couldn\'t load any languages!\r\nCould not initialize tesseract.\r\n') 9 10プロセスは終了コード 1 で終了しました 11
行を入れた際はNo OCR tool found と出ます。
未使用の import ステートメント 'import pyocr'
'imported module pyocr' の参照 'tesseract' が見つかりませんと表示される。
また、r'<full_path_to_your_tesseract.exe>'
の箇所はきちんとtesseract.exeの絶対パスを指定しています。
(anaconda prompt にて where tesseractで表示された絶対パスが同じであることを確認済)
anaconda promptにて、
set TESSDATA_PREFIX=C:\Users\ユーザー名\anaconda3\pkgs\tesseract-5.3.0-...........\share\tessdata
を実行後、再度コードを実行。
→試してうまくいかないので追記。
環境
・PyCharm Community Edition
・anaconda3
・windows10

回答1件
あなたの回答
tips
プレビュー