質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

590閲覧

Python OCRのエラー tool.image_to_string

QrQr

総合スコア0

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/02/06 14:00

実現したいこと

画像を読み込んでその画像に記されている文字を結果として出力する

発生している問題・分からないこと

OCRの実行の部分で壁に当たっている

エラーメッセージ

error

1TesseractError: (1, b'Error opening data file /usr/share/tesseract-ocr/4.00/egn.traineddata\nPlease make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.\nFailed loading language \'egn\'\nTesseract couldn\'t load any languages!\nCould not initialize tesseract.\n')

該当のソースコード

python

1from PIL import Image 2import sys 3import pyocr 4import pyocr.builders 5import cv2 6import numpy as np 7import matplotlib.pyplot as plt 8 9# OpenCVの画像データをPIL形式に変換する関数 10def cv2pil(cv_img): 11 return Image.fromarray(cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)) 12 13# 画像のパスのリスト 14image_paths = [ 15 '/content/drive/MyDrive/PHOTO/ORIGINAL_PHOTO.JPG', 16 '/content/drive/MyDrive/PHOTO/ORIGINAL_PHOTO1.png', 17 '/content/drive/MyDrive/PHOTO/ORIGINAL_PHOTO2.png', 18 '/content/drive/MyDrive/PHOTO/ORIGINAL_PHOTO3.png', 19 '/content/drive/MyDrive/PHOTO/ORIGINAL_PHOTO4.png' 20 # 他の画像のパスも追加 21] 22 23# OCRの準備 24tools = pyocr.get_available_tools() 25if len(tools) == 0: 26 print("No OCR tool found") 27 sys.exit(1) 28tool = tools[0] 29 30# 画像ごとに処理 31for image_path in image_paths: 32 # 画像の読み込み 33 img_or = cv2.imread(image_path) 34 35 # 画像が正しく読み込まれたか確認 36 if img_or is not None: 37 # 画像をMatplotlibを使って表示 (BGRからRGBに変換) 38 plt.imshow(cv2.cvtColor(img_or, cv2.COLOR_BGR2RGB)) 39 plt.axis('off') # 軸を非表示にする 40 plt.show() 41 else: 42 print(f"Error: Unable to read the image at path {image_path}.") 43 continue 44 45 # 以下に画像処理やOCRの処理を追加する 46 # 例:グレースケール化 47 img_gray = cv2.cvtColor(img_or, cv2.COLOR_BGR2GRAY) 48 # 他の処理も追加 49 50 # OCR実行 51 temp_pil_im = cv2pil(img_or) # 画像データをPIL形式に変換 52 txt = tool.image_to_string( 53 temp_pil_im, 54 lang="egn", # 英語の言語データを使用する 55 builder=pyocr.builders.TextBuilder(tesseract_layout=6)) 56 print(txt)

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

同様のエラーがないか調べたが複雑で分かりずらく照らし合わせられなかった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/02/06 14:06

lang="egn", # 英語の言語データを使用する egn ではなくて eng でしょうね。
QrQr

2024/02/06 14:20

その修正をしてみたのですが TesseractError: (1, b'Error opening data file /usr/share/tesseract-ocr/4.00/eng.traineddata\nPlease make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.\nFailed loading language \'eng\'\nTesseract couldn\'t load any languages!\nCould not initialize tesseract.\n') とエラーがまだ出てきます。
melian

2024/02/06 14:28

eng.traineddata は tesseract-ocr-eng パッケージに含まれていますので、apt コマンドでインストールしてください。 !apt install tesseract-ocr-eng
QrQr

2024/02/06 14:32

TesseractError: (1, b'Error opening data file /usr/share/tesseract-ocr/4.00/eng.traineddata\nPlease make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.\nFailed loading language \'eng\'\nTesseract couldn\'t load any languages!\nCould not initialize tesseract.\n') 実行したのですがエラー内容同じのようでした、、
melian

2024/02/06 14:39

こちらで試してみると、所定の位置に eng.traineddata がインストールされます。 !apt install tesseract-ocr-eng !ls -l /usr/share/tesseract-ocr/4.00/tessdata total 14348 drwxr-xr-x 2 root root 4096 Feb 2 14:48 configs -rw-r--r-- 1 root root 4113088 Sep 15 2017 eng.traineddata -rw-r--r-- 1 root root 10562727 Sep 15 2017 osd.traineddata -rw-r--r-- 1 root root 572 Feb 9 2022 pdf.ttf drwxr-xr-x 2 root root 4096 Feb 2 14:48 tessconfigs
melian

2024/02/06 15:01

Google Colaboratory 上で最初に pyocr と tessearct-ocr-eng をインストールします。 !pip install pyocr !apt install tesseract-ocr-eng 次に、画像ファイルをアップロードして質問にあるコードを実行してみたところ、(egn を eng に修正)、エラーは発生せずに文字列を抽出できました。
guest

回答1

0

画像ファイルをアップロードして質問にあるコードを実行してみたところ、(egn を eng に修正)、エラーは発生せずに文字列を抽出できました。

参考までに、Google Colaboratory 上での実行状況を載せておきます。

Install packages
イメージ説明

OCR
イメージ説明

投稿2024/02/06 15:22

melian

総合スコア21118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問