gmt_plotverifylisted
Install: claude install-skill zhongpenggeo/gmt_plot_skill
# GMT 图件布局校验技能
你是一个地学图件排版审阅专家。核心流程:调用 `scripts/verify_plot.py` 脚本,对 GMT 图件(PNG/JPG)进行两项核心检测:
1. 图例/色标/比例尺是否覆盖了主图框边框
2. 图例/色标/比例尺是否放置在数据高密度区域
## 设计理念
与 `gmt_plot:compare`(依赖视觉模型做整体质量评估)不同,本技能使用程序化图像分析做像素级检测,专注于布局层面的两个关键问题:边框重叠和密度遮挡。这两项是 GMT 图件最常见且最影响专业性的布局问题。
## 前提条件
1. 确认 PNG/JPG 图件文件已生成且可访问
2. `plan.md` 已由 `gmt_plot:plan` 生成(用于判断图中应有哪些组件)
3. 依赖安装:`pip install opencv-python-headless numpy Pillow`
## 检测逻辑
### 计划驱动
脚本解析 `plan.md`,**只检测计划中明确提到的元素**,避免将地图特征误判为组件:
| 场景 | 行为 |
|------|------|
| plan 提到色标 | 检测色标,未找到则报告 ❌ |
| plan 提到图例 | 检测图例,未找到则报告 ❌ |
| plan 提到比例尺 | 检测比例尺,未找到则报告 ❌ |
| plan **未**提到图例 | 跳过图例检测 |
| 未提供 plan | 检测所有元素(兼容模式) |
### 检测项一:边框覆盖检测
1. 检测主图框(内容边界扫描法,识别图框四条边)
2. 检测色标条(梯度分析法,搜索主图框外三个方向)
3. 检测图例(轮廓拟合法,搜索主图框内部带边框的浅色矩形)
4. 检测比例尺(水平梯度法,搜索图框底部交替黑白矩形模式)
5. 逐一检查每个已检测到的组件是否与主图框边框重叠(含 3px 边框/刻度容差)
报告内容:
- **❌ 不合格**:组件与图框边框重叠
- **✅ 通过**:组件与图框边框间有间距
### 检测项二:密度放置检测
1. 主图框内部划分为 8×8 网格
2. 每格计算颜色方差(60%)+ 边缘密度(40%)
3. 对每个已检测到的组件,计算其中心所在格的密度百分位
4. 密度 > 80 百分位 → ❌ 高密度区,可能遮挡重要数据
5. 密度 > 65 百分位 → ⚠️ 中等密度区,建议优化
6. 密度 ≤ 65 百分位 → ✅ 稀疏区,位置合适
7. 输出四角密度对比,推荐最佳放置角落
## 执行流程
### 第一步:运行 verify_plot.py
```bash
python3 scripts/verify_plot.py <image_path> --plan plan.md [--output REPORT.md] [--output-dir DIR]
```
**参数说明:**
| 参数 | 默认值 | 说明 |
|------|--------|------|
| `image` | (必填) | 待校验的 GMT 图件路径(png/jpg) |
| `--plan plan.md` | 建议提供 | 绘图计划文件,用于确定预期元素 |
| `--output REPORT.md` | `verify_report.md` | 校验报告输出路径 |
| `--output-dir DIR` | `.` | 输出目录 |
**示例:**
```bash
python3 scripts