有没有Python原生支持从PDF中提取图片或创建某种对象来包含PDF中的图像,以便使用OpenCV进行访问?我查看了一些脚本将PDF的图像转储到我的目录中,但我更希望访问PDF并将数据(即图像)转储为一些可以用OpenCV访问的对象。我自己的探索没有产生任何结果,因此我想问一下。另外,添加一个使用PyMuPDF的示例,基于@Ghilas BELHADJ的示例。
import fitz
import cv2
import numpy as np
from tkinter import Tk
from tkinter.filedialog import askopenfilename
class AccessPDF:
def __init__(self):
self.filepath = ""
self.doc = None
def openPDF(self):
Tk().withdraw()
self.filepath = askopenfilename()
self.doc = fitz.open(self.filepath)
def pixel2np(self,pix):
im = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.h, pix.w, pix.n)
im = np.ascontiguousarray(im[..., [2, 1, 0]]) # rgb to bgr
return im
def displayKey(self):
pixobj = self.doc.getPagePixmap(0, alpha=False)
im = self.pixel2np(pixobj)
cv2.imwrite("testimg.png",im)
cv2.imshow("Key" im)
pdf2image
- Kinght 金