【问题标题】:Python - OCR - pytesseract for PDFPython - OCR - PDF 的 pytesseract
【发布时间】:2020-03-19 10:07:48
【问题描述】:

我正在尝试运行以下代码:

import cv2
import pytesseract

img = cv2.imread('/Users/user1/Desktop/folder1/pdf1.pdf')
text = pytesseract.image_to_string(img)
print(text)

这给了我以下错误:

Traceback (most recent call last):
  File "/Users/user1/PycharmProjects/project1/python_file.py", line 5, in <module>
    text = pytesseract.image_to_string(img)
  File "/Users/user1/PycharmProjects/project1/venv/lib/python3.8/site-packages/pytesseract/pytesseract.py", line 346, in image_to_string
    return {
  File "/Users/user1/PycharmProjects/project1/venv/lib/python3.8/site-packages/pytesseract/pytesseract.py", line 349, in <lambda>
    Output.STRING: lambda: run_and_get_output(*args),
  File "/Users/user1/PycharmProjects/project1/venv/lib/python3.8/site-packages/pytesseract/pytesseract.py", line 249, in run_and_get_output
    with save(image) as (temp_name, input_filename):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/Users/user1/PycharmProjects/project1/venv/lib/python3.8/site-packages/pytesseract/pytesseract.py", line 172, in save
    image, extension = prepare(image)
  File "/Users/user1/PycharmProjects/project1/venv/lib/python3.8/site-packages/pytesseract/pytesseract.py", line 142, in prepare
    raise TypeError('Unsupported image object')
TypeError: Unsupported image object

如何使它适用于 PDF 文件?

【问题讨论】:

    标签: python python-tesseract


    【解决方案1】:

    这对我有用:

    import os
    from PIL import Image
    from pdf2image import convert_from_path
    import pytesseract
    
    filePath = '/Users/user1/Desktop/folder1/pdf1.pdf'
    doc = convert_from_path(filePath)
    path, fileName = os.path.split(filePath)
    fileBaseName, fileExtension = os.path.splitext(fileName)
    
    for page_number, page_data in enumerate(doc):
        txt = pytesseract.image_to_string(Image.fromarray(page_data)).encode("utf-8")
        print("Page # {} - {}".format(str(page_number),txt))
    
    

    【讨论】:

    • 我收到错误:需要一个类似字节的对象,而不是 'PpmImageFile'
    • 如果您收到错误“需要类似字节的对象,而不是 'PpmImageFile'”,请将倒数第二行更改为:txt = pytesseract.image_to_string(page_data).encode("utf-8")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2016-11-04
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多