Python OpenCV で文字認識(OCR)
Python OpenCV で文字認識(OCR)をやってみた。
(最終回)Python + OpenCVで遊んでみる(OCR編)こちらのサイトを参考にした。
こちらから 「tesseract-ocr」をダウンロード。64bit版をDLした
tesseract-ocr-w64-setup-v5.0.0-alpha.20200223.exe (64 bit) resp.
OCRデータをダウンロードする
Data Files for Version 4.00 (November 29, 2016)
jpn Japanese jpn.traineddata
jpn.traineddataを以下のフォルダにコピーする。
C:\Program Files\Tesseract-OCR\tessdata
インストール後、下記のパスを環境変数に登録します。
Pathに「C:\Program Files\Tesseract-OCR」を追加する。
環境変数項目としてTESSDATA_PREFIXを作成して、「C:\Program Files\Tesseract-OCR\tessdata」を追加する
pyocrをインストールする
これで文字認識した。どのくらいの精度があるのかはまだ確認していない。
(最終回)Python + OpenCVで遊んでみる(OCR編)こちらのサイトを参考にした。
こちらから 「tesseract-ocr」をダウンロード。64bit版をDLした
tesseract-ocr-w64-setup-v5.0.0-alpha.20200223.exe (64 bit) resp.
OCRデータをダウンロードする
Data Files for Version 4.00 (November 29, 2016)
jpn Japanese jpn.traineddata
jpn.traineddataを以下のフォルダにコピーする。
C:\Program Files\Tesseract-OCR\tessdata
インストール後、下記のパスを環境変数に登録します。
Pathに「C:\Program Files\Tesseract-OCR」を追加する。
環境変数項目としてTESSDATA_PREFIXを作成して、「C:\Program Files\Tesseract-OCR\tessdata」を追加する
pyocrをインストールする
pip install pyocr
これで文字認識した。どのくらいの精度があるのかはまだ確認していない。
import pyocr import pyocr.builders import cv2 from PIL import Image import sys #利用可能なOCRツールを取得 tools = pyocr.get_available_tools() if len(tools) == 0: print("OCRツールが見つかりませんでした。") sys.exit(1) #利用可能なOCRツールはtesseractしか導入していないため、0番目のツールを利用 tool = tools[0] #画像から文字列を取得 res = tool.image_to_string(Image.open("doc.png"),lang="jpn",builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6)) #取得した文字列を表示 #print(res) for d in res: print(d.content,end = "") #どの文字として認識したか #以下は画像のどの部分を検出し、どう認識したかを分析 out = cv2.imread("doc.png") for d in res: #print(d.content) #どの文字として認識したか #print(d.position) #どの位置を検出したか cv2.rectangle(out, d.position[0], d.position[1], (0, 0, 255), 2) #検出した箇所を赤枠で囲む #検出結果の画像を表示 cv2.imshow("img",out) cv2.waitKey(0) cv2.destroyAllWindows()
コメント
コメントを投稿