Excel拼豆图

SKILL前端设计
前端设计 未标注权限 许可证不明确
安装这个技能

Excel拼豆图 —— 把拼豆像素图纸(拼拼豆豆 / Perler / Hama 的网格图、截图、符号图解或坐标颜色表格)或插画/照片还原成 Excel 方格施工图——一个单元格 = 一个像素(一颗豆子),逐格还原原图的相对位置与整体图案;支持四档像素密度(25×25 ≤5 色 / 52×52 ≤8 色 / 78×78 ≤14 色 / 104×104 ≤24 色)由用户按还原度需求选择,纯色上限与量化参数随密度自动匹配;支持不带色号的图纸(按原色填充、自动编号 P01/P02…,或用统一标记填充)。产出工作簿含 图纸 / 色号图 / 材料清单 / 制作指引 四张表,材料清单按色号统计用量并给出建议备豆量。当用户提到拼豆、豆豆图、拼豆图纸、拼豆配色表、52×52 图纸、25×25 / 78×78 / 104×104 图纸、像素密度、还原度不够、像素图转 Excel、插画转拼豆、按图摆豆、底稿、豆子备料清单、色号图、perler bead pattern、Hama pattern、bead pattern to spreadsheet,或提供一张方格图纸要求还原成表格时,使用本 skill。

一句话选型结论

按资料字段整理

Excel拼豆图是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1e304126/perler-bead-excel
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1e304126仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625047
正文体量28.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Excel拼豆图当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

28.3 KB
模型实际读到的说明书原文,来自技能仓库

Excel拼豆图 · 拼豆像素图纸 → Excel 施工图

把一张拼豆像素图纸翻译成「一张 Excel 表 = 一份可施工的底稿」:

  • 一个单元格 = 一个像素 = 一颗豆子
  • 单元格底色 = 该像素的颜色,格内文字 = 色号(或统一标记)
  • 原图的相对位置与整体图案一比一保留,不做缩放、不做重排

最后逐格回读校验,确保每个坐标上的颜色与图纸完全一致。


第 0 步(必做):先确认像素密度档位

动手前先问用户要哪一档。 密度决定网格尺寸、纯色数上限和全部量化参数,
选错后面全是白工 —— 这是本技能最优先的交互环节。

档位 格数 纯色上限 每色均摊 拼豆板 定位
25×25 625 ≤ 5 色 125 格 1 块 极简:剪影、图标、萌系小图,新手首选
52×52 2704 ≤ 8 色 338 格 4 块 标准:多数插画、像素角色、Q 版人物(默认)
78×78 6084 ≤ 14 色 435 格 9 块 精细:带五官光影的角色
104×104 10816 ≤ 24 色 451 格 16 块 高精:照片、复杂场景,成本最高

反问话术、按图特征给建议的对照表、成本提醒话术 —— 见
references/density-guide.md §5。核心一句:

> 格数按平方增长:104×104 是 52×52 的 4 倍格子、4 倍豆子、约 4 倍摆豆时间。

选好档位后,一条 --density 就把尺寸、色数上限、量化参数、单元格尺寸全部锁定:

python scripts/bead.py image --image 图纸.png --density 52 -o 拼豆图纸.xlsx

纯色上限是硬约束:给了 --density 25,输出就不会超过 5 色 —— 超出的颜色走
层次合并(每次并掉代价最小的一对)压到上限,不是简单丢弃。


技能速览

项 内容
技能名称 Excel拼豆图(技术名 perler-bead-excel;拼豆像素图纸 → Excel 施工图)
输入 ① 图纸图片:PNG / JPG / 截图 / PDF 导出的位图<br>② 插画/照片/AI 生成图(无规则网格,走颜色量化路线)<br>③ 坐标数据:CSV、Excel、grid.json<br>④ 符号图解:聊天里贴的字符图文本<br>⑤ 色板(可选):palette.json —— 不给则自动归纳颜色
输出 一个 .xlsx 工作簿(4 张表,见下)+ 中间产物(grid.json / 网格 CSV / 还原预览图 / 网格标注图 / 校验报告 / 差异图)<br>插画路线还会产出:纯色量化图 PNG + 颜色清单报告 + 原图/量化并排对比图
触发方式 提到「拼豆 / 豆豆图 / 拼豆图纸 / 拼豆配色表 / 25×25 / 52×52 / 78×78 / 104×104 图纸 / 像素密度 / 还原度不够 / 像素图转 Excel / 插画转拼豆 / 色号图 / 备料清单 / perler bead pattern / Hama pattern」,或直接给出一张方格图纸要求还原成表格
一句话用法 python scripts/bead.py image --image 图纸.png --density 52 -o 拼豆图纸.xlsx
第一件事 反问用户选哪档密度(见「第 0 步」)。拿不准就给 52×52

环境准备

依赖这几个库。优先使用受管虚拟环境(该环境已内置下列版本,无需安装):

~/.workbuddy/binaries/python/envs/default/Scripts/python.exe   # Windows
~/.workbuddy/binaries/python/envs/default/bin/python           # macOS / Linux
  → pillow 12.3.0 / numpy 2.5.1 / openpyxl 3.1.5 / opencv-python 5.0.0

opencv-python 只在「插画颜色量化」的连通域过滤环节用到(清除碎块、水印)。
缺了不会报错,脚本会自动跳过那一步 —— 只是杂色会多留一些。

仅在受管环境缺库时才安装,且固定版本(避免拉到被投毒的最新版):

python -c &quot;import PIL, numpy, openpyxl; print(&#x27;ok&#x27;)&quot; \
  || python -m pip install &quot;pillow==12.3.0&quot; &quot;numpy==2.5.1&quot; &quot;openpyxl==3.1.5&quot;

脚本内部已处理 Windows 控制台的 UTF-8 输出问题,无需额外设置 PYTHONIOENCODING。


三个核心概念

概念 是什么 在哪
颜色定义(色板) 色号 ↔ 颜色 ↔ 符号 的映射表,唯一权威来源 palette.json
网格(图纸数据) 行优先二维数组,每格是 #RRGGBB 或 null(空位) grid.json / .csv
坐标约定 原点左上角,行自上而下、列自左而右,均从 1 开始 R{行}C{列},对应 Excel 的 B2 起点

色号的两种来源

  1. 用户提供(首选):图纸图例、用户手上的豆子色卡、用户明确给出的清单。
    跨品牌色号不通用,不得凭记忆编造品牌色号。
  2. 自动归纳(图纸不带色号时):由 make_palette.py from-image 按用量从多到少
    编号 P01、P02…… 这是「第 N 种颜色」的意思,不是任何品牌的真实色号,
    换色时按 HEX 一比一对应即可。

先分清:图纸是「工程网格」还是「插画」

这一步决定了走哪条路,判断错了后面全错:

工程级拼豆图纸 拼豆风格插画 / 照片
长什么样 平涂色块 + 清晰格线,格内可带色号 豆子是带高光的圆形颗粒,排列有抖动,无格线
典型来源 拼豆图纸站、Hama/Perler 官方图、手工绘制 AI 生成图、手绘稿、实物照片
probe 结果 峰值命中率 ≥ 90%,纵横格宽一致 命中率 40–51%,格宽纵横不一致 ← 识别标志
怎么处理 直接走下面的标准流程 先做颜色量化,再像素化(见下节)

不要对插画硬走网格还原:它没有规则网格,拟合出来的行列数是假的。


插画 / 照片:颜色量化 → 像素化

第一步:量化成 ≤K 种纯色

推荐:一条 --density 让所有量化参数随档位自动匹配(色数、滤波核、面积权重、碎块阈值):

python scripts/quantize_image.py --image 插画.jpg --density 52 \
    -o 量化图.png --palette-out palette.json --report 颜色报告.md --side-by-side 对比.png

它等价于下面这组手调参数(这就是「52×52 / ≤8 色」的实际含义):

python scripts/quantize_image.py --image 插画.jpg -k 12 --max-colors 8 \
    --median 9 --denoise-radius 2 --merge-de 5.0 --area-weight 0.25 \
    --min-region-ratio 0.000185 \
    -o 量化图.png --palette-out palette.json --report 颜色报告.md --side-by-side 对比.png

手调各参数的含义见下方参数表;密度档位下的推荐值随档位变化,
所以除非有明确理由,优先用 --density,别抄上面这组数字去做 104 档。

输出的 量化图.png 是纯色填充的(无渐变、无半透明),palette.json 里的
P01、P02… 可直接喂给 grid_to_excel.py。

参数 作用 典型值
-k K-means 初始簇数。建议略大于目标色数,先过分割再归并 目标 + 1~4
--max-colors 最终纯色数硬上限,超出时反复合并代价最小的一对 需求值
--merge-de 阈值式近色合并(CIEDE2000),调大 → 色数更少 3–6
--area-weight 面积加权:越大越倾向于保住大面积色块、牺牲零星杂色 0.25
--median 中值滤波核,去豆子高光/网点。豆子越大取值越大 7–13
--denoise-radius 众数滤波窗口半径。出现芝麻点噪点时调到 2–3 1–3
--min-region-ratio 连通域过滤阈值。⚠️ 必须小于要保留的最小细节 0.00005–0.00008
--mask x,y,w,h 显式清除水印/角标区域,用周围颜色补齐 按图量

三个必须踩过的坑(都实测过):

  1. 色数不是越少越好,-k 也不是直接给目标值。 直接 -k 8 时,K-means 会把
    「两个黑」各占一个簇,挤出米白上衣;而 -k 9 --max-colors 8 先过分割再按面积归并,
    米白才能独立成色。过分割 + 面积加权归并 > 直接 K 色。

  2. --min-region-ratio 要跟目标密度挂钩,而不是取一个固定值。 眼高光只有约 78px²,
    阈值给到 128px² 眼珠就变成纯黑。老版本固定用 0.00006(92 万像素图约 51px²),
    但同一个数在 104 档太松(放过噪点)、在 25 档太严(留不住该留的色块)。
    现在按 0.5 / n²(半格面积)推导:小于半格的内容在输出网格里根本无法被表达,
    压掉它属于降噪而非丢信息。--min-region-passes 仍别调大,多轮会逐轮啃掉
    夹在大色块间的小细节。

  3. 水印和眼睛高光面积相同,纯按面积分不开。 水印必须用 --mask 显式圈定。

> 实现上还有一条:合并后的标签重映射必须在 Lab 空间做。用 RGB 欧氏距离会把
> 浅灰 (#E6E4E5) 错配到肤色 (#F8D3B9) 这类「色相不同、RGB 距离更近」的颜色上,
> 导致连帽衫被染成肉色。

第二步:像素化成 n×n 网格

量化图是纯色块、没有格线,probe 依然探测不到网格,所以要手工钉死均匀网格:

# --uniform = 强制均匀网格,跳过格线探测。量化图没有格线,必须加这个
python scripts/pattern_to_grid.py image --image 量化图.png --palette palette.json \
    --density 52 --uniform -o grid.json --csv grid.csv --preview preview.png

⚠️ 这里的 --uniform 不是可选项。 量化图是平铺色块,没有格线,
探测器会把色块边界误判成网格线,然后用这些「假格线」的中位距推出完全错误的格子尺寸。
实测:25×25 的量化图被推成 11.22px 格宽,平均 ΔE 冲到 33.94、550/625 格被标为不确定。
加上 --uniform 后 ΔE = 0.0。

同一条判据也已内建为兜底:探测格数与指定值偏差超过 max(2, 指定的 25%) 时,
自动判定探测不可信并改用均匀网格(会打印警告说明)。但仍建议显式写 --uniform。

需要精确控制采样起点时(图纸有留白/边距),手工给定更稳:

# pitch = 图片宽(或高) ÷ n,起始固定在 0,0
python scripts/pattern_to_grid.py image --image 量化图.png --palette palette.json \
    --rows 52 --cols 52 --x0 0 --y0 0 --pitch 17.73 --pitch-y 17.73 \
    -o grid.json --csv grid.csv --preview preview.png

如果原图的豆子排列本身就是规则的,一格 = 原图一个豆子是最忠实的粒度
(用原图豆子间距反推 n)。此时采样 ΔE 会是 0.0。

第三步:照常出 Excel

python scripts/bead.py grid --grid grid.json --palette palette.json --density 52 \
    -o 拼豆图纸.xlsx --pack-size 1000

固定品牌色板适配低密度档位(手上一盒 24 色,却要做 25×25 的 ≤5 色)——
在网格层按用量+色差归并,代表色取原色号,不凭空造色:

python scripts/pattern_to_grid.py resize --grid grid.json --size 25 \
    --palette 色板.json --max-colors 5 -o grid25.json --report 重采样报告.md

密度档位:--density

参数 作用
--density 25 / 52x52 / 78 / 104x104 推荐。一次锁定网格尺寸 + 纯色上限 + 量化参数 + 单元格尺寸
--size N 只锁尺寸,不锁色数(老用法,仍可用)
--cell-size 单元格像素,不给则随档位自动(25→30 / 52→24 / 78→18 / 104→14)
--max-colors 纯色数硬上限,不给则取档位值;走层次合并而非截断
--merge-de 近色合并阈值 ΔE,不给则随档位(25→8.0 … 104→3.5)

--density 会做三件事:识别阶段按 N×N 采样 → 渲染阶段校验确是 N×N(不符即报错退出)
→ 校验阶段再核对一次。完整联动表与设计依据见 references/density-guide.md。

工程网格图纸换密度:不要直接改 --density,而要告诉它原图本身是多少格:

# 原图 48×48,想输出 104×104
python scripts/bead.py image --image 图纸.png --native-size 48 --density 104 -o 拼豆图纸.xlsx

它先按 48×48 无损提取,再在网格层重采样到 104×104。直接按 104 去像素层硬采会整体错位,
而且 ΔE 仍是 0.0,从数值上根本看不出问题。

⚠️ 想提升还原度就重新走量化,别放大已有网格。 把 52×52 的网格 resize 到 104×104,
得到的是「格子数 ×4、信息量不变」——每格拆成 4 格、颜色原封不动,摆豆时间涨 4 倍而清晰度不变。
正确做法是回原图重跑:quantize_image.py --image 原图.jpg --density 104。
(升采样只用于适配更大规格的拼豆板,见 references/density-guide.md §4。)

拼豆板换算:按 29×29 方板算,需要 ceil(N/29)² 块 —— 25→1 块、52→4 块、78→9 块、104→16 块。
Excel 里每 29 格画一条粗分界线,就是「换板位置」的标记(--board 可改,--board 0 关闭)。


两类输入:带色号 / 不带色号

A. 图纸带色号 —— 提供色板(首选,结果最可信)

python scripts/bead.py image --image 图纸.png --palette 色板.json --density 52 -o 拼豆图纸.xlsx

⚠️ 带色板时颜色数由色板决定,档位管不住。色板色数超过档位上限时会主动提醒并给出精简命令;
跨品牌色号不通用,不会替你改写色号。

B. 图纸不带色号 —— 不提供 --palette,自动归纳颜色

python scripts/bead.py image --image 图纸.png --density 52 -o 拼豆图纸.xlsx

流程会自动多走一步:先按原色提取网格 → 按色差(CIEDE2000)把近似色聚成一类 →
按用量从多到少编号 P01、P02…… → 用这套自动色号重映射一遍。

调参:

参数 作用
--merge-de 2.0 近色合并阈值 ΔE。调大 = 合并更激进 = 色号更少;调小则保留更多近似色。给了 --density 时随档位取值(25→8.0 … 104→3.5),显式值优先
--max-colors 12 最多保留几种颜色。给了 --density 时自动取档位上限(25→5 … 104→24),显式值优先。超出上限时按层次合并压到上限,不是丢弃
--palette-prefix P 自动色号前缀,默认 P

两种填充方式的取舍(渲染层决定):

需求 用法
按颜色填充 + 格内写色号(默认,最常用) --show-label code
按颜色填充 + 格内显示 HEX(没有色板时) 不提供 --palette,默认回退到 HEX
按颜色填充 + 统一标记(不区分色号,只看哪儿要放豆) --show-label mark --mark-char ●
只要纯色块,格内不写字 --show-label none

输出:4 张工作表

工作表 定位 内容
图纸 施工底稿 一个格 = 一颗豆,底色 = 豆色,格内 = 色号;带行列坐标尺与拼豆板分界线
色号图 查号速查图 同构网格,格内只写色号;右侧附色号图例栏(序号/色号/色名/色块/数量/占比)。--codemap-bg white 切成白底黑字,黑白打印更省墨
材料清单 备料用 序号 / 色号 / 色名 / HEX / 色块 / 数量 / 占比 / 建议备豆量 / 备注,末行合计
制作指引 交付摘要 尺寸、总豆数、用板数、色板来源、识别置信度(平均/最大 ΔE、待确认格数)

材料清单怎么算

  • 数量:该色号在图纸中占多少格 = 要多少颗豆
  • 占比:数量 / 总豆数
  • 建议备豆量:ceil(数量 × (1 + 损耗率)),损耗率由 --loss-rate 控制,默认 0.05(+5%)
  • 给 --pack-size 500 时,备注列会额外换算成「约 N 包(按 500 颗/包)」

坐标映射

数据区从 B2 起(--no-axis 时从 A1 起)。A 列为行号、第 1 行为列号,
与 R{n}C{m} 一一对应,方便按行摆豆。冻结窗格在 B2,滚动时坐标尺常驻。


一条命令跑完(推荐)

python scripts/bead.py image --image 图纸.png --palette 色板.json --density 52 \
    -o 拼豆图纸.xlsx

它会依次执行「解析图纸 → 生成 Excel → 逐格校验」,校验不通过退出码为 1,
并在 bead_work/ 留下 grid.json、网格 CSV、还原预览图、网格标注图、校验报告与差异图。
(走 --native-size 时还会多一份重采样报告,含格一致率分布。)

其他入口:bead.py text(符号图纸文本)、bead.py grid(已有 grid.json 只做渲染)、
bead.py density(查档位表)。

分步执行(需要微调时)

# ① 建色板(四选一)
python scripts/make_palette.py starter -o palette.json                    # 通用示意色板快速起步
python scripts/make_palette.py add --palette palette.json \
       --entries &quot;H01|白色|#FFFFFF|O;H02|黑色|#1A1A1A|X&quot;                  # 手工录入
python scripts/make_palette.py from-pixels --image 图纸.png \
       --boxes &quot;40,600,20,20;80,600,20,20&quot; --codes &quot;H01,H02&quot; -o palette.json  # 从图例色块采样
python scripts/make_palette.py from-image --grid grid.json --density 52 \
       -o palette.json --report 色号归纳报告.md                          # 不带色号:自动归纳编号 + 档位色数上限

# ② 先探测几何,确认行列数对不对(强烈建议)
python scripts/pattern_to_grid.py probe --image 图纸.png --overlay probe.png

# ③ 提取网格(插画/量化图务必加 --uniform;工程图按原网格数提取)
python scripts/pattern_to_grid.py image --image 图纸.png --palette palette.json \
       --density 52 --uniform -o grid.json --csv grid.csv --preview preview.png

# ③b 已有网格要换密度 → 网格层重采样(工程图切换档位走这条)
python scripts/pattern_to_grid.py resize --grid grid.json --size 78 \
       --palette palette.json --max-colors 14 \
       -o grid78.json --report 重采样报告.md --preview preview78.png

# ④ 渲染 Excel
python scripts/grid_to_excel.py --grid grid.json --palette palette.json \
       -o 拼豆图纸.xlsx --cell-size 24 --show-label code --board 29 --size 52

# ⑤ 逐格校验(必做)
python scripts/verify_excel.py --excel 拼豆图纸.xlsx --grid grid.json \
       --palette palette.json --report 校验报告.md --diff-image 差异图.png --size 52

脚本清单

脚本 职责 关键参数
scripts/density.py 像素密度档位的单一权威定义:尺寸 ↔ 纯色上限 ↔ 量化参数 的联动表 list show -d 78 resolve -d 52
scripts/bead.py 全流程编排,跑完自动校验 image / text / grid / density 四种入口;--density --native-size
scripts/make_palette.py 色板构建、采样、自动归纳编号、去重、体检 starter add pick from-pixels from-image nearest dedupe report;--density --area-weight
scripts/pattern_to_grid.py 图纸 → 网格(图像 / 文本 / CSV),以及网格 → 另一种密度 probe image text csv resize;--density --uniform --max-colors
scripts/quantize_image.py 任意插画/照片 → ≤K 种纯色(图纸不是工程网格时用) --density -k --max-colors --merge-de --area-weight --median --denoise-radius --min-region-ratio --mask
scripts/grid_to_excel.py 网格 → Excel(四张表) --cell-size --show-label --mark-char --board --size --codemap-bg --loss-rate --pack-size --no-axis
scripts/verify_excel.py 回读 Excel 逐格比对 --report --diff-image --codemap-bg --size --show-all
scripts/bead_common.py 公共库:颜色空间、色板、网格、CIEDE2000、颜色聚类 不直接调用

识别几何参数(probe / image 通用):
--density、--uniform(无格线的插画/量化图必加)、
--crop x,y,w,h、--rotate 90/180/270、--flip h/v/both、--rows、--cols、
--x0、--y0、--pitch、--pitch-y、--square、
--method auto/lines/edges、--dark、--chroma、--min-pitch、--max-pitch、
--inset、--bin、--max-de、--metric、--drop-bg。


质量门禁(不可跳过)

门禁一:verify_excel.py 退出码必须为 0

它做五件事:

  1. 数据区行列数 = 网格行列数(给了 --size 时同时核对尺寸)
  2. 每个单元格的实际底色 = 该坐标应有的颜色(精确相等)
  3. 格内色号文字与底色一致
  4. 「材料清单」数量与网格统计一致(旧版「色号统计」同样识别)
  5. 「色号图」逐格核对:底色与格内色号都对得上

不通过时输出 差异图.png:全灰代表完全一致,品红框标出的就是出错的格子。

门禁二:识别准确度要看图,不能只看 ΔE

这是最容易踩的坑:verify_excel 只证明「Excel 忠实还原了网格」,不证明「网格识别对了」。

整体错位时,每个采样点仍然落在某个真实豆色上,ΔE 会低到 0.0、uncertain 也是 0,
但图案已经错了几十格。实测一张带图例的图纸:错位 230 格(8.5%),平均 ΔE 仍是 0.0。

所以开工前必须把这两个中间产物和原图并排比对:

产物 看什么
还原预览图.png 从识别结果反向画出的图。和原图纸并排看,一眼能看出整体错位、颜色翻转
网格标注图.png 蓝线应压在格线上、红十字应落在格心。偏离即几何没对齐

另外要如实汇报:平均/最大 ΔE、uncertain 格数、以及识别阶段的全部 warning
(bead.py 会在结尾把它们重新打出来,因为它们不会被一致性校验覆盖)。

门禁三:密度不足要被量化,而不是靠感觉

还原度不够时,用户最需要的是「换哪一档」而不是一句「效果就这样了」。三个可查的指标:

指标 来源 判据
严重混合格占比 resize 的重采样报告 < 60% 一致率的格超过 12% → 主动建议换更密档位
颜色损失 同上,「颜色数 X → Y」 降采样后颜色数掉到 60% 以下 → 提示零星色块已被邻色吸收
量化图色数 vs 档位上限 quantize_image.py 输出 应 ≤ 上限;若撞上限说明该档颜色的确不够用

这三项都只是「参考信号」,最终仍以还原预览图/网格标注图与原图并排比对为准(门禁二)。


常见问题速查

症状 处理
探测不出网格 --crop 圈定图纸区域;仍不行用 --rows/--cols/--x0/--y0/--pitch 手工给定
多出/少掉一整行(图例、水印、外框被算进去) 给 --size N 后会自动按探测峰值中位距重排,并在 warning 里说明;请用网格标注图确认首格位置。若整体偏移,用 --x0/--y0/--pitch 手工钉死
上下/左右颠倒 --flip v / --flip h;图纸本身要转就 --rotate
采样取到格内文字 --inset 调到 0.35–0.40
大量格子 ΔE 偏高 多半是色板缺色,补齐重跑;不要先放宽 --max-de
图纸是照片、颜色脏 --bin 24~32,--max-de 8~10,并靠色板最近色兜底
图纸是黑白符号图 走 pattern_to_grid.py text,用符号查色板,不要走图像识别
自动归纳出来色号太多 调大 --merge-de(如 3–5);或 --max-colors 12 限制上限
自动归纳把该区分的色合并了 调小 --merge-de(如 1.0),并检查 色号归纳报告.md 里的合并明细
想省墨打印色号图 --codemap-bg white
不想买整包豆子 --loss-rate 0(不要损耗余量);--pack-size 留 0 则不换算包数
图纸带水印(截图/小红书) 见 references/image-detection.md §6:文字掩膜几何筛选 + 连通块过滤 + 图例数量容量约束,三步缺一不可
插画量化后满是芝麻点 --denoise-radius 调到 2–3(3×3 窗口小于斑点直径,治不了)
量化后眼睛没了高光 --min-region-ratio 调小到 0.00006 以下;--min-region-passes 保持 1
量化后连帽衫被染成肉色 合并后重映射用了 RGB 距离的旧版行为,已在脚本内改为 Lab 空间;确认用的是最新脚本
量化后该区分的色被合并了 调小 --merge-de;或调大 -k 让它先独立成簇再交给面积加权归并
量化后色数压不到目标 --area-weight 保持 0.25,--max-colors 设目标值(这是硬上限,会一直合到满足)
用户说「还原度不够 / 太糊」 别急着调参数:先看「严重混合格占比」和「颜色损失」两个量化指标(门禁三),再按 references/density-guide.md §5 建议上浮一档密度。多数情况是密度不够,不是参数错
量化图网格整体错位,ΔE 却极低 漏了 --uniform:色块边界被当成格线。实测 ΔE 33.94 → 加 --uniform 后 0.0
工程图纸换档位后整体错位 用 --native-size 原格数(先无损提取、再网格层重采样),不要直接把 --density 改掉
色数没降到档位上限 走的是自带色板路线(色数由色板定);用 resize --grid g.json --size N --palette 色板.json --max-colors M 在网格层强制归并
档位上限砍掉了想要的颜色 这是硬约束,故意的:颜色挤在少量格子里只会变成花点。换更密档位解决
量化结果里出现「0 颗」的颜色 已修:合并后未被任何像素命中的代表色会自动剔除

交叉校验(强烈建议)

图纸图例通常会标注每个色号的数量,且合计等于「所需豆子数量」。
把这个数量当作容量约束做全局最小色差分配,可以自动修复水印/偏色造成的误判,
并让结果与图例完全自洽 —— 这是比 ΔE 阈值更硬的校验。

分配完成后,按 ΔE 从大到小排序人工复核前 30 格,再跑 verify_excel.py 收尾。


参考文件

文件 内容
references/density-guide.md 像素密度档位:四档总表、色数上限的设计依据、参数联动规则、换档位的两条路径、对话反问话术、密度不足的量化判据
references/workflow.md 完整流程、决策点、失败降级、交付话术
references/data-formats.md 色板 / 网格 / CSV / 符号文本 / Excel 结构 / 自动色号规范
references/image-detection.md 网格探测与颜色采样算法、调参速查、能力边界
references/bead-basics.md 豆子规格、拼豆板换算、Excel 各元素的施工含义
assets/palette-template.json 色板模板
assets/symbol-pattern-example.txt 符号图纸示例

常见问题

5 问
答案由本站依据条目字段整理
Excel拼豆图怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1e304126/perler-bead-excel。安装方式为未标注。装完刷新技能列表或重开客户端。

Excel拼豆图支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Excel拼豆图权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Excel拼豆图收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Excel拼豆图用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。