現在、pythonとtesseractにより画像上の文字の大方の座標を取得するプログラムを作成しようとしています。
作成したプログラムが以下の通りです。
python
1import pyocr 2import pyocr.builders 3import cv2 4from PIL import Image 5import sys 6import os 7 8tools = pyocr.get_available_tools() 9 10if len(tools) == 0: 11 print("No OCR tool found") 12 sys.exit(1) 13 14tool = tools[0] 15 16path = "bs_data/test1.jpg" 17 18res = tool.image_to_string(Image.open(path), 19 lang="Japanese", 20 builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6)) 21 22 23out = cv2.imread(path) 24for d in res: 25 print(d.content) 26 print(d.position) 27 cv2.rectangle(out_resize, d.position[0], d.position[1], (0, 0, 255), 2) 28 29cv2.imshow("img",out) 30cv2.waitKey(0) 31cv2.destroyAllWindows()
上記プログラムを動かしたところ、以下のようなerrorが出てしまいます。
Traceback (most recent call last):
File "getRowCutting.py", line 23, in <module>
builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyocr/tesseract.py", line 384, in image_to_string
-1, "Unable to find output file (tested {})".format(tested_files)
pyocr.error.TesseractError: (-1, "Unable to find output file (tested ['/var/folders/06/1sp1h1zs7j755lq2mjfrt43r0000gn/T/tmpbpi1ftbk/output.html', '/var/folders/06/1sp1h1zs7j755lq2mjfrt43r0000gn/T/tmpbpi1ftbk/output.hocr'])")
以下を参考にいろいろ見てみました。
参考資料
tesseract --print-parameters | grep hocr
と入力したところ
hocr_font_info 0 Add font info to hocr output hocr_char_boxes 0 Add coordinates for each character to hocr output tessedit_create_hocr 0 Write .html hOCR output file
と出てきました。
しかし、
/usr/local/tesseract/share/tessdata/configs/hocr内の設定(?)をみたところ、
tessedit_create_hocrの値は1となっていました。
これは、複数のバージョンが入ってしまっていて、参照先が異なってしまっているために上記のエラーが出てしまうということなのでしょうか?
質問もわかりづらいものとなってしまい申し訳ありませんが、お答えしていただけると助かります。
以上、よろしくお願いします。
あなたの回答
tips
プレビュー