如何将PDF转换为opencv-python可读的图像?

问题描述 投票:0回答:1

我正在使用以下代码在图像文本上绘制矩形,以匹配日期模式及其正常工作。

import re
import cv2
import pytesseract
from PIL import Image
from pytesseract import Output

img = cv2.imread('invoice-sample.jpg')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
keys = list(d.keys())

date_pattern = '^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\d\d$'

n_boxes = len(d['text'])
for i in range(n_boxes):
    if int(d['conf'][i]) > 60:
        if re.match(date_pattern, d['text'][i]):
            (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])
            img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow('img', img)
cv2.waitKey(0)
img.save("sample.pdf")

现在,最后,我得到一个带有匹配日期模式的矩形的PDF。

我想给该程序扫描的PDF作为输入,而不是上面的图像。它应首先将PDF转换为opencv可读的图像格式,以进行与上述相同的处理。请帮助。

python python-imaging-library tesseract python-tesseract
1个回答
0
投票

[有一个名为pdf2image的库。您可以使用“ pip install pdf2image”安装它。然后,您可以使用以下命令将pdf页面转换为所需格式的图像:

from pdf2image import convert_from_path
pages=convert_from_path("pdf_file_to_convert")
for page in pages:
    page.save("page_image.jpg","jpg")

现在您可以使用此图像来应用opencv函数。

© www.soinside.com 2019 - 2024. All rights reserved.