【Python】画像ファイル内のテキストを抽出する【OCR】

Pythonで
画像ファイル内のテキストを・・・

画像ファイル内のテキスト
画像ファイル内のテキスト


抽出できます!
※OCRできます。
※精度はそこそこです。

抽出されたテキスト
抽出されたテキスト


バッチファイルから
 ・無料のOCRエンジン「tesseract-ocr」
を実行することで実現します!
※「tesseract-ocr」のインストールが必要です。

tesseract-ocrのダウンロードとインストール

以下の記事の「tesseract-ocrのダウンロード」と「tesseract-ocrのインストール」をご確認ください。

Pythonライブラリのインストール

サードパーティのPythonライブラリである以下2つをインストールします。

・pytesseract
・Pillow

pip install pytesseract Pillow

コード

ここでは例として
 ・デスクトップ配下の画像ファイル「sample_gazou.png」から
 ・テキストを抽出
します。
※テキストファイルを出力します。

画像ファイル「sample_gazou.png」内のテキスト
画像ファイル「sample_gazou.png」内のテキスト
from PIL import Image
import pytesseract

# Tesseract OCRの実行ファイル
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
# 画像ファイル
image_path = r"C:\Users\lunch\Desktop\sample_gazou.png"
# 出力ファイル
output_file = r"C:\Users\lunch\Desktop\output.txt"

# 画像を開く
image = Image.open(image_path)
# 画像から文字を抽出
text = pytesseract.image_to_string(image, lang="jpn")
# 結果をファイル出力
with open(output_file, "w", encoding="shift_jis") as file:
    file.write(text)

以下を指定します(5~9行目)。
※状況に応じて任意の値を指定してください。

・Tesseract OCRの実行ファイル
・画像ファイル
・出力ファイル

「PIL(Pillow)」の「Image」モジュールの「open」メソッドにより、画像を開きます(12行目)。

「pytesseract」の「image_to_string」メソッドにより、画像から文字を抽出します(14行目)。
※抽出するテキストが「日本語 」のため、「lang=”jpn”」としています。

実行結果

画像ファイル内のテキストを抽出できました。
※テキストファイルを出力できました。

実行結果①
実行結果①
実行結果②
実行結果②
実行結果③
実行結果③

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●サードパーティのPythonライブラリ「PIL(Pillow)」の「Image」モジュール


●サードパーティのPythonライブラリ「pytesseract」

タイトルとURLをコピーしました