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"
以上!