04db423416
- 70 skills with code and documentation - Add .gitignore (ignore __pycache__, output/, temp/, venv/) - Clean up test intermediates and caches
3.4 KiB
3.4 KiB
name, description
| name | description |
|---|---|
| vision-analyze | 标准化视觉分析脚本。使用火山方舟doubao-seed-code模型,支持图片OCR和内容识别。可处理单张图片、图片型PDF转文字分析。 |
Vision Analyze 技能
概述
本技能提供标准化图片/视觉内容分析功能,基于火山方舟doubao-seed-code模型。
核心能力
- ✅ 图片OCR识别:识别图片中的所有文字
- ✅ 内容分析:图片内容描述、图表解读
- ✅ PDF转文字:图片型PDF可通过PyMuPDF转图片后分析
- ✅ 中文支持:完美支持中文识别
- ✅ 本地处理:无需云端上传,直接本地调用API
API配置
- API: 火山方舟 Coding Plan
- 模型: doubao-seed-code (唯一支持的视觉模型)
- API Key: 读取环境变量
VOLCENGINE_API_KEY
脚本位置
D:\F\NewI\opencode\daily-workspace\.opencode\skills\vision-analyze.py
使用方法
命令行使用
# 基本用法
python vision-analyze.py <图片路径> "<提示词>"
# 示例:识别图片文字
python vision-analyze.py image.png "请识别这张图片中的所有文字内容"
# 示例:分析PDF页面(需先转图片)
python vision-analyze.py page_001.png "请完整转录这段文字"
Python调用
from vision_analyze import analyze_image
# 分析图片
result = analyze_image(
"image.png",
"请识别这张图片中的所有文字内容"
)
print(result)
PDF处理工作流
对于图片型PDF,需要分两步处理:
步骤1:PDF转图片(PyMuPDF)
import fitz # PyMuPDF
# PDF转图片
doc = fitz.open("document.pdf")
for i, page in enumerate(doc):
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2)) # 2x缩放
pix.save(f"page_{i+1:03d}.png")
doc.close()
步骤2:图片分析
# 逐页分析
for i in range(1, len(doc) + 1):
img_path = f"page_{i:03d}.png"
text = analyze_image(img_path, "请完整转录这段文字")
# 保存结果
完整脚本示例
处理27页PDF的脚本:
#!/usr/bin/env python3
import sys
import fitz # PyMuPDF
import os
def pdf_to_images(pdf_path, output_dir):
"""PDF转图片"""
doc = fitz.open(pdf_path)
os.makedirs(output_dir, exist_ok=True)
image_paths = []
for i, page in enumerate(doc):
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))
img_path = os.path.join(output_dir, f"page_{i+1:03d}.png")
pix.save(img_path)
image_paths.append(img_path)
doc.close()
return image_paths
# 使用vision_analyze的analyze_image函数
from vision_analyze import analyze_image
pdf_path = "document.pdf"
output_dir = "pdf_images"
# 转图片
image_paths = pdf_to_images(pdf_path, output_dir)
# 分析
for i, img_path in enumerate(image_paths):
text = analyze_image(img_path, "请识别这张图片中的所有文字内容")
print(f"=== 第{i+1}页 ===")
print(text)
常见问题
Q: 分析结果乱码怎么办?
A: 保存文件时使用UTF-8编码:
with open("output.txt", 'w', encoding='utf-8') as f:
f.write(text)
Q: API调用失败怎么办?
A: 检查API Key是否有效,或网络连接是否正常
Q: PDF页数很多,分析超时怎么办?
A: 分批处理,每批10-15页,保存中间结果
注意事项
- ✅ 使用
vision-analyze.py** 脚本 - ✅ 使用火山方舟API,稳定可靠
- ⚠️ 响应时间较长 (20-60秒),建议耐心等待