📄 SKILL.md

⬇️ 下载文件

name: image-table-extractor
description: |
从图片中提取表格数据并转换为Excel或CSV文件。使用OCR技术识别图片中的表格内容,支持中文和英文混合识别。当用户需要从图片格式的表格中提取数据时(如截图、扫描件、照片等),使用此Skill。可处理财务报表、数据统计表、课程表、成绩单等各种表格类型,输出为可编辑的Excel文件。

图片表格提取器(增强版)

从图片中提取表格数据并转换为Excel或CSV文件,支持中文和英文混合识别。

🎉 增强版新增功能(2026-02-20)

双模式识别

  1. AI模式 - 通用图片理解(不限于表格)

    • 使用OpenClaw AI能力(moonshot/kimi)
    • 支持问答式交互
    • 识别风景、文档、截图等通用图片
  2. 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

识别为空或结果很少

可能原因

  1. 图片中没有可识别的表格
  2. 图片质量过低
  3. 文字颜色与背景对比度不足
  4. OCR语言配置不正确

解决

  • 检查图片是否包含清晰的表格
  • 提高图片分辨率或对比度
  • 确认语言参数:python3 extract_table.py image.jpg -l chi_sim+eng
  • 使用 -p 参数查看原始识别结果

与OpenClaw集成

在OpenClaw中使用

  1. 确认依赖已安装:
pip install pillow pytesseract opencv-python numpy pandas openpyxl
  1. 测试脚本可用性:
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
python3 extract_table.py --help
  1. 在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输出