![](/img/trans.png)
[英]Using Python Tesseract to get text from image, but getting an error
[英]How do I get the largest text in an image using tesseract in Python?
我正在尝试提取 PDF 文件的标题。 文件的元数据并没有真正的帮助。 所以我正在考虑将每个 PDF 文件的第一页转换为图像并使用 Tesseract 读取此图像。 我可以假设在图像上找到的最大文本是标题。
我使用fitz
读取 PDF 并加载要存储为图像格式的第一页。
import fitz
doc = fitz.open(filename)
page = doc.loadPage(0)
pix = page.getPixmap()
pix.writePNG("output.png")
然后我使用 OpenCV 读取图像文件,将其放入 tesseract 中,并将边界框放在检测到的单词上。
filename = 'output.png'
img = cv2.imread(filename)
h, w, _ = img.shape
boxes = pytesseract.image_to_boxes(img) # also include any config options you use
for b in boxes.splitlines():
b = b.split(' ')
img = cv2.rectangle(img, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 2)
cv2.imshow(filename, img)
cv2.waitKey(0)
我对 OCR tesseract
不是很熟悉,所以这就是我卡住的地方。 如何获得具有最大边界框的文本?
我的 PDF 文件主要是科学论文/期刊。 这样你就知道我的文件是什么样子了。
谢谢你。
通常 Tesseract 将 OCR 操作结果作为嵌套结构返回,如下所示:
使用pytesseract.image_to_data
你应该得到关于行/单词索引的数据。
我的建议是 go 通过每一行的单词,找到平均词高最大的行,这很可能是论文的标题。
请参阅此答案以查看如何获取单词框
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.