我正在尝试通过图像上的边界框获取选定的文本。
就像如果仅通过边界框选择单词一样,我想获取该文本并将其转换为文本文件。
请查看我的代码并进行一些审查,以便我可以实现该功能。
到目前为止,我已经将 PDF 文件转换为在文本上带有边框的图像。
import numpy as np
import csv
import io
from PIL import Image
import pytesseract
from wand.image import Image as wi
from pytesseract import Output
import cv2
pdf = wi(filename="samplecompany.pdf", resolution=100)
pdfImg = pdf.convert('jpg')
j = 1
for img in pdfImg.sequence:
page = wi(image=img)
page.save(filename=str(j)+".jpg")
img1 = cv2.imread(str(j)+".jpg")
d = pytesseract.image_to_data(img1, output_type=Output.DICT)
n_boxes = len(d['level'])
print(n_boxes)
for i in range(n_boxes):
(x, y, w, h) = (d['left'][i], d['top']
[i], d['width'][i], d['height'][i])
print((x, y, w, h))
cv2.rectangle(img1, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imwrite(str(j)+".jpg", img1)
cv2.waitKey(0)
j += 1
这段代码工作正常我需要从我创建的图像中获取所需的文本。使用边界框位置