我正在使用来自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)
来获取所有文本?
答案 0 :(得分: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
中,因此您只需要遍历该页数即可。希望对您有所帮助。