如何从内存中向 Tesseract 提供图像

问题描述 投票:0回答:1

我正在使用 Tesseract 对数百万个 PDF 进行 OCR,并且我正在尝试尽可能地发挥性能。

我当前的管道使用

convert
将 PDF 转换为 PNG 文件(每页一个),然后对每个文件使用 Tesseract。

在分析过程中,我发现很多时间都花在将文件写入磁盘,然后再次读取它们,所以我想将所有这些都移到内存中。

我已经在内存中进行了 PDF 到 PNG 的转换,所以现在我需要一种方法将内存中的 blob 传递给 Tesseract,而不是为其提供文件路径?我找不到任何相关文档或示例?

python performance tesseract wand
1个回答
0
投票

我们可以使用 BytesIO 来欺骗它:

from io import BytesIO
from PIL import Image
import fitz  # pymupdf lib, but you can use anything else if it can save image
import pytesseract


doc = fitz.open("your_pdf_file.pdf")
page = doc.load_page(5)  # for example, I need only one page
pix = page.get_pixmap()
doc.close()  # we don't need pdf file anymore

image = Image.open(BytesIO(pix.tobytes()))
text = pytesseract.image_to_string(image)
print(text)

就是这样。

© www.soinside.com 2019 - 2024. All rights reserved.