如何检查PDF页面是否用Python着色



我的PDF包含N个页面。我怎样才能数彩色和非彩色(黑色和白色(页面。

示例:如果我给出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

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

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

最新更新