Files
skills/vision-analyze.md
T
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

3.4 KiB
Raw Blame History

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,需要分两步处理:

步骤1PDF转图片(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秒),建议耐心等待