为啥 pdf2image 给我一个空白图像文件?
Posted
技术标签:
【中文标题】为啥 pdf2image 给我一个空白图像文件?【英文标题】:Why is pdf2image giving me a blank image file?为什么 pdf2image 给我一个空白图像文件? 【发布时间】:2021-08-23 22:46:17 【问题描述】:我尝试使用 Tesseract OCR 对多个大的 pdf 文件(约 400-600 页)执行 OCR。我不一定要从所有页面中提取文本,但我只想要几页(页码已知)。 PDF 文件似乎已经对其执行了某种 OCR,但这不是一项好工作。当我运行我在 Jupyter 中编写的这段代码时:
import pdf2image
from PIL import Image
import pytesseract
import cv2
import numpy as np
pytesseract.pytesseract.tesseract_cmd = r"C:/Program Files/Tesseract-OCR/tesseract.exe"
images = pdf2image.convert_from_path("test2.pdf", first_page=3, last_page=3, poppler_path=r"C:/Program Files/poppler-0.68.0/bin")
images[0].show()
我看到这个输出: [
输出应该是这样的:
我确实认为在 PDF 上完成的 OCR 在这里造成了一些问题。我不知道如何绕过它,有人可以帮忙吗?
我还通过手动将页面转换为图像(截图工具)来尝试 OCR,并且 OCR 引擎正常工作。我还尝试使用pdf2image.convert_from_path()
上的选项,比如没有poppler_path
选项或其他页面。我尝试阅读另一个 PDF 文件,没有在其上执行 OCR,它似乎可以工作。
【问题讨论】:
如果没有相关的 PDF,恐怕很难为您提供帮助。使用给定的代码打开一些 PDF 效果很好。 @HansHirse 是的,我知道,这是 pdf 文件的示例drive 【参考方案1】:我遇到了同样的问题,并通过将 poppler 从版本 21.03.0 升级到 21.11.0 解决了它。
【讨论】:
【参考方案2】:我有同样的问题。由于无法修复它,我决定使用另一个库。
在另一个 Stack Overflow post 和谷歌搜索的帮助下,我能够修改 Mohit Chandel 的函数以将 pdf(多页)转换为 jpg 格式
import ghostscript
import locale
def pdf2jpeg(pdf_input_path, jpeg_output_path):
"""
Source: https://***.com/questions/60701262/convert-pdf-to-image-using-python,
https://www.kite.com/python/answers/how-to-remove-everything-after-a-character-in-a-string-in-python,
https://www.ghostscript.com/doc/current/Use.htm
"""
args = ["pef2jpeg", # actual value doesn't matter
"-dNOPAUSE",
"-sDEVICE=jpeg",
"-r144",
"-sOutputFile=" + jpeg_output_path.split(".", 1)[0] + "-%d.jpg",
pdf_input_path]
encoding = locale.getpreferredencoding()
args = [a.encode(encoding) for a in args]
ghostscript.Ghostscript(*args)
【讨论】:
【参考方案3】:源 OCR 没有任何问题, 事实上它比大多数类似的例子要好,确实这里和那里有一个小故障,但这是由于源质量,因此是可以预料的,我怀疑第二次通过会更糟。
这是突出显示 OCR 文本的来源
这是 OCR(可作为可搜索文本读取),表示为您建议您希望再次运行的图像,但您所能做的就是变得更糟,永远不会变得更好,除非您输入任何丢失的字符或格式错误。
这里是导出到写字板的文本
First Edition, 5,000 Copies, November 1972
© The Navajivan Trust, 1972
Principal collaborators:
Shankar Prasada, ics (retd.)
Special Secretary, Kashmir Affairs (1958-65)
Chief Commissioner of Delhi (1948-54)
B. L. Sharma
Former Principal Information Officer, Government of India,
Former Special Officer on Kashmir Affairs in the External Affairs
Ministry, New Delhi, and author
Inder Jit
Director-Editor, India News and Feature Alliance and
Editor, The States, New Delhi
Trevor Drieberg
Political Commentator and Feature Writer
Former News Editor, The Indian Express, New Delhi
Uggar Sain
Former News Editor and Assistant Editor,
The Hindustan Times, New Delhi
Printed and Published by Shantilal Harjivan Shah
Navajivan Press, Ahmedabad-14
【讨论】:
以上是关于为啥 pdf2image 给我一个空白图像文件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 <domain>.auth.us-east-1.amazoncognito.com 给我一个空白页?
MATLAB矩阵保存为图像问题,为啥保存图像为空白? RGB值为255。