尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从像素到笔画:srt-whiteboard-animation骨架笔迹追踪实现(Zhang-Suen细化+8邻接追踪)
从像素到笔画srt-whiteboard-animation骨架笔迹追踪实现Zhang-Suen细化8邻接追踪【免费下载链接】srt-whiteboard-animation将 SRT 字幕做成暖米黄纸张底的流式笔迹白板手绘动画 skillmask 分区遮罩编排 stream 连续笔迹ink→color。项目地址: https://gitcode.com/gh_mirrors/sr/srt-whiteboard-animationsrt-whiteboard-animation是一个把 SRT 字幕变成暖米黄纸张底白板手绘动画的开源 Skill。它的核心之一是骨架笔迹追踪先用Zhang-Suen 细化把粗线条压成 1 像素宽的骨架再用8 邻接追踪沿骨架走出一条条有序笔画让笔尖贴着真实线条滑行落墨而不只是在网格中心点之间插值。️下面用「猴子山抢香蕉」这个官方示例拆解这条从像素到笔画的完整管线。上图是输入线稿对应的叙事标注在 examples/scene-01-monkey-mountain-banana.annotation.json 里按「场景铺垫 → 动作冲突 → 反应结果」拆成 3 个区域各区域随字幕时序依次绘制。两种笔迹路径网格与骨架渲染器提供两种起笔路径模式由--ink-path参数切换默认grid模式笔尖走的路径特点grid网格格中心插值稳定通用场景默认skeleton骨架级像素追踪笔尖走真实线条中心线稿清晰的插画更贴合网格模式把含墨的格子聚类串成路径笔尖在格中心之间直线插值——简单但落点只是「格子的代表」离真实线条可能偏几个像素。骨架模式则先算出线条的中心线让笔尖精确踩在笔画正中这也是本文要拆解的部分。实现集中在 scripts/stream_render.py 的「骨架级笔画追踪」区块。上图就是skeleton模式下的起笔段笔尖沿骨架逐段揭示原图墨迹线条出现得「顺」而非「跳」。第一步Zhang-Suen 细化粗线条压成 1 像素骨架骨架追踪的输入是一张二值墨迹掩码对灰度图做自适应阈值后ink_pixels thresh_map ink_threshold灰度低于阈值的像素被视为线稿墨迹见 scripts/render_stream_whiteboard.py。_zhang_suen_skeleton把这张掩码细化到 1 像素宽算法是经典的 Zhang-Suen 薄化外扩一圈零边界避免边缘像素越界两段子迭代循环最多 160 轮每一轮先执行第 0 步删除条件再执行第 1 步删除条件直到没有任何像素被删除为止每个前景像素检查 8 邻域同时满足才删除邻域前景像素数在 2~6 之间邻域顺时针扫描中 0→1 转换恰好 1 次保证拓扑不破坏两组对角约束第 0 步要求p2·p4·p60且p4·p6·p80第 1 步要求p2·p4·p80且p2·p6·p80。两个子步用不同的对角约束交替删点是 Zhang-Suen 相对其它薄化算法的关键它能尽量保留骨架的连通性和原始走向减少「毛刺」和断线。整个过程是纯 numpy 布尔运算1080p 线稿一轮渲染中开销很低。第二步8 邻接追踪把骨架走成有序笔画1 像素骨架只是一堆点trace_8connectedscripts/stream_render.py把它们走成有序笔画序列四条规则是精华① 起点优先级先找度1 的端点做起点就像真人下笔其次是度2 的交叉点最后才是普通点。这样每笔画的起笔位置最接近真实书写习惯。② 交叉点走「最直边」普通做法遇到交叉点会把每个分支切成短笔画画面会碎。这里用_choose_next计算当前行进方向与每个候选方向的余弦相似度取最直的未访问边继续走——笔尖在十字路口会「顺势直行」而不是原地掉头。③ 跳过「正交桥」对角邻居_skel_neighbors中如果对角邻居与当前点之间已经有正交路径相连就跳过这个对角边。这避免了 T 型/十字交叉处出现「三角形碎笔画」。④ 边不可重复走访问标记打在无向边上像素可复用、边不能重走死胡同即停剩余分支留给后续起点补上长度不足 8 个点skeleton_min_points的碎片直接丢弃。参数默认值在 Config骨架最少 8 点、重采样间距 2.5 像素。后处理重采样、平滑与笔画排序追踪出的原始像素还带着锯齿三道后处理让笔迹「手感」更好等距重采样_resample_stroke_points按累计弧长每 2.5 像素取一个点去掉长短不一的像素跳Chaikin 切角平滑_chaikin_smooth每段用 0.25/0.75 两个插值点替换保留起止点一轮切角让折线变圆润而不失形阅读顺序排序_order_skeleton_strokes按「从上到下、从左到右、长笔优先」的字典序排列笔画符合人类书写习惯。整合入口是_build_skeleton_path细化 → 追踪 → 重采样平滑 → 排序并打印「骨架追踪: N 条笔画, M 个采样点」方便排查。逐区域作画与抬笔机制在整合渲染器 scripts/render_stream_whiteboard.py 中骨架追踪是按区域做的_region_skeleton_strokes先取ink_pixels allowed——矩形区域扣除后续区域与protectedRegions后的允许掩码再跑同一套细化追踪平滑流程保证未开始的区域不会提前露线mask 编排的不变量。起笔段_lay_ink把多条笔画展平成连续采样点跨笔画处标记抬笔pen_lifts笔尖在抬笔处不插值、直接「跳」到下一笔起点模拟真实换笔动作每帧之间则用_reveal_ink_segment以ink_reveal_radius半径的抗锯齿线段逐段揭示原图墨迹——骨架已精确到像素无需网格模式那样的整块填充。兜底策略若某区域骨架追踪结果为空碎片太多被过滤自动回退到网格格中心路径绝不留空路径见 scripts/render_stream_whiteboard.py。动手体验开启 skeleton 模式环境准备后按标准工作流渲染加一个参数即可python scripts/prepare_env.py --check python scripts/prepare_env.py ENV_PY scripts/render_stream_whiteboard.py 图片路径 标注路径 输出.mp4 assets/drawing-hand.png \ --ink-path skeleton --color-fill contour-wipe示例场景的完整命令ENV_PY scripts/render_stream_whiteboard.py examples/scene-01-monkey-mountain-banana.png \ examples/scene-01-monkey-mountain-banana.annotation.json out.mp4 assets/drawing-hand.png --ink-path skeletonENV_PY是 scripts/prepare_env.py 输出的ENV_PY路径用于隔离依赖。完整工作流SRT 分镜 → 线稿 → 标注 → 渲染 → 合并见 SKILL.md 与 README.md。质量检查清单首帧是干净暖米黄底纸无线条提前露出笔尖贴近正在推进的骨架笔迹交叉点不出现三角形碎笔画笔画间有自然抬笔跨笔不画直线连线线稿模糊/碎片化时骨架无笔画会自动回退网格模式每幕结束后至少停留 0.5 秒完整画面。小结srt-whiteboard-animation 的骨架笔迹追踪本质是一条「图像学 → 几何 → 书写习惯」的管线Zhang-Suen 两子迭代细化粗线条 → 1 像素骨架保连通、保走向8 邻接最直边追踪骨架 → 有序笔画端点起笔、交叉点顺势直行、边级去重重采样 Chaikin 平滑 阅读顺序排序像素折线 → 有手感的笔迹区域掩码约束 抬笔回退与 mask 编排无缝协作失败自动降级。默认grid模式稳如磐石而线稿清晰的插画换成--ink-path skeleton笔尖便真正贴上了线条——这正是白板动画「像人画的」最后一块拼图。✍️【免费下载链接】srt-whiteboard-animation将 SRT 字幕做成暖米黄纸张底的流式笔迹白板手绘动画 skillmask 分区遮罩编排 stream 连续笔迹ink→color。项目地址: https://gitcode.com/gh_mirrors/sr/srt-whiteboard-animation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

贵州网站建站避坑指南:免费工具搞定被黑难题

贵州网站建站避坑指南:免费工具搞定被黑难题

贵州网站建站避坑指南:免费工具搞定被黑难题 网站上线第三天,后台突然弹窗警告“检测到危险脚本”,首页变成了博彩广告,后台密码也改了。那一刻,很多贵州本地做站的老铁都慌了。别急,这种“网站被黑挂马”的噩梦,80%是因为部署环节用了免费的、来路…

📅 2026/9/27 0:04:04
崇州园区营销网站建设避坑指南:5大注意事项保备案安全

崇州园区营销网站建设避坑指南:5大注意事项保备案安全

崇州园区营销网站建设避坑指南:5大注意事项保备案安全 备案流程一头雾水?很多崇州的园区企业在搭建营销官网时,往往把精力全砸在UI设计和页面加载速度上,却忽略了最底层的“地基”——服务器安全与合规性。结果就是:网站刚上线三天,因为目录遍历漏洞…

📅 2026/9/27 0:04:04
基于1Panel 部署MySQL MCP 服务:TaoToken 统一 Key 接入与 config.toml 配置实战

基于1Panel 部署MySQL MCP 服务:TaoToken 统一 Key 接入与 config.toml 配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/27 0:04:04
MORE NEWS

更多资讯

📰

贡献 Strands 文档站:Astro/Starlight 文档站点的开发、写作与提交流程实战指南

人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务 【免费下载链接】harness-sdk Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. 项目地址: https://…

📰

DeskcommCRM实操指南:从选型到私有化部署的完整路径

1. 为什么最后把DeskcommCRM放进了选型清单1.1 团队表格管理客户的崩溃时刻说句实话,DeskcommCRM并不是我上手的第一套客户管理系统。在那之前,团队一直用共享表格管理客户,总共十六个销售,每天新增线索、跟进记录、下次联系时间全…

📰

如何做网站知乎避坑:3步搞定防黑与性能优化

如何做网站知乎避坑:3步搞定防黑与性能优化 上周接到武汉某制造企业的求助电话,老板急得满头汗:“网站被黑挂马了,首页全是赌博广告,客户投诉电话被打爆,现在网站被搜索引擎降权,流量跌了80%!”这场景在湖北乃至全国的中小企业建站中太常见了。很…

📰

口碑好的龙岗网站建设一文搞懂

龙岗建站避坑:从零搭建选对技术,口碑才是硬道理 改个需求建站公司拖一周,这大概是龙岗企业老板最头疼的痛点。很多老板以为找家“口碑好”的龙岗网站建设公司就能高枕无忧,结果发现所谓的口碑,往往建立在僵化的模板交付上。真正的口碑,源于你能否…

📰

拒绝被拖一周 5步搞定网站开发方案概要

拒绝被拖一周 5步搞定网站开发方案概要 改个需求建站公司拖一周,这种憋屈事儿谁没遇到过?你只是想把首页Banner图换个位置,或者把“联系我们”的电话改一下,对方客服却让你等“技术排期”。等你一周后,网站没动静,对方还甩给你一份长达20页的…

📰

wasm3 可挂起执行与快照(Snapshots)实战指南:`--snapshot` / `--resume` 的中断恢复、Gas 检查点与跨架构续跑

解释器嵌入式语言运行时 【免费下载链接】wasm3 🚀 A fast WebAssembly interpreter and the most universal WASM runtime 项目地址: https://gitcode.com/gh_mirrors/wa/wasm3 点击查看 免费下载 wasm3 的快照机制允许正在运行的 WebAssembly 模块在执…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬