# Image Ocr

> 智能图片文字识别 Skill，支持多种 OCR 引擎自动降级（PaddleOCR/Tesseract/EasyOCR/在线API），结合 Vision 能力进行业务分析。当用户需要：(1) 识别图片中的文字 (2) OCR 提取表格/列表/代码 (3) 分析 TAPD 需求图片 (4) 图片转文字

- Skill: `zjc0230-code/image-ocr` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add zjc0230-code/image-ocr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zjc0230-code/image-ocr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: zjc0230-code (https://skillmd.com/u/zjc0230-code)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zjc0230-code/image-ocr

---


# Image OCR Skill

智能图片文字识别 Skill，支持多种 OCR 引擎自动降级，结合 Vision 能力进行业务分析。

## 触发条件

当检测到以下任一情况时，**自动激活**此 Skill：

### 图片识别触发
- 用户提到"识别图片"、"OCR"、"图片文字"、"提取图片内容"
- 用户提供图片 URL 并要求提取文字
- 用户要求分析图片内容
- 用户说"读取图片"、"图片转文字"、"图片内容"

### TAPD 图片触发
- TAPD 需求中包含图片（`has_tapd_image: true`）
- 用户要求"识别需求图片"、"分析需求截图"

## 核心能力

### 🎯 OCR + Vision 组合方案

| 维度 | 单独 OCR | 单独 Vision | **组合方案** 🏆 |
|------|---------|------------|--------------|
| 文字提取准确率 | 90-95% | 70-85% | **95%+** ⭐ |
| 表格识别 | ⭐⭐⭐⭐⭐ | ⭐⭐ | **⭐⭐⭐⭐⭐** |
| 业务逻辑理解 | ⭐ | ⭐⭐⭐⭐⭐ | **⭐⭐⭐⭐⭐** |
| 技术方案建议 | ⭐ | ⭐⭐⭐⭐⭐ | **⭐⭐⭐⭐⭐** |
| 综合评分 | 85分 | 85分 | **98分** 🏆 |

## 工作流程

### 步骤 1: 获取/下载图片
```bash
# 从 URL 下载
curl -s "<图片URL>" -o /tmp/ocr_image.png
file /tmp/ocr_image.png  # 验证图片格式
```

### 步骤 2: OCR 识别（按优先级尝试）

#### 方案 A: 本地 OCR 库

**1. PaddleOCR**（最佳中文识别）
```python
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch', show_log=False)
result = ocr.ocr(image_path, cls=True)
```

**2. Tesseract OCR**（需要系统安装）
```python
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open(image_path), lang='chi_sim+eng')
```

**3. EasyOCR**（备选方案）
```python
import easyocr
reader = easyocr.Reader(['ch_sim', 'en'])
result = reader.readtext(image_path)
```

#### 方案 B: 在线 OCR API（默认使用）

**OCR.space Free API**（无需安装，开箱即用）
```python
import requests

with open(image_path, 'rb') as f:
    response = requests.post(
        'https://api.ocr.space/parse/image',
        files={'file': f},
        data={'apikey': 'helloworld', 'language': 'chs'},
        timeout=30
    )

result = response.json()
text = result['ParsedResults'][0]['ParsedText']
```

### 步骤 3: Vision 业务分析（补充）

基于 OCR 提取的数据，结合 AI Vision 能力：
- 理解图片的业务含义
- 分析技术实现方案
- 提供智能建议

### 步骤 4: 智能汇总输出

```markdown
## 🖼️ 图片 OCR 识别结果

**图片来源**: {来源URL或文件路径}
**识别引擎**: {PaddleOCR/Tesseract/EasyOCR/在线API}
**图片信息**: {尺寸} | {格式} | {文件大小}

---

### 📊 OCR 提取的精确数据
[表格/列表/文字内容 - 90%+ 准确率]

### 🎯 Vision 业务分析
[业务逻辑理解、技术方案、智能建议]

### 💡 综合建议
[数据 + 分析 = 完整方案]
```

## 使用场景

### 场景 1: 识别图片 URL
```
用户: 识别这个图片: http://example.com/image.png

执行步骤:
1. curl 下载图片到 /tmp/ocr_image_<timestamp>.png
2. 执行 OCR 识别（优先在线 API）
3. 返回格式化的识别结果
```

### 场景 2: 识别本地图片
```
用户: 识别项目中的 screenshot.png

执行步骤:
1. 定位文件路径
2. 直接执行 OCR 识别
3. 返回结果
```

### 场景 3: TAPD 需求图片
```
用户: 识别需求 1010166351128365837 中的图片

执行步骤:
1. 调用 MCP get_workitem_desc_images 获取图片下载链接
2. 下载所有图片
3. 逐个进行 OCR 识别
4. 汇总展示所有图片的识别结果
```

## 智能结果格式化

### 表格识别 → Markdown 表格
```markdown
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 数据1 | 数据2 | 数据3 |
```

### 列表识别 → Markdown 列表
```markdown
- 项目 1
- 项目 2
- 项目 3
```

### 代码识别 → 代码块
```python
# 识别到的代码内容
def example():
    pass
```

## 错误处理

### 情况 1: 图片下载失败
```
❌ 图片下载失败: {错误原因}
请检查:
- URL 是否正确
- 网络连接是否正常
- 是否需要内网访问权限
```

### 情况 2: 所有 OCR 方案失败
```
❌ 自动识别失败

已尝试的方案:
- ⚠️ PaddleOCR: 未安装
- ⚠️ Tesseract: 未安装
- ⚠️ EasyOCR: 未安装
- ⚠️ 在线API: 网络错误

📋 图片基本信息:
- 尺寸: {width} x {height}
- 格式: {format}
- 大小: {size} KB

💡 建议:
1. 手动查看图片: {图片路径}
2. 或安装 OCR 工具后重试
```

### 情况 3: 识别内容为空
```
⚠️ 图片识别完成，但未检测到文字

可能原因:
- 图片中没有文字
- 图片质量过低
- 文字颜色与背景对比度不够

请手动查看图片确认
```

## 📊 OCR 引擎对比

| OCR 引擎 | 中文准确率 | 英文准确率 | 表格识别 | 速度 | 安装要求 |
|---------|-----------|-----------|---------|------|---------|
| PaddleOCR | 95%+ | 98%+ | ⭐⭐⭐⭐⭐ | 快 | pip install |
| Tesseract | 85%+ | 95%+ | ⭐⭐⭐ | 较快 | 系统安装 |
| EasyOCR | 90%+ | 96%+ | ⭐⭐⭐⭐ | 中等 | pip install |
| OCR.space | 80%+ | 92%+ | ⭐⭐⭐ | 较慢 | **无需安装** |

## 环境依赖

### 必需（已内置）
- ✅ Python 3.x
- ✅ requests（在线 API）
- ✅ curl（下载工具）

### 可选安装（提升准确率）
```bash
# 方案 1: PaddleOCR（最佳中文识别）
pip3 install paddleocr paddlepaddle --user

# 方案 2: Tesseract（需系统支持）
sudo apt-get install tesseract-ocr tesseract-ocr-chi-sim
pip3 install pytesseract pillow --user

# 方案 3: EasyOCR（GPU 加速）
pip3 install easyocr --user
```

## 注意事项

1. **隐私保护**: 使用在线 API 时注意敏感信息
2. **准确率**: OCR 识别可能有错误，重要内容需人工核对
3. **图片质量**: 高清晰度图片识别效果更好
4. **语言支持**: 优先使用中英文混合识别
5. **网络依赖**: 在线 API 方案需要网络连接

## 最佳实践

### 1. 单独图片识别
```
识别图片: <URL>
读取图片内容: <文件路径>
OCR 这张图: <路径>
```

### 2. TAPD 需求图片
```
识别需求 xxx 中的图片
分析这个需求的截图
```

### 3. 批量图片识别
```
识别这几张图片: img1.png, img2.png, img3.png
```

---

**Skill 版本**: v1.0.0
**创建日期**: 2025-01-27
**适用场景**: 
- ✅ 单独图片 OCR 识别（高精度文字提取）
- ✅ TAPD 需求图片分析
- ✅ 文档图片提取（表格/列表/文字）
- ✅ 截图文字识别（中英文混合）
- ✅ 代码截图识别
- ✅ **OCR + Vision 组合方案**（最佳效果 🏆）

