PythonでPNGをテキストに出力するOOPを作成しよう!
スポンサーリンク

PythonでPDFを画像に変更するOOPを作成しよう

本コードはwindowsとMACに対応しているはずですが、Windowsでのみ動作検証を行っています。

  1. tesseractをインストールします。 MAC:brew install tesseractでtesseractをDL、WIN:tesseract-ocr-w64-setup-v5.2.0.20220712.exeをインストール
  2. インストール時に日本語化ツールをインストールすることを忘れないこと *参照:https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/
  3. main.pyと同じ階層に「img」フォルダを作成します。
  4. 文字抽出をしたいpngファイルをimgフォルダに格納します
  5. 以下のコードを実行します
# main.pyの中身


from PNG2TXT import PNGtoTXT

p2t = PNGtoTXT()
p2t.PNGtoTXT()
# PNG2TXT.pyの中身


# import Pillowで解決
from PIL import Image
# MAC:brew install tesseractでtesseractをDL
# WIN:tesseract-ocr-w64-setup-v5.2.0.20220712.exeをインストール
# インストール時に日本語化ツールをインストールすることを忘れないこと
# 参照:https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/
import pyocr
import pyocr.builders
from glob import glob


class PNGtoTXT:
    def __init__(self):
        self.img_list = glob('./img/*png')
        self.len_img = len(self.img_list)
        self.curr_img_num = 0
        try:
            pyocr.tesseract.TESSERACT_CMD = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
        except:
            pass

    def PNGtoTXT(self):
        output = ""
        for n in range(self.len_img):
            img = Image.open(self.img_list[self.curr_img_num])
            tools = pyocr.get_available_tools()
            tool = tools[0]
            text = tool.image_to_string(
                img,
                lang="jpn",
                builder=pyocr.builders.TextBuilder(tesseract_layout=4)
            )
            output += f"{text}\n\n"
        with open("output.txt", encoding="utf-8_sig", mode="w") as file:
            file.write(output)

ぜひ参考にしてください!また!

Twitterでフォローしよう

おすすめの記事