# Claude Code 图片标注工具：框选物体并导出正确的 YOLO 标签

Claude Code 图片标注工具。已用真实浏览器指针框选三种尺寸图并回读YOLO归一化坐标；未运行视觉模型或训练。

## 开始

先读 task.md 和 prompt.md。starter 是可打开但未实现任务逻辑的起点工程，reference 是本站人工完成的参考。目标代理没有参与生成此次原生账号会话，不能把参考代码称为该产品已执行结果。

```bash
python3 -m http.server 8073 --directory reference
```

HTTP网页访问 http://127.0.0.1:8073/ ，按顺序点击输入、操作和导出控件。8073是示例端口，可自行换用空闲端口。

## 文件

- starter/：起点工程及明确需求。
- reference/：可运行人工参考、原创输入和实际运行结果。
- task.md：七步任务和独立验收。
- verify.py：回读实际下载文件、结果结构和边界的检查。
- native-*-draft.*（若有）：原生结构草案，明确未完成导入/运行验证。

## 本题操作要点

1. 三张几何玩具图是原创确定性输入，不是模型识别结果。landscape/portrait/square分别640×480、480×640、800×800；两个类别编号为0和1。

2. Canvas保存原图宽高，CSS仅改变展示尺寸。切换图时清空当前图的框，避免把横图坐标带入竖图。

3. 拖出矩形后查看右侧x/y/宽/高。需要微调时，在“调整已保存的框”填写原图像素；删除指定框和清空全图是两个操作。

4. 使用 getBoundingClientRect() 把指针坐标换算为原图坐标，不把设备DPR直接当成坐标倍数。以横图框x=96、y约86、宽192为例回对原图。

5. YOLO每行是 class x_center y_center width height；中心和宽高分别除以原图宽高。零面积框和越界输入不能进入下载。

6. 在三种图上各实际拖一个框，下载相应TXT。本题实际保存的actual-boxes.json记录指针产生的像素值，区别于预先写的真值。

7. 独立读取TXT并乘回原图宽高，核对误差小于1像素。当前练习不训练YOLO，也不宣称图片中的物体由AI自动识别。

## 官方依据

- https://code.claude.com/docs/en/common-workflows
- https://docs.ultralytics.com/datasets/detect/

Google与抖音查询词是内容目标，不代表实测搜索量、热榜或流量结果。
