关于 seeing-images
用于图像分析的补偿性视觉工具技能,适合需要仔细描述、比较或读取图像的任务。它提供采样、增强、边缘检测和计数等方法,以辅助检查容易遗漏的细节。
主要功能
- 01网格分区检查图像
- 02读取指定像素的 RGB 值
- 03增强对比度与细节
- 04检测边缘和渐变
- 05提取调色板并计数元素
适用场景
- 01细致描述上传的图像
- 02比较图像或区域差异
- 03读取低对比度图像中的文字
- 04分析图像并复现为 SVG
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oaustegard/ claude-skills --skill seeing-images安装后在 Claude Code 中输入/seeing-images确认已加载。
附带文件CHANGELOG.mdscripts/see.py
详细介绍
观察图像
基于 2026-03-25 通过视觉诊断 v1-v4 测得的盲点设计的补偿性视觉工具。这里未记录诊断运行所用的模型,此后也未重新运行,因此请将这些阈值视为当时测得的结果:它们表示每种失败情况都有对应的工具,而不是说当前模型恰好会在这些数值上出现问题。依赖具体阈值前,请重新运行诊断。
适用场景
在以下情况下启用此技能:
- 详细描述上传的图像
- 将图像还原为 SVG(绘制前使用,以确定真实情况)
- 比较两张图像或两个区域的差异
- 读取退化、压缩或低对比度图像中的文字
- 识别细微特征(渐变、淡淡的叠加效果、反射)
- 任何准确性比速度更重要的图像任务
已知盲点(来自诊断)
实测结果,而非猜测:
| 盲点 | 阈值 | 补偿工具 |
|---|---|---|
| 亮度对比度 | 约 15-20 个 RGB 级别无法辨认 | enhance、histogram、sample |
| 渐变 | 小于 30 级的范围无法辨认 | gradient_map、enhance |
| 上下文颜色偏差 | 连衣裙效应、同时对比 | isolate、sample |
| 小元素 | 小于 15px 的元素实际上无法辨认 | crop、grid |
| 密集计数 | 超过 15 个元素时表现下降,30 个时错误率约为 50% | count_elements |
| 细微氛围效果 | 蒸汽、淡淡的反射会淹没在噪点中 | enhance、denoise |
工作流
设置(每次一行)
import sys; sys.path.insert(0, '/mnt/skills/user/seeing-images/scripts')
from see import grid, sample, enhance, edges, histogram, isolate, palette, compare, count_elements, gradient_map, denoise, crop
快速分析(2-3 次工具调用)
grid(path, rows=2, cols=2) # → view the output
sample(path, [(x1,y1), ...]) # → verify colors at points of interest
深度分析(用于 SVG 还原、找不同等)
grid(path, rows=3, cols=3) # 1. Overview
palette(path, n=10) # 2. Dominant colors
edges(path, threshold=30) # 3. Shape boundaries
sample(path, [(x1,y1), (x2,y2), ...]) # 4. Exact RGB at points
enhance(path, region=(x,y,w,h), mode='auto') # 5. Reveal low-contrast areas
isolate(path, region=(x,y,w,h)) # 6. Remove context bias
工具参考
所有函数均位于 scripts/see.py。每个生成图像的函数都会将图像保存到 /home/claude/see_*.png,并返回路径。对返回的路径使用 view 工具。
grid(path, rows=3, cols=3, labels=True)
将图像拆分为带标签的单元格,以便系统地检查。首先调用它:它可以减少注意力竞争。
sample(path, points, radius=3)
返回指定像素坐标处的精确 RGB 值。用于验证你的视觉判断。对一个小半径范围求平均,以处理噪点。
histogram(path, region=None)
显示颜色直方图,呈现数值分布。可揭示双峰分布(隐藏的渐变)、主色和对比度范围。使用 region=(x,y,w,h) 时,仅分析该区域。
enhance(path, region=None, factor=2.0, mode='contrast')
增强图像或指定区域的对比度。模式包括:'contrast'、'brightness'、'color'、'sharpness'。对于接近阈值的特征,使用 factor=3-5。
edges(path, threshold=50)
通过 Sobel 边缘检测揭示低对比度下无法辨认的形状边界。阈值越低,检测到的边缘越多(噪点也越多)。输出为黑底白色边缘图。
gradient_map(path, region=None)
计算图像中的局部梯度幅值。亮处表示梯度高,暗处表示平坦。可揭示低于 30 级检测阈值的渐变。
isolate(path, region, padding=20, bg=(128,128,128))
提取指定区域并将其置于中性灰背景上。移除导致同时对比和连衣裙效应等错觉的周围上下文。bg 参数默认为中灰色,以尽量减少上下文偏差。
compare(path, r1, r2)
并排比较两个区域,并叠加差异。通过放大像素级差异来突出显示。用于找不同任务。
count_elements(path, region=None, color_range=None, min_size=3)
使用连通分量分析进行程序化元素计数。指定近似的 color_range(格式为 ((r_min,g_min,b_min), (r_max,g_max,b_max)),以统计特定颜色的元素。
denoise(path, region=None, strength=3)
使用中值滤波减少照片噪点,显露被噪声底限掩盖的细微特征(如蒸汽、淡淡的反射)。
palette(path, n=8)
使用 k-means 聚类提取占比最高的 n 种颜色。返回 RGB 值及其占比。对 SVG 还原至关重要。
准确性注意事项
处理复杂图像时,先调用 grid()。描述颜色时,先用 sample() 或 isolate() 核实上下文边界附近的颜色;描述数量超过 15 的元素时,先用 count_elements() 核实;描述渐变时,先用 gradient_map() 核实;描述微弱特征时,先用 enhance() 核实。这些都是盲点表中的一行,因此工具调用才是证据——仅凭感知并不足以作为证据。