pytesseract ライブラリを使用して画像ファイルの文字位置を取得しようとしています。
import pytesseract
from PIL import Image
print pytesseract.image_to_string(Image.open('5.png'))
文字の各位置を取得するためのライブラリはありますか
pytesseract ライブラリを使用して画像ファイルの文字位置を取得しようとしています。
import pytesseract
from PIL import Image
print pytesseract.image_to_string(Image.open('5.png'))
文字の各位置を取得するためのライブラリはありますか
pytesseract を使用することは、その位置にあるための最良のアイデアとは思えませんが、これを行うことができます:
from pytesseract import pytesseract
pytesseract.run_tesseract('image.png', 'output', lang=None, boxes=False, config="hocr")
キャラクターの位置は以下のように求めることができます。
import csv
import cv2
from pytesseract import pytesseract as pt
pt.run_tesseract('bw.png', 'output', lang=None, boxes=True, config="hocr")
# To read the coordinates
boxes = []
with open('output.box', 'rb') as f:
reader = csv.reader(f, delimiter = ' ')
for row in reader:
if(len(row)==6):
boxes.append(row)
# Draw the bounding box
img = cv2.imread('bw.png')
h, w, _ = img.shape
for b in boxes:
img = cv2.rectangle(img,(int(b[1]),h-int(b[2])),(int(b[3]),h-int(b[4])),(255,0,0),2)
cv2.imshow('output',img)
この方法を使用している間、一部のテキストを見逃す可能性があります。より良い結果を得るには、画像の前処理 (つまり、背景の減算) が必要になります。