name: image-table-extractor
description: |
从图片中提取表格数据并转换为Excel或CSV文件。使用OCR技术识别图片中的表格内容,支持中文和英文混合识别。当用户需要从图片格式的表格中提取数据时(如截图、扫描件、照片等),使用此Skill。可处理财务报表、数据统计表、课程表、成绩单等各种表格类型,输出为可编辑的Excel文件。
图片表格提取器(增强版)
从图片中提取表格数据并转换为Excel或CSV文件,支持中文和英文混合识别。
🎉 增强版新增功能(2026-02-20)
双模式识别
AI模式 - 通用图片理解(不限于表格)
- 使用OpenClaw AI能力(moonshot/kimi)
- 支持问答式交互
- 识别风景、文档、截图等通用图片
OCR模式 - 专业表格提取
- 使用Tesseract OCR引擎
- 高精度表格识别
- 输出Excel/CSV格式
新增文件
enhanced_image_extractor.py- 增强版Python脚本(支持AI+OCR双模式)ai-vision.js- AI识别集成模块(OpenClaw环境)ENHANCED_USAGE.md- 增强版使用指南
功能对比
| 功能 | OCR模式 | AI模式 |
|---|---|---|
| 表格提取 | ✅ | ✅ |
| Excel/CSV输出 | ✅ | ✅ |
| 通用图片识别 | ❌ | ✅ |
| AI理解能力 | ❌ | ✅ |
| 问答交互 | ❌ | ✅ |
| 无需外部API | ✅ | ✅ |
详情查看: ENHANCED_USAGE.md
原版功能特点(OCR模式)
- 🎯 智能OCR识别: 使用Tesseract引擎进行文字识别
- 🇨🇳 中文支持: 默认支持中文和英文混合识别
- 🖼️ 图片预处理: 自动优化图片对比度,提高识别准确率
- 📊 多种输出: 支持Excel (.xlsx) 和CSV (.csv) 格式
- 👁️ 预览功能: 显示识别结果预览
- 🎛️ 灵活配置: 可调整OCR语言和输出选项
安装要求
1. 安装Python依赖
pip install pillow pytesseract opencv-python numpy pandas openpyxl
2. 安装Tesseract OCR引擎
Ubuntu/Debian:
sudo apt-get install tesseract-ocr
sudo apt-get install tesseract-ocr-chi-sim
macOS:
brew install tesseract
CentOS/RHEL:
sudo yum install tesseract
sudo yum install tesseract-langpack-chi_sim
详细信息请查看 requirements.md
快速开始
检查依赖并启动
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
bash check_and_run.sh
这将自动检查所有依赖项,并提供安装指导。
基本用法
提取图片中的表格并保存为Excel:
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
python3 extract_table.py "/path/to/your/image.jpg"
输出文件将保存在图片同目录下,命名为 image_extracted.xlsx
指定输出文件
python3 extract_table.py "/path/to/image.png" -o "/path/to/output.xlsx"
输出为CSV格式
python3 extract_table.py "/path/to/image.png" -f csv
同时输出Excel和CSV
python3 extract_table.py "/path/to/image.png" -f both
仅预览识别结果(不保存文件)
python3 extract_table.py "/path/to/image.png" -p
命令参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
image_path |
输入图片文件路径(必填) | /path/to/table.jpg |
-o, --output |
输出文件路径 | /path/to/result.xlsx |
-f, --format |
输出格式:excel, csv, both |
excel |
-l, --lang |
OCR语言配置 | chi_sim+eng |
-p, --preview |
仅预览不保存 | 无需参数 |
输出示例
输入图片(表格)
假设图片包含以下表格:
姓名 | 年龄 | 城市
张三 | 25 | 北京
李四 | 30 | 上海
王五 | 28 | 深圳
识别结果
运行命令:
python3 extract_table.py "table.jpg"
输出预览:
=== 表格预览(前10行)===
行 1: 姓名 | 年龄 | 城市
行 2: 张三 | 25 | 北京
行 3: 李四 | 30 | 上海
行 4: 王五 | 28 | 深圳
总行数: 4
✅ Excel文件已保存: table_extracted.xlsx
提高识别准确率
1. 图片质量
- 确保图片清晰,文字可读
- 避免过度压缩或模糊
- 表格线条尽量清晰
2. 图片预处理
脚本会自动进行以下预处理:
- 转换为灰度图
- 二值化处理(提高对比度)
- 降噪处理
3. 常见问题解决
问题:识别结果乱码
- 检查Tesseract中文语言包是否安装
- 尝试手动指定语言:
python3 extract_table.py image.jpg -l chi_sim
问题:表格结构错乱
- 检查图片表格是否清晰
- 手动调整图片对比度后重试
- 使用
-p参数预览识别结果
问题:列对齐错误
- 表格列间距过小可能导致识别错误
- 建议源图片中增加列间距
支持的图片格式
- JPEG/JPG
- PNG
- BMP
- TIFF(部分支持)
- WebP(部分支持)
实际应用场景
场景1:财务报表
python3 extract_table.py "financial_report.jpg" -o "report_2024.xlsx"
场景2:扫描成绩单
python3 extract_table.py "transcript_scan.png" -f both
场景3:统计数据截图
python3 extract_table.py "statistics_screenshot.jpg" -p # 先预览
python3 extract_table.py "statistics_screenshot.jpg" -o "data.xlsx" # 确认后保存
故障排查
错误:"TesseractNotFoundError"
原因:Tesseract OCR引擎未安装
解决:安装Tesseract引擎(见安装要求)
错误:"ModuleNotFoundError"
原因:Python依赖库未安装
解决:运行:pip install pillow pytesseract opencv-python numpy pandas openpyxl
识别为空或结果很少
可能原因:
- 图片中没有可识别的表格
- 图片质量过低
- 文字颜色与背景对比度不足
- OCR语言配置不正确
解决:
- 检查图片是否包含清晰的表格
- 提高图片分辨率或对比度
- 确认语言参数:
python3 extract_table.py image.jpg -l chi_sim+eng - 使用
-p参数查看原始识别结果
与OpenClaw集成
在OpenClaw中使用
- 确认依赖已安装:
pip install pillow pytesseract opencv-python numpy pandas openpyxl
- 测试脚本可用性:
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
python3 extract_table.py --help
- 在OpenClaw会话中调用:
python3 /root/.openclaw/workspace/skills/image-table-extractor/scripts/extract_table.py "/path/to/image.jpg"
脚本位置
主要脚本:/root/.openclaw/workspace/skills/image-table-extractor/scripts/extract_table.py
依赖说明:/root/.openclaw/workspace/skills/image-table-extractor/requirements.md
注意事项
⚠️ OCR识别准确率依赖于图片质量,建议:
- 使用清晰、高分辨率的图片
- 确保表格线条完整
- 文字与背景有足够对比度
- 避免图片倾斜或扭曲
⚠️ 识别结果可能需要手动校对
- OCR技术并非100%准确
- 建议检查识别结果,特别是关键数据
- 复杂表格可能需要手动调整
限制说明
- 不支持手写体识别(打印体效果最佳)
- 复杂排版(合并单元格、嵌套表格)可能识别不准确
- 图片旋转角度过大可能影响识别效果
- 极小的字体可能影响识别准确率
性能参考
- 处理一张1024x768的图片约需2-5秒
- 图片越大,处理时间越长
- 表格行数不影响单张图片处理速度
更新日志
- v1.0.0: 初始版本,支持基本表格提取和Excel/CSV输出