我正在使用OCR从图像中提取文本及其坐标(边界框).image_to_string正常工作,但是image_to_data输出错误,并且需要提取文本的边界框。知道为什么会这样吗?我正在为此使用Windows 10。
import pytesseract
import cv2
pytesseract.pytesseract.tesseract_cmd = 'C:/Users/Anwer/AppData/Local/Tesseract-OCR/tesseract.exe'
from PIL import Image
from pytesseract import image_to_data
img = cv2.imread('C:/Users/Anwer/Desktop/Density Plot.png', 1)
cv2.imwrite("Graph.jpeg",img)
img=Image.open('Graph.jpeg')
d=image_to_data(img,output_type=Output.DICT)
n_boxes = len(d['level'])
for i in range(n_boxes):
(x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
我希望结果能输出边界框坐标,但不会导入image_to_data函数。实际上,除了image_to_string之外,没有其他功能被导入。
答案 0 :(得分:0)
好的,我自己解决了这个问题。我有一个tesseract版本4.0。我将其卸载,然后安装了较旧的tesseract版本3.05.02。在那之后,一切似乎都正常。另外,一旦这样做,请同时卸载并安装pytesseract。