Contents - 目次(もくじ)
【Python編】OCRプログラミング入門講座 – OCRプログラミングで画像の特定領域を切り抜き
【cropメソッド – 画像の選択部分を切り抜き】
Google ColaboratoryのJupyterノートブックの開発環境で、OCRエンジンの「Tesseract OCR」(テッセラクトOCR)とPython用のOCRツールラッパーの「PyOCR」(パイOCR)を使って、指定した領域の文字を認識出来る光学文字認識プログラミングを実施してみましょう。
cropメソッドで画像の選択部分の領域を切り抜きして画像認識する方法を解説しています。
【Python】OCRプログラミング:特定の領域(画像の一部分)を指定する方法。
Tesseract OCR・PyOCR・Google Colaboratoryで光学文字認識入門
視聴時間:2分6秒
cropメソッドで画像の選択部分を切り抜きをする比較的簡単なOCR(Optical Character Recognition:光学文字認識)プログラミングのチュートリアル動画を作成してみました。
動画では、Google ColaboratoryのJupyterノートブックでOCRエンジンの「Tesseract OCR」(テッセラクトOCR)とPython用のOCRツールラッパーの「PyOCR」を使って光学文字認識プログラミングをしています。
今回は
・crop()(cropメソッド:OCRする画像の一部分を切り抜くメソッド)を利用
をすることで指定した領域の文字を認識出来るようにしています。また、画像領域の指定方法の解説をしています。
Pythonサンプルコード
すぐに使えるサンプルコードリンク:
OCR_basic_region_sample.ipynb(Google ColaboratoryのJupyterノートブック)
サンプルコードの使い方は動画を参照ください。
***** サンプルコード:はじめ ******
#OCRエンジンの「 Tesseract OCR 」(テッセラクトOCR)をインストールします。
!apt install tesseract-ocr libtesseract-dev tesseract-ocr-jpn
#PyOCRをインストールします。
!pip install pyocr
#OCR実行する画像をアップロードします。(アップロード後、画像を確認します)
#「ocr.png」「kaisetu.png」のところを変更して使ってみてください。
from IPython.display import Image,display_png
display_png(Image('ocr.png')) #ここを変更
display_png(Image('kaisetu.png')) #解説用の画像です、使う時はコードを消してください。
#OCRに挑戦
#「ocr.png」のところを変更して使ってみてください。
from PIL import Image
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
#OCRが使えるかチェック
if len(tools) == 0:
print('OCRツールが使えません')
sys.exit(1)
tool = tools[0]
print("インストールされているOCRツールは', %s" % (tool.get_name()) ,'です。\n Tesseract(テッセラクト)は光学文字認識のエンジンです。\n\n')
langs = tool.get_available_languages()
print(langs,'などの言語を指定できます。')
#画像の読み込み
input_img = Image.open("ocr.png") #ここを変更
#画像の特定領域を指定
img_region = input_img.crop((0, 0, 500, 200)) #画像の左上が原点。(x1, y1, x2, y2) 。ここの数字を変更してください。
#x1,y1は左上の端。x2,y2は右下の端
# OCRを実行する画像イメージや言語指定、オプション指定
txt = tool.image_to_string(
img_region,
lang='eng+jpn',
builder=pyocr.builders.TextBuilder() #オプション番号は必要に応じて変更してください。デフォルトは「3」
)
print('\n\nOCR(光学文字認識)の実行結果\n\n\n__________________\n\n',txt, '\n\n__________________\n\n')
***** サンプルコード:ここまで ******