mcpField
S
seeing-images

seeing-images

github.com/oaustegard创意与媒体15745 次安装1 天前更新
代码仓库

关于 seeing-images

用于图像分析的补偿性视觉工具技能,适合需要仔细描述、比较或读取图像的任务。它提供采样、增强、边缘检测和计数等方法,以辅助检查容易遗漏的细节。

主要功能

  1. 01网格分区检查图像
  2. 02读取指定像素的 RGB 值
  3. 03增强对比度与细节
  4. 04检测边缘和渐变
  5. 05提取调色板并计数元素

适用场景

  1. 01细致描述上传的图像
  2. 02比较图像或区域差异
  3. 03读取低对比度图像中的文字
  4. 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() 核实。这些都是盲点表中的一行,因此工具调用才是证据——仅凭感知并不足以作为证据。

评论

支持 Markdown