如何将PDF中的图片格式垃圾清运表转换为机器可读数据?
图片格式PDF表格转机器可读数据的解决方案
1. 本地开源工具组合方案
先提取PDF中的图片,再通过OCR+结构化处理转换:
- 用
pdfimages命令提取PDF内的所有图片:pdfimages -all Pabianice-Gmina-7.pdf schedule_img - 使用Tesseract OCR(需安装波兰语语言包)进行识别,开启表格适配模式:
tesseract schedule_img-000.png schedule_output --oem 3 --psm 6 -l pol - 用Python进一步结构化数据(结合OpenCV预处理提升准确率):
import cv2 import pytesseract import pandas as pd # 图片预处理:降噪、二值化 img = cv2.imread('schedule_img-000.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1] # OCR识别并输出结构化数据 custom_config = r'--oem 3 --psm 6 -l pol' ocr_data = pytesseract.image_to_data(thresh, config=custom_config, output_type='data.frame') # 过滤无效行并整理成行数据 valid_rows = ocr_data[ocr_data.conf != -1] line_texts = valid_rows.groupby(['page_num', 'block_num', 'line_num'])['text'].apply(' '.join).tolist() # 拆分列生成DataFrame(可根据表格实际结构调整拆分规则) df = pd.DataFrame([line.split() for line in line_texts if line.strip()]) print(df)
2. 商业OCR服务的精准识别
针对复杂表格,可使用专门的文档分析服务:
- Google Cloud Vision API的
DOCUMENT_TEXT_DETECTION:能识别表格单元格的坐标与内容,返回结构化的JSON数据,可通过坐标分组生成表格。 - AWS Textract:原生支持表格提取,直接输出包含行、列、单元格内容的结构化数据,无需额外处理坐标。
3. 手动辅助修正(小表格场景)
若工具识别仍有误差,可采用快速修正流程:
- 将OCR识别的纯文本导出到Excel;
- 使用「文本分列」功能,按表格的列分隔规则(空格/固定宽度)拆分内容;
- 手动修正识别错误的特殊字符(如波兰语变音符号)和错位内容。
内容的提问来源于stack exchange,提问作者Vertig0
相关产品推荐
相关产品推荐

