我有一个多页的.pdf(扫描图像)包含我想裁剪和存储为新的独立图像手写。例如,在下面的视觉效果中,我想提取两个框内的手写体作为单独的图像。如何使用python对一个大的、多页的.pdf文件自动执行此操作?在
我尝试使用PyPDF2
包根据(x,y)坐标裁剪其中一个手写框,但是这种方法对我不起作用,因为pdf中每个页面的手写框的边界/坐标并不总是相同的。我相信检测盒子是自动裁剪的更好方法。不确定是否有用,但下面是我用于(x,y)坐标法的代码:
from PyPDF2 import PdfFileReader, PdfFileWriter
reader = PdfFileReader('data/samples.pdf', 'r')
# getting the first page
page = reader.getPage(0)
writer = PdfFileWriter()
# Loop through all pages in pdf object to crop based on (x,y) coordinates
for i in range(reader.getNumPages()):
page = reader.getPage(i)
page.cropBox.setLowerLeft((42,115))
page.cropBox.setUpperRight((500, 245))
writer.addPage(page)
outstream = open('samples_cropped.pdf','wb')
writer.write(outstream)
outstream.close()
提前感谢您的帮助
下面是一个使用OpenCV的简单方法
提取ROI后,可以将每个ROI保存为单独的图像,然后使用
pytesseract
或其他工具执行OCR文本提取。在结果
你提到这个
目前,使用}),那么它就是一个有效的框。在
(x,y)
坐标的方法不是很可靠,因为方框可能位于图像的任何位置。一种更好的方法是使用最小阈值轮廓区域进行滤波来检测盒。根据要检测的框的大小,可以调整变量。如果您想要额外的筛选以防止误报,您可以将另一个筛选机制添加到aspect ratio中。例如,计算每个轮廓的宽高比,然后如果它在范围内(例如0.8
到{相关问题 更多 >
编程相关推荐