如何使用Tesseract capi获取多页TIFF的文本?

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

我正在使用来自Python的tesseract capi使用ctypes。除了多页TIFF之外,一切似乎都运行良好。我只从最后一页获得文本而不是多页TIFF中的所有文本。

这就是我正在做的事情:

path = "multipage.tiff"
self.tesseract.TessBaseAPIProcessPages.argtypes = [POINTER(TessBaseAPI), c_char_p, c_char_p, c_int, POINTER(TessResultRenderer)]
self.tesseract.TessBaseAPIProcessPages.restype = c_bool
success = self.tesseract.TessBaseAPIProcessPages(self.api, create_string_buffer(path), None , 0, None)
ocr_r = self.tesseract.TessBaseAPIGetUTF8Text(self.api)
result = string_at(ocr_r) #contains text only from last page

有没有人遇到这个或知道如何解决这个问题?

我在tesseract中有opened this as an issue,但显然这不是tesseract命令行或API中的问题,因为命令行工作正常并为所有页面提供文本。

也许应该调用其他东西而不是self.tesseract.TessBaseAPIGetUTF8Text(api)来获取所有文本?

tesseract python-tesseract
1个回答
0
投票

这对我有用:

from PIL import Image
import pytesseract
from pytesseract import image_to_string


image = Image.open(path)
image.load()
parsing = ""
for frame in range(0, image.n_frames):
    image.seek(frame)
    parsing += image_to_string(image)
    parsing += '\n'

页面数量存储在n_frames中,因此您只需迭代该数字即可。希望能帮助到你。

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