PythonとTesseractを使用して、画像から文字を読み取る方法について説明します。この記事では、Tesseractのlayout
オプションの選択に焦点を当てます。
Tesseractとは
Tesseractは、OCR(Optical Character Recognition)技術を使用して画像から文字を読み取るためのオープンソースのエンジンです。
Tesseractのインストール
Tesseractのインストールは以下のように行います。
# Windows
# https://github.com/UB-Mannheim/tesseract/wiki
# macOS
brew install tesseract
# Linux
sudo apt install tesseract-ocr
pytesseractとPillowのインストール
PythonでTesseractを使用するためには、pytesseractというライブラリが必要です。また、画像を扱うためにはPillowも必要です。
pip install pytesseract Pillow
OCRの実装
以下に、PythonとTesseractを使用して画像から文字を読み取る基本的なコードを示します。
import sys
import pytesseract
from PIL import Image
def image_to_text(image_path):
# 画像を読み込む
img = Image.open(image_path)
# TesseractでOCRを実行
text = pytesseract.image_to_string(img, lang='jpn')
return text
if __name__ == "__main__":
if len(sys.argv) > 1:
image_path = sys.argv[1] # コマンドライン引数から画像ファイルのパスを取得
text = image_to_text(image_path)
print(text)
else:
print("Usage: python app.py <path_to_image>")
Tesseractのlayoutオプション
Tesseractのlayout
オプションは、OCRの精度に大きな影響を与えます。このオプションは、画像のレイアウトをどのように解釈するかをTesseractに指示します。
以下に、各layout
オプションの説明を示します。
- 0: Orientation and script detection (OSD) only.
- 1: Automatic page segmentation with OSD.
- 2: Automatic page segmentation, but no OSD, or OCR. (not implemented)
- 3: Fully automatic page segmentation, but no OSD. (Default)
- 4: Assume a single column of text of variable sizes.
- 5: Assume a single uniform block of vertically aligned text.
- 6: Assume a single uniform block of text.
- 7: Treat the image as a single text line.
- 8: Treat the image as a single word.
- 9: Treat the image as a single word in a circle.
- 10: Treat the image as a single character.
- 11: Sparse text. Find as much text as possible in no particular order.
- 12: Sparse text with OSD.
- 13: Raw line. Treat the image as a single text line, bypassing hacks that are Tesseract-specific.
適切なlayout
オプションを選択することで、OCRの精度を向上させることが可能です。
以上が、PythonとTesseractを使用したOCRの実装についての基本的なガイドです。この情報が、あなたのプロジェクトに役立つことを願っています。.