如何在python中使用OCR获取从Image识别的文本坐标

Mad*_*ddy 8 python ocr tesseract image-processing python-tesseract

我正在尝试使用 Tesseract 从图像中获取文本字符的坐标或位置。我想知道确切的像素位置,以便我可以使用其他工具单击该文本。

编辑 :

import pytesseract
from pytesseract import pytesseract
import PIL
from PIL import Image
import cv2
import csv

img = 'E:\\OCR-DATA\\sample.jpg'
imge = Image.open(img)
    data=pytesseract.image_to_string(imge,lang='eng',boxes=True,config='hocr')

print(data)
Run Code Online (Sandbox Code Playgroud)

data包含具有框边界值的识别文本。但我不确定,如何使用该边界值来获取文本的坐标。

data变量的值如下:

O 100 356 115 373 0

u 117 356 127 368 0

t 130 356 138 372 0

p 141 351 152 368 0

u 154 356 164 368 0

t 167 356 175 371 0
Run Code Online (Sandbox Code Playgroud)

小智 5

你可以试试这个:

img = 'tes.jpg'
imge = Image.open(img)
data=pytesseract.image_to_boxes(imge)

print(data)
Run Code Online (Sandbox Code Playgroud)

这将直接给你结果,如:

T 22 58 52 97 0
H 62 58 95 96 0
R 102 58 135 97 0
E 146 57 174 97 0
A 184 57 216 96 0
D 225 56 258 96 0
Run Code Online (Sandbox Code Playgroud)


Pig*_*let 1

每行都有边界框的坐标。

\n

来自:训练 Tesseract \xe2\x80\x93 Make Box 文件

\n

字符、左、下、右、上、页

\n

因此,对于每个字符,您都会得到该字符,后跟其边界框字符,最后是从 0 开始的页码。

\n