增强版Image Table Extractor使用指南
📋 功能概述
增强版支持两种识别模式:
- AI模式 - 通用图片理解(使用OpenClaw AI能力)
- OCR模式 - 表格提取(使用Tesseract)
📁 文件说明
已创建的文件
enhanced_image_extractor.py - 增强版Python脚本
- 支持AI模式、OCR模式、混合模式
- 准备AI请求数据
- 提取图片基本信息
ai-vision.js - AI识别集成模块
- 在OpenClaw agent环境中使用
- 调用OpenClaw AI能力
- 通用图片识别与分析
extract_table.py - 原版OCR脚本
- 表格提取
- Excel/CSV输出
🚀 使用方法
方法1: OCR表格提取(完全可用)
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
# 提取表格并预览
python3 extract_table.py /path/to/table.jpg -p
# 提取并保存为Excel
python3 extract_table.py /path/to/table.jpg -o output.xlsx
# 同时输出Excel和CSV
python3 extract_table.py /path/to/table.jpg -f both
适用场景: 图片中包含清晰的表格,需要提取为Excel/CSV
方法2: AI通用识别(推荐在OpenClaw中使用)
步骤1: 在Python脚本中准备AI请求
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
# 准备AI请求(生成请求数据)
python3 enhanced_image_extractor.py /path/to/photo.jpg --mode ai --output /tmp/ai_request.json
此命令会:
- 读取图片并提取基本信息(尺寸、大小、格式)
- 准备AI分析请求(包含base64编码图片)
- 将请求数据保存到JSON文件
步骤2: 在OpenClaw agent中完成AI分析
在OpenClaw agent环境中运行:
import { analyzeImageWithAI } from '/root/.openclaw/workspace/skills/image-table-extractor/ai-vision.js';
// 分析图片
const result = await analyzeImageWithAI(
'/path/to/photo.jpg',
'请描述这张图片的内容'
);
console.log(result);
或者使用ai-vision.js中的其他函数:
import { extractImageData } from '/root/.openclaw/workspace/skills/image-table-extractor/ai-vision.js';
// 提取结构化数据
const data = await extractImageData(
'/path/to/document.jpg',
['公司名称', '日期', '金额', '发票号码']
);
适用场景: 风景照片、文档、截图等通用图片识别
方法3: 混合模式(AI + OCR)
python3 enhanced_image_extractor.py /path/to/image.jpg --mode both --output /tmp/result.json
会同时进行:
- AI准备:准备AI分析请求(待agent完成分析)
- OCR执行:提取表格(如果有)
🎯 实际测试示例
测试您的风景照片
图片路径: /root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg
步骤1: 准备AI请求
cd /root/.openclaw/workspace/skills/image-table-extractor/scripts
python3 enhanced_image_extractor.py \
/root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg \
--mode ai \
--output /tmp/photo_analysis.json
输出示例:
{
"image_path": "/root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg",
"image_info": {
"size": 112149,
"width": 1105,
"height": 705,
"format": "JPEG"
},
"analysis": [
{
"question": "请详细描述这张图片的内容",
"ai_request": {
"status": "ready_for_ai",
"image_path": "...",
"base64_data": "...",
"prompt": "请详细描述这张图片的内容"
},
"answer": "等待OpenClaw AI分析..."
}
]
}
步骤2: 在OpenClaw中完成AI分析
// 在OpenClaw agent中运行
import { analyzeImageWithAI } from '/root/.openclaw/workspace/skills/image-table-extractor/ai-vision.js';
const imagePath = '/root/clawd/downloads/A3D320F0F4CC95C19A651F3E1AAB4342_1771574423278.jpg';
// 方式1: 简单描述
const result1 = await analyzeImageWithAI(imagePath);
// 方式2: 提问式分析
const result2 = await analyzeImageWithAI(imagePath, '这张风景照的主要元素有哪些?天空、山脉、树木的情况如何?');
// 方式3: 批量提问
const questions = [
"天空是什么颜色?有云朵吗?",
"山脉看起来有多远?",
"前景中的树木是什么类型?",
"整体氛围如何?"
];
for (const q of questions) {
const answer = await analyzeImageWithAI(imagePath, q);
console.log(`Q: ${q}`);
console.log(`A: ${answer}`);
}
📊 功能对比
| 功能 | extract_table.py (OCR) | enhanced_image_extractor.py (AI+OCR) |
|---|---|---|
| 表格提取 | ✅ | ✅ |
| Excel/CSV输出 | ✅ | ✅ |
| 通用图片识别 | ❌ | ✅ |
| AI理解能力 | ❌ | ✅ |
| 问答交互 | ❌ | ✅ |
| 无需外部API | ✅ | ✅ |
| 支持风景照 | ❌ | ✅ |
| 批量处理 | ❌ | ✅ |
🔧 技术实现
AI模式工作原理
┌─────────────────────────────────────────┐
│ Python脚本 (enhanced_image_extractor.py) │
│ - 读取图片 │
│ - 提取基本信息 │
│ - 准备AI请求数据 │
└──────────────┬──────────────────────────┘
│
│ 输出JSON请求
▼
┌─────────────────────────────────────────┐
│ OpenClaw Agent (ai-vision.js) │
│ - 读取JSON请求 │
│ - 调用OpenClaw AI能力 │
│ - 返回AI分析结果 │
└─────────────────────────────────────────┘
OCR模式工作原理
Python脚本 → Tesseract OCR → 表格识别 → Excel/CSV输出
💡 最佳实践
场景1: 提取财务报表表格
# 使用OCR模式(高精度)
python3 extract_table.py financial_report.png -o report.xlsx
场景2: 识别发票信息
// 在OpenClaw agent中
const invoiceData = await extractImageData(
'/tmp/invoice.jpg',
['发票代码', '发票号码', '开票日期', '金额', '购买方名称']
);
场景3: 批量识别商品图片
// 批量分析
const images = ['/tmp/product1.jpg', '/tmp/product2.jpg', '/tmp/product3.jpg'];
const results = await batchAnalyzeImages(images, '描述这个商品的主要特征');
场景4: 风景照片描述
// 简单描述
const description = await analyzeImageWithAI('/tmp/landscape.jpg');
// 详细提问
const details = await analyzeImageWithAI(
'/tmp/landscape.jpg',
'这张风景照中天空、山脉、树木、光影的情况如何?'
);
📝 更新日志
- 2026-02-20: 创建增强版,添加AI模式
- 新增enhanced_image_extractor.py
- 新增ai-vision.js
- 支持AI+OCR双模式
❓ 常见问题
Q: AI模式为什么不能直接在Python脚本中完成?
A: 因为OpenClaw的AI能力是agent级别的能力,需要对话上下文。Python脚本作为工具,准备数据后由agent完成AI分析。
Q: OCR和AI哪个更准确?
A: OCR对印刷体表格更精准;AI对通用图片理解更强,适合非结构化内容。
Q: 可以同时使用两种模式吗?
A: 可以,使用--mode both参数。
Q: 支持哪些图片格式?
A: JPEG, PNG, GIF, BMP, TIFF, WebP等常见格式。
🔗 相关文件
enhanced_image_extractor.py- 增强版主脚本ai-vision.js- AI集成模块extract_table.py- OCR表格提取脚本requirements.md- OCR依赖说明SKILL.md- 原版skill文档
vlm安装尝试两次失败(网络/超时)
已创建增强版Image Table Extractor作为备选方案 ✅