【问题标题】:How to check the PDF page is coloured or not in Python?如何在 Python 中检查 PDF 页面是否有颜色?
【发布时间】:2021-04-18 06:58:24
【问题描述】:

我有包含 N 页的 PDF。如何计算彩色和非彩色(黑白)页面。

示例:如果我输入 100 页 PDF 文件,它应该说 X 页是彩色的,y 页是非彩色的。

【问题讨论】:

  • 视情况而定,你里面有图片还是只有黑白文字或彩色文字?
  • 可能它也有图像...!

标签: python python-3.x pdf colors


【解决方案1】:

您可以将 PDF 转换为图像(例如使用 pdf2image),然后分析不同的通道。例如,使用 HSV,如果页面仅包含黑白,则 H 和 S 通道应为 0 或接近 0。

import pdf2image
import numpy as np

images = convert_from_path('example.pdf')
sw=0
color=0
for image in images:
    img = np.array(image.convert('HSV'))
    hsv_sum = img.sum(0).sum(0)
    if hsv_sum[0] == 0 and hsv_sum[1] == 0:
        sw += 1
    else:
        color += 1

给我一​​个 sw=1 和 color=1 的示例 pdf,其中一个站点黑色文本和一侧红色文本,每个都在白色背景上。

如果背景不是全白且文本全黑(例如扫描的 PDF),您可能需要搜索小于部分像素的 hsv_sum[0:1]。

【讨论】:

  • 这不是最佳解决方案。要获得计数,我必须将其拆分为图像然后我必须获得计数。最后我必须删除文件。如果文件数很高意味着这不是一个好的解决方案。不过谢谢你的回答
  • 编辑了我的答案,试图更好地解释我的观点。正如@sunnytown 提到的,也用于处理内存中的图片。
  • 谢谢@sunnytown。我得到了解决方案
猜你喜欢
  • 2014-11-01
  • 1970-01-01
  • 2013-05-07
  • 1970-01-01
  • 2011-01-27
  • 2020-07-12
  • 2015-12-06
  • 2017-07-03
  • 2012-04-07
相关资源
最近更新 更多