Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查PDF页面是否使用Python着色?_Python_Python 3.x_Pdf_Colors - Fatal编程技术网

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

如何检查PDF页面是否使用Python着色?,python,python-3.x,pdf,colors,Python,Python 3.x,Pdf,Colors,我有一个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

我有一个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]。

视情况而定,其中是否有图像,或者只有黑白文本或彩色文本?可能还有图像。。。!这不是最好的解决办法。要获得计数,我必须将其拆分为图像,然后我必须获得计数。最后我必须删除这些文件。如果文件计数高,则表示这不是一个好的解决方案。但谢谢你们的回答,你们可以在记忆中处理图像。编辑我的答案,试图更好地解释我的观点。也曾为@sunnytown提到的记忆中的图片工作。谢谢@sunnytown。我得到了解决方案谢谢你,冷静点