未来の自分へ知識谷金

ゆーきのエンジニアブログ
PythonVisual Studioプログラミング

【Python】画像から文字列を認識する(OCR)【コード】

OCRPythonVisual StudioVisual Studio 2022

PythonでTesseract-OCRを使って画像から文字認識をします。

まず、Tesseract-OCRをインストールします。

import pyocr
path='C:\\Program Files\\Tesseract-OCR\\'
os.environ['PATH'] = os.environ['PATH'] + path
pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
tools = pyocr.get_available_tools()
tool = tools[0]
langs = tool.get_available_languages()

画像の変換関数を用意しておきます。

import cv2
from PIL import Image

class Converter(object):
    def cv2pil(image):
        new_image = image.copy()
        if new_image.ndim == 2:
            pass
        elif new_image.shape[2] == 3:
            new_image = cv2.cvtColor(new_image, cv2.COLOR_BGR2RGB)
        elif new_image.shape[2] == 4:
            new_image = cv2.cvtColor(new_image, cv2.COLOR_BGRA2RGBA)
        new_image = Image.fromarray(new_image)
        return new_image

文字を認識するコードを書いてみました。

temp_image = Converter.cv2pil(image)
builder = pyocr.builders.LineBoxBuilder(tesseract_layout=6)
wordbox = tool.image_to_string(temp_image, lang="jpn", builder=builder)
for word in wordbox:
    print(word.content.replace(" ", ""))
    result += word.content.replace(" ", "")
    result += "\r\n"

以上!