# Vision

> Extracts and binarizes a prompted image region. Invoke when user provides an absolute image path and a prompt to crop target visual content.

- Skill: `homesafe2017/vision` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add homesafe2017/vision`
- Raw SKILL.md: https://api.skillmd.com/api/skills/homesafe2017/vision/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: homesafe2017 (https://skillmd.com/u/homesafe2017)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/homesafe2017/vision

---


# Vision Grounding Extractor

该 skill 用火山方舟视觉定位能力，根据“图片绝对地址 + 提示词”定位目标区域，裁剪后输出二值化纯黑白图片。

## 输入

只需要两个输入：

1. 图片绝对地址
2. 提示词

## 输出

返回最终生成的二值化图片绝对地址。

输出图片默认保存在原图片同目录，文件名为：

```text
<原文件名>_<时间戳>_binary.png
```

## 使用方式

命令行调用：

```powershell
python .\skills\vision\vision_grounding.py "C:\Users\杨佳宁\Desktop\compasser\test_data\image.png" "将第二题涉及的波形图提取出来"
```

Python / Tool 调用：

```python
from skills.vision.vision_grounding import main

output_path = main(
    r"C:\Users\杨佳宁\Desktop\compasser\test_data\image.png",
    "将第二题涉及的波形图提取出来",
    r"C:\Users\杨佳宁\Desktop\compasser\config\config.py",  # 可选，不传则使用默认配置
)
print(output_path)
```

该文件作为 agent 工具时，入口函数为 `main(image_abs_path: str, prompt: str, config_abs_path: str | None = None) -> str`，返回最终生成的二值化图片绝对地址。`config_abs_path` 可选，不传时使用项目默认 `config/config.py`。

## 固定行为

以下参数固定，不对外动态设置：

- 配置文件：可传入自定义配置文件绝对地址；不传时自动读取项目 `config/config.py`
- 输出目录：原图片所在目录
- 输出命名：原文件名 + UUID + `_binary.png`
- 图片压缩：内部自动处理
- 裁剪外扩：模型返回区域上下左右各外扩 10%
- 输出处理：最终图片自动二值化为纯黑白图片

## 工作流程

1. 读取传入的配置文件；未传入时读取 `config/config.py` 中的 `model_name`、`base_url`、`apikey`。
2. 自动压缩输入图片并提交给火山方舟视觉定位接口。
3. 根据提示词获取 `<bbox>x1 y1 x2 y2</bbox>`。
4. 将 1000x1000 归一化坐标映射回原图像素坐标。
5. 对定位框上下左右各外扩 10%。
6. 裁剪原图并进行二值化。
7. 将结果保存到原图同目录，并返回输出图片绝对地址。

