基于KNN的发票识别

有一个PDF文件,里面的每页都是一张发票,把每页的发票单独存为一个PDF并用该发票的的发票号码进行文件的命名,发票号码需要OCR识别,即识别下图中红色方块的内容。

 

基于KNN的发票识别

 一:拆分PDF

现有一个PDF文件,里面有很多张发票图片,每张发票占一页

基于KNN的发票识别

 

我们先把这整个PDF拆分为单独的PDF

使用PyPDF2这个包

代码如下,基本上每句都写了注释

from PyPDF2 import PdfFileWriter,PdfFileReader def test1(file_path,folder_path,num,end_page,start_page=0): """ :param file_path: pdf文件路径 :param folder_path: 存放路径 :param num: 拆分后的pdf存在几个原pdf页数 :param end_page: 拆分到的最后一页 :param start_page: 起始的页数,默认为0 :return: """ # 打开PDF文件 pdf_file = PdfFileReader(open(file_path, 'rb')) # 获取pdf的页数 pdf_file_num = pdf_file.getNumPages() # 如果输入的end_page页数比pdf文件的页数大或者小于等于0,让停止的页数为pdf最大的页数 if end_page>pdf_file_num or end_page<=0: end_page=pdf_file_num # 从起始页到最后一页进行遍历 for i in range(start_page,end_page,num): #创建一个PdfFileWriter的对象 out_put = PdfFileWriter() # 给out_put这个对象传num数的页,项目中每个发票都只占了1页,所以num为1,如果发票占据2页,那么num为2 for k in range(num): out_put.addPage(pdf_file.getPage(i)) # 设置保存的路径 out_file = folder_path + "\\" + f"{i}.pdf" # 把out_put里面的数据写入到文件中 out_put.write(open(out_file, 'wb'))

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjyzy.html