【问题标题】:Count Images in a pdf document through python通过python计算pdf文档中的图像
【发布时间】:2017-11-02 04:07:22
【问题描述】:

有没有办法通过 python 计算 pdf 文档中的图像数量(JPEG、PNG、JPG)?

【问题讨论】:

    标签: python pdfminer pypdf2


    【解决方案1】:
    1. 使用来自 poppler-utils 的 pdfimages

    您可能想看看 poppler-utils 包中的 pdfimages

    我从-Sample PDF获取了样本 pdf

    在运行以下命令时,会提取 pdf 中存在的图像 -

    pdfimages /home/tata/Desktop/4555c-5055cBrochure.pdf image
    

    从这本小册子中提取的一些图片是 -

    Extracted Image1

    Extracted Image 2

    所以,你可以使用python的subprocess模块​​来执行这个命令,然后提取所有的图片。

    注意:这种方法有一些缺点。它生成 ppm 格式的图像,而不是 jpg。此外,可能会提取一些额外的图像,这些图像实际上可能不是 pdf 中的图像。

    1. 使用 pdfminer

    如果您想使用 pdfminer 执行此操作,请查看此博客文章 - Extracting Text & Images from PDF Files

    Pdfminer 允许您遍历特定 pdf 页面的布局。下图显示了布局对象以及pdfminer生成的树结构-

    Layout Objects and Tree Structure

    图片来源-Pdfminer Docs

    因此,提取 LTFigure 对象可以帮助您提取/计数 pdf 文档中的图像。

    注意:请注意,这两种方法可能都不准确,其准确性很大程度上取决于您处理的 pdf 文档的类型。

    【讨论】:

    • 哇..这真的是一些很好的帮助。但是我从 PDFMiner 学习了一些布局,但事情对我不起作用。我弄错了语法。你能帮我写一些代码吗?
    • @hayat 如果您能准确指出您面临的问题,我可能会提供帮助。也许这会有所帮助?我建议您先稍微摆弄一下代码,以便更好地了解布局对象。 dadruid5.com/2014/08/14/…
    【解决方案2】:

    我认为这不能直接完成。虽然我使用以下方法做了类似的事情

    1. 使用 ghostscript 将 pdf 转换为页面图像。
    2. 在每个页面上,使用计算机视觉 (OpenCV) 提取感兴趣的区域(在您的案例图像中)。

    【讨论】:

    • 谢谢,有没有办法在python中从pdf中提取所有图像?
    • 这可以在 python 中完成。尝试实现上述方法。使用ghostscript将pdf转换为图像
    • 谢谢。你有任何代码参考吗?
    • @Hayat PDFFigures2 by Allen AI 可用于从 PDF 中提取图像。它是在 Scala 中实现的,但早期版本 PDFFigures 是在 python 中实现的。看看吧!
    • @SamyakJain 谢谢。你能告诉我在哪里可以找到教程或学习资料吗?
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 2011-08-13
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2022-07-02
    • 1970-01-01
    相关资源
    最近更新 更多