python - 如何在 Python 中检查 PDF 页面是否有颜色?
问题描述
我有包含 N 页的 PDF。我如何计算彩色和非彩色(黑白)页面。
示例:如果我给 100 页 PDF 文件作为输入,它应该说 X 页是彩色的,y 页是非彩色的。
解决方案
您可以将 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]。
推荐阅读
- django - 如何通过超模的属性过滤模型对象?
- sql - BigQuery:按每个用户的最后日期选择值
- python - Python 用 BeautifulSoup 解析表
- javascript - 如何在javascript中将每个第一个字母大写,撇号之前没有,但之后有一个
- entity-framework-6 - EF6 从加入表中删除条目
- javascript - TypeScript:对象可能是“空”
- php - 如何在 Laravel 中检索 Mailgun 传递的消息
- jquery - jquery - 绑定事件只工作一次
- java - 使用 Gson 解析 JSON(流模式)时出现 JAVA 错误:应为 BEGIN_ARRAY,但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT
- azure - 在 Azure 中以 HA 模式部署 Keycloak